From f1ccce527fa1418ff62b1040614c1287d140dec4 Mon Sep 17 00:00:00 2001 From: Donavan Becker Date: Sat, 4 Nov 2023 09:05:51 -0500 Subject: [PATCH] beta -> latest (#28) * Improvements to prebuild process (#26) * Add prebuildify to the build * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Fixes * Update PackageNPMRelease.yml * Update prebuildMacOSArm.yml * Update prebuildMacOSArm.yml * NPM Publish * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update package.json * prebuildify * Remove darwin * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * 0.11.8-beta.1 * Revert "0.11.8-beta.1" This reverts commit c02cc0e729476d90555359341a05e206c6e2f08d. * Beta 0.11.8 (#27) * Add prebuildify to the build * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Update prebuild.yml * Fixes * Update PackageNPMRelease.yml * Update prebuildMacOSArm.yml * Update prebuildMacOSArm.yml * NPM Publish * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update PackageNPMRelease.yml * Update package.json * prebuildify * Remove darwin * Create Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Remove unused github actions * More logging * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Splitting the build, part 1 * Fix * Simplify * Simplify * Update build.sh * Update Dockerfile.oldDebian * Update build.sh * Update build.sh * fixes * Update build.sh * Update build.sh * Update Dockerfile.debian * Try again * Fix * Update Prepare prebuild environment.yml * Update build.sh * Fixes * Update build.sh * Update build.sh * Update Dockerfile.oldDebian * Update Dockerfile.debian * Update build.sh * Try again * Maybe * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Create Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Test Workflow.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Test Workflow.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Tweaking * Tweaks * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Update Prepare prebuild environment.yml * Fixes * Cleanup * Delete Test Workflow.yml * Update Prepare prebuild environment.yml * Missing authentication * Update Prepare prebuild environment.yml * Notes * Update README.md * Update README.md * Update Prepare prebuild environment.yml * Update prebuildify.js * Update 0.11.8-beta.1.md * Create 0.11.8-beta.2.md * Update 0.10.1-pre.5.md * Update Prepare prebuild environment.yml --------- Co-authored-by: Northern Man <19808920+NorthernMan54@users.noreply.github.com> --- .github/workflows/PackageNPMRelease.yml | 41 - .../Prepare prebuild environment.yml | 33 +- .github/workflows/RemoveReleaseAssets.yml | 36 - .github/workflows/prebuild.yml | 152 -- .github/workflows/prebuildMacOSArm.yml | 39 - .prebuild/Dockerfile.alpine | 2 +- .prebuild/Dockerfile.debian | 7 +- .prebuild/Dockerfile.oldDebian | 47 + .prebuild/abi_registry.json | 7 + .prebuild/build.js | 145 -- .prebuild/build.sh | 11 +- .prebuild/electron.js | 49 + .prebuild/prebuild.js | 46 + .prebuild/{buildify.js => prebuildify.js} | 47 +- README.md | 18 +- build.sh | 133 +- notes/0.10.1-pre.5.md | 71 + notes/0.11.8-beta.1.md | 85 + notes/0.11.8-beta.2.md | 92 + package-lock.json | 1565 +++++++++++++---- package.json | 12 +- src/index.ts | 4 +- src/prebuild-file-path.ts | 1 + src/unixTerminal.ts | 9 + 24 files changed, 1781 insertions(+), 871 deletions(-) delete mode 100644 .github/workflows/PackageNPMRelease.yml delete mode 100644 .github/workflows/RemoveReleaseAssets.yml delete mode 100644 .github/workflows/prebuild.yml delete mode 100644 .github/workflows/prebuildMacOSArm.yml create mode 100644 .prebuild/Dockerfile.oldDebian delete mode 100644 .prebuild/build.js create mode 100644 .prebuild/electron.js create mode 100644 .prebuild/prebuild.js rename .prebuild/{buildify.js => prebuildify.js} (54%) create mode 100644 notes/0.10.1-pre.5.md create mode 100644 notes/0.11.8-beta.1.md create mode 100644 notes/0.11.8-beta.2.md diff --git a/.github/workflows/PackageNPMRelease.yml b/.github/workflows/PackageNPMRelease.yml deleted file mode 100644 index 2b3b98ac3..000000000 --- a/.github/workflows/PackageNPMRelease.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: "Package GitHub release for NPM" -run-name: Package ${{ github.event.inputs.tag }} for NPM Release - -on: - workflow_dispatch: - inputs: - tag: - description: 'Tag' - required: true - -jobs: - Package_NPM_Release: - name: Package NPM Release - runs-on: ubuntu-latest - - steps: - - name: Checkout Code - uses: actions/checkout@v4 - - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: lts/* - registry-url: 'https://registry.npmjs.org' - - - name: NPM build - run: | - npm ci --ignore-scripts - npm run build - - Publish_NPM_Release: - name: Publish NPM Release - needs: Package_NPM_Release - - if: ${{ github.repository == 'homebridge/node-pty-prebuilt-multiarch' }} - - uses: homebridge/.github/.github/workflows/npm-publish.yml@latest - with: - install_cmd: npm ci - secrets: - npm_auth_token: ${{ secrets.npm_token }} diff --git a/.github/workflows/Prepare prebuild environment.yml b/.github/workflows/Prepare prebuild environment.yml index 6e9a4600d..35401315d 100644 --- a/.github/workflows/Prepare prebuild environment.yml +++ b/.github/workflows/Prepare prebuild environment.yml @@ -99,8 +99,8 @@ jobs: DOCKERFILE: Dockerfile.alpine QEMU_ARCH: x86_64 CMD: BuildAllCMD - COUNT: 25 - NPMCOUNT: 11 + COUNT: 26 + NPMCOUNT: 12 - name: linuxmusl-arm os: ubuntu-latest @@ -108,8 +108,8 @@ jobs: DOCKERFILE: Dockerfile.alpine QEMU_ARCH: arm CMD: BuildAllCMD - COUNT: 25 - NPMCOUNT: 11 + COUNT: 26 + NPMCOUNT: 12 - name: linuxmusl-arm64 os: ubuntu-latest @@ -117,8 +117,8 @@ jobs: DOCKERFILE: Dockerfile.alpine QEMU_ARCH: aarch64 CMD: BuildAllCMD - COUNT: 25 - NPMCOUNT: 11 + COUNT: 26 + NPMCOUNT: 12 - name: linux-arm os: ubuntu-latest @@ -126,8 +126,8 @@ jobs: DOCKERFILE: Dockerfile.debian QEMU_ARCH: arm CMD: BuildAllCMD - COUNT: 25 - NPMCOUNT: 11 + COUNT: 26 + NPMCOUNT: 12 # Builds for NodeJS 19+ @@ -155,8 +155,8 @@ jobs: DOCKERFILE: Dockerfile.debian QEMU_ARCH: aarch64 CMD: BuildNewCMD - COUNT: 25 - NPMCOUNT: 11 + COUNT: 3 + NPMCOUNT: 3 # Builds for NodeJS 18 or lower @@ -196,14 +196,14 @@ jobs: - name: darwin-arm64 os: [self-hosted, macOS, ARM64] - COUNT: 25 + COUNT: 26 NPMCOUNT: 11 - name: win32-ia32 os: windows-2019 arch: ia32 COUNT: 21 - NPMCOUNT: 0 + NPMCOUNT: 0 - name: win32-x64 os: windows-2019 @@ -343,6 +343,7 @@ jobs: with: node-version: lts/* registry-url: 'https://registry.npmjs.org' + cache: 'npm' - name: NPM build run: | @@ -400,8 +401,12 @@ jobs: - name: npm publish beta if: ${{ github.repository == 'homebridge/node-pty-prebuilt-multiarch' && inputs.Beta }} - run: npm publish --access public --tag=${{ inputs.Beta }} + run: npm publish --access public --tag=beta + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - name: npm publish production if: ${{ github.repository == 'homebridge/node-pty-prebuilt-multiarch' && ! inputs.Beta }} - run: npm publish --access public \ No newline at end of file + run: npm publish --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/RemoveReleaseAssets.yml b/.github/workflows/RemoveReleaseAssets.yml deleted file mode 100644 index 4f6c20f76..000000000 --- a/.github/workflows/RemoveReleaseAssets.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: "Remove Release Assets from a GitHub Release" -run-name: Remove Assets from ${{ github.event.inputs.tag }} - ${{ github.event.inputs.Bundle }} - -on: - workflow_dispatch: - inputs: - tag: - description: 'Tag' - required: true - Bundle: - description: 'Prebuild Bundle' - required: true - type: choice - options: - - darwin-arm64 - - darwin-x64 - - linux-arm - - linux-arm64tar.gz - - linux-ia32 - - linux-x64 - - linuxmusl-arm - - linuxmusl-arm64 - - linuxmusl-x64 - - win32-ia32 - - win32-x64 - -jobs: - Remove: - runs-on: ubuntu-latest - steps: - - name: Delete old release assets - uses: mknejp/delete-release-assets@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.event.inputs.tag }} - assets: node-pty*${{ github.event.inputs.Bundle }}.tar.gz \ No newline at end of file diff --git a/.github/workflows/prebuild.yml b/.github/workflows/prebuild.yml deleted file mode 100644 index 514eda296..000000000 --- a/.github/workflows/prebuild.yml +++ /dev/null @@ -1,152 +0,0 @@ -name: "Prebuild node-gyp and package for a GitHub Release" -run-name: Package against ${{ github.event.inputs.tag }} - -on: - workflow_dispatch: - inputs: - tag: - description: 'Tag' - required: true - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - name: [ - darwin-x64, - linux-arm, - linux-arm64, - linux-ia32, - linux-x64, - linuxmusl-arm, - linuxmusl-arm64, - linuxmusl-x64, - win32-ia32, - win32-x64 - ] - include: - - name: linuxmusl-x64 - os: ubuntu-latest - BASE_IMAGE: library/node:16-alpine - DOCKERFILE: Dockerfile.alpine - QEMU_ARCH: x86_64 - COUNT: 24 - - - name: linuxmusl-arm - os: ubuntu-latest - BASE_IMAGE: arm32v6/node:16-alpine - DOCKERFILE: Dockerfile.alpine - QEMU_ARCH: arm - COUNT: 24 - - - name: linuxmusl-arm64 - os: ubuntu-latest - BASE_IMAGE: arm64v8/node:16-alpine - DOCKERFILE: Dockerfile.alpine - QEMU_ARCH: aarch64 - COUNT: 24 - - - name: linux-x64 - os: ubuntu-latest - BASE_IMAGE: library/debian:11.7-slim - DOCKERFILE: Dockerfile.debian - QEMU_ARCH: x86_64 - COUNT: 24 - - - name: linux-ia32 - os: ubuntu-latest - BASE_IMAGE: i386/debian:11.7-slim - DOCKERFILE: Dockerfile.debian - QEMU_ARCH: i386 - COUNT: 23 - - - name: linux-arm - os: ubuntu-latest - BASE_IMAGE: balenalib/raspberry-pi-debian:bullseye - DOCKERFILE: Dockerfile.debian - QEMU_ARCH: arm - COUNT: 24 - - - name: linux-arm64 - os: ubuntu-latest - BASE_IMAGE: arm64v8/debian:11.7-slim - DOCKERFILE: Dockerfile.debian - QEMU_ARCH: aarch64 - COUNT: 24 - - - name: darwin-x64 - os: macOS-latest - COUNT: 24 - - - name: win32-ia32 - os: windows-2019 - arch: ia32 - COUNT: 21 - - - name: win32-x64 - os: windows-2019 - arch: x64 - COUNT: 24 - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - - name: Linux - Setup Dependencies - if: runner.os == 'Linux' - run: | - sudo apt-get update - sudo apt-get --yes --no-install-recommends install binfmt-support qemu-user-static - docker run --rm --privileged multiarch/qemu-user-static:register --reset - - - name: Linux - Build Docker Image - if: runner.os == 'Linux' - run: | - docker build -f .prebuild/${{ matrix.DOCKERFILE }} --build-arg BASE_IMAGE=${{ matrix.BASE_IMAGE }} --build-arg QEMU_ARCH=${{ matrix.QEMU_ARCH }} -t multiarch-build . - - - name: Linux - Prebuild Binaries - if: runner.os == 'Linux' - run: | - docker run --rm -v $(pwd):/node-pty multiarch-build - - - name: macOS - Prebuild Binaries - if: runner.os == 'macOS' - run: | - npm ci --ignore-scripts - env JOBS=max node .prebuild/build.js - - - name: Windows ia32 - Prebuild Binaries - if: ${{ (runner.os == 'Windows') && (matrix.arch == 'ia32') }} - shell: bash - run: | - npm ci --ignore-scripts - env JOBS=max node_modules/.bin/prebuild -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.1 --include-regex "\.(node|exe|dll|pdb)" --arch ${{ matrix.arch }} - env JOBS=max node_modules/.bin/prebuild -t 5.0.0 -t 6.0.0 -t 7.0.0 -t 8.0.0 -t 9.0.0 -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.2 -t 15.0.0 -t 16.0.0 -t 17.0.0 --include-regex "\.(node|exe|dll|pdb)" -r electron -a ${{ matrix.arch }} - - - name: Windows x64 - Prebuild Binaries - if: ${{ (runner.os == 'Windows') && (matrix.arch == 'x64') }} - shell: bash - run: | - npm ci --ignore-scripts - env JOBS=max node_modules/.bin/prebuild -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.1 -t 18.0.0 -t 20.0.0 --include-regex "\.(node|exe|dll|pdb)" --arch ${{ matrix.arch }} - env JOBS=max node_modules/.bin/prebuild -t 5.0.0 -t 6.0.0 -t 7.0.0 -t 8.0.0 -t 9.0.0 -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.2 -t 15.0.0 -t 16.0.0 -t 17.0.0 -t 18.0.0 --include-regex "\.(node|exe|dll|pdb)" -r electron --arch ${{ matrix.arch }} - - - name: Check prebuilds exist - shell: bash - run: | - fileCount=$(ls prebuilds/*/node-pty*tar.gz | wc -l) - echo "Prebuild count ${fileCount}" - echo "::notice::Prebuild count ${fileCount}, expected ${{ matrix.COUNT }}" - if [ "$fileCount" -eq 0 ]; then exit 1; fi - if [ "$fileCount" -ne ${{ matrix.COUNT }} ]; then exit 1; fi - - - uses: AButler/upload-release-assets@v2.0 - with: - files: 'prebuilds/*/node-pty*tar.gz' - repo-token: ${{ secrets.GITHUB_TOKEN }} - release-tag: ${{ github.event.inputs.tag }} - diff --git a/.github/workflows/prebuildMacOSArm.yml b/.github/workflows/prebuildMacOSArm.yml deleted file mode 100644 index f1845e8c1..000000000 --- a/.github/workflows/prebuildMacOSArm.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: "Prebuild node-gyp MacOS ARM64 Binaries and package for a GitHub Release" -run-name: Package MacOS ARM64 against ${{ github.event.inputs.tag }} - -on: - workflow_dispatch: - inputs: - tag: - description: 'Tag' - required: true - -jobs: - build: - runs-on: [self-hosted, macOS, ARM64] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - - name: macOS - Prebuild Binaries - if: runner.os == 'macOS' - run: | - npm ci --ignore-scripts - env JOBS=max node .prebuild/build.js - - - name: Check prebuilds exist - shell: bash - run: | - fileCount=$(ls prebuilds/*/node-pty*tar.gz | wc -l) - echo "Prebuild count ${fileCount}" - echo "::notice::Prebuild count ${fileCount}, expected 24" - if [ "$fileCount" -eq 0 ]; then exit 1; fi - if [ "$fileCount" -ne 24 ]; then exit 1; fi - - - uses: AButler/upload-release-assets@v2.0 - with: - files: 'prebuilds/*/node-pty*tar.gz' - repo-token: ${{ secrets.GITHUB_TOKEN }} - release-tag: ${{ github.event.inputs.tag }} diff --git a/.prebuild/Dockerfile.alpine b/.prebuild/Dockerfile.alpine index bd500e546..0ea0428cc 100644 --- a/.prebuild/Dockerfile.alpine +++ b/.prebuild/Dockerfile.alpine @@ -11,4 +11,4 @@ RUN apk add curl git gcc g++ make python3 paxctl RUN mkdir /node-pty WORKDIR /node-pty -CMD ["./.prebuild/build.sh"] \ No newline at end of file +#CMD /bin/bash -c "$CMD" \ No newline at end of file diff --git a/.prebuild/Dockerfile.debian b/.prebuild/Dockerfile.debian index d9dfd5846..3d7fb9c10 100644 --- a/.prebuild/Dockerfile.debian +++ b/.prebuild/Dockerfile.debian @@ -1,5 +1,5 @@ ARG BASE_IMAGE -FROM ${BASE_IMAGE:-library/debian:11.7-slim} +FROM ${BASE_IMAGE:-library/debian:buster-slim} ARG QEMU_ARCH ENV QEMU_ARCH=${QEMU_ARCH:-x86_64} @@ -13,7 +13,7 @@ RUN [ "$(uname -m)" = "x86_64" ] && apt-get install -y g++-multilib gcc-multilib ## Linux 32 bit support was dropped with NodeJS 18.4.0 -ENV NODE_VERSION 18.18.0 +ENV NODE_VERSION 18.18.2 RUN case "${QEMU_ARCH}" in \ x86_64) NODE_ARCH='x64';; \ @@ -33,4 +33,5 @@ RUN case "${QEMU_ARCH}" in \ RUN mkdir /node-pty WORKDIR /node-pty -CMD ["./.prebuild/build.sh"] \ No newline at end of file +#RUN echo $CMD +#CMD /bin/bash -c "$CMD" \ No newline at end of file diff --git a/.prebuild/Dockerfile.oldDebian b/.prebuild/Dockerfile.oldDebian new file mode 100644 index 000000000..f92c42305 --- /dev/null +++ b/.prebuild/Dockerfile.oldDebian @@ -0,0 +1,47 @@ +ARG BASE_IMAGE +FROM ${BASE_IMAGE:-library/debian:9.6-slim} + +ARG QEMU_ARCH +ENV QEMU_ARCH=${QEMU_ARCH:-x86_64} + +COPY .prebuild/qemu/qemu-${QEMU_ARCH}-static /usr/bin/ + +RUN cat /etc/apt/sources.list +RUN sed -i.bak 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list +RUN sed -i.bak 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list +RUN sed -i.bak '/stretch-updates/d' /etc/apt/sources.list +RUN apt-get update \ + && apt-get install -y gcc g++ make curl wget zlib1g-dev + +RUN [ "$(uname -m)" = "x86_64" ] && apt-get install -y g++-multilib gcc-multilib || echo "ok" + +## Linux 32 bit support was dropped with NodeJS 18.4.0 + +RUN wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz && tar xf Python-3.6.15.tgz \ +&& cd Python-3.6.15 && ./configure --prefix=/usr --enable-optimizations --enable-shared && make -j8 build_all \ +&& make -j8 altinstall && update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 50 + +ENV NODE_VERSION 16.20.2 + +RUN case "${QEMU_ARCH}" in \ + x86_64) NODE_ARCH='x64';; \ + arm) NODE_ARCH='armv6l';; \ + aarch64) NODE_ARCH='arm64';; \ + i386) NODE_ARCH='x86'; NODE_VERSION='18.4.0';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + && set -x \ + && [ "$NODE_ARCH" = "armv6l" -o "$NODE_ARCH" = "x86" ] && curl -SLO "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$NODE_ARCH.tar.gz" || curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$NODE_ARCH.tar.gz" \ + && echo "Installing NodeJS node-v$NODE_VERSION-linux-$NODE_ARCH.tar.gz" \ + && tar -xzf "node-v$NODE_VERSION-linux-$NODE_ARCH.tar.gz" -C /usr/local --strip-components=1 --no-same-owner \ + && rm "node-v$NODE_VERSION-linux-$NODE_ARCH.tar.gz" \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ + && npm set prefix /usr/local + + + +RUN mkdir /node-pty +WORKDIR /node-pty + +#RUN echo $CMD +#CMD /bin/bash -c "$CMD" \ No newline at end of file diff --git a/.prebuild/abi_registry.json b/.prebuild/abi_registry.json index 541de1acc..53fb8485e 100644 --- a/.prebuild/abi_registry.json +++ b/.prebuild/abi_registry.json @@ -186,5 +186,12 @@ "lts": false, "future": true, "abi": "115" + }, + { + "runtime": "node", + "target": "21.0.0", + "lts": false, + "future": true, + "abi": "120" } ] \ No newline at end of file diff --git a/.prebuild/build.js b/.prebuild/build.js deleted file mode 100644 index ea4d4adb3..000000000 --- a/.prebuild/build.js +++ /dev/null @@ -1,145 +0,0 @@ -const fs = require('fs'); -const os = require('os'); -const path = require('path'); -const child_process = require('child_process'); - -// node-abi is still shipping the wrong data -// correct this issue manually for now -const prebuildPkgPath = path.dirname(require.resolve('prebuild')); -const nodeAbiPkgPath = path.dirname(require.resolve('node-abi')); -const prebuildPath = path.resolve(prebuildPkgPath, 'bin.js'); -const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json'); -fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath); - -if (os.platform() === 'win32') { - process.exit(0); -} - -const cwd = path.resolve(__dirname, '../'); - -/** - * --------------- Node.js Build --------------- - */ - -// define build targets -var nodeBuildTargets = []; -if (process.env.QEMU_ARCH === 'i386') { - // Linux 32 bit support was dropped with 18.4.0 - nodeBuildTargets = [ - '-t', - '10.0.0', - '-t', - '11.0.0', - '-t', - '12.0.0', - '-t', - '13.0.0', - '-t', - '14.0.0', - '-t', - '15.0.0', - '-t', - '16.0.0', - '-t', - '17.0.1', - '-t', - '18.0.0', - ] -} else { - nodeBuildTargets = [ - '-t', - '10.0.0', - '-t', - '11.0.0', - '-t', - '12.0.0', - '-t', - '13.0.0', - '-t', - '14.0.0', - '-t', - '15.0.0', - '-t', - '16.0.0', - '-t', - '17.0.1', - '-t', - '18.0.0', - '-t', - '20.0.0', - ] -} - -const nodeBuildCmd = [ - prebuildPath, - ...nodeBuildTargets, -] - -console.log('Building for Node.js:'); -console.log(nodeBuildCmd.join(' ')); - -try { - var result = child_process.spawnSync(process.execPath, nodeBuildCmd, { - cwd: cwd, - stdio: ['inherit', 'inherit', 'inherit'] - }); - console.log('Result ', result.status, result.signal, result.error); -} catch (e) { - console.error(e); - process.exit(0); -} - -/** - * --------------- Electron Build --------------- - */ - -const electronBuildTargets = [ - '-t', - '5.0.0', - '-t', - '6.0.0', - '-t', - '7.0.0', - '-t', - '8.0.0', - '-t', - '9.0.0', - '-t', - '10.0.0', - '-t', - '11.0.0', - '-t', - '12.0.0', - '-t', - '13.0.0', - '-t', - '14.0.0', - '-t', - '15.0.0', - '-t', - '16.0.0', - '-t', - '17.0.0', - '-t', - '18.0.0', -] - -const electronBuildCmd = [ - prebuildPath, - '-r', - 'electron', - ...electronBuildTargets, -] - -console.log('Building for Electron:'); -console.log(electronBuildCmd.join(' ')); - -try { - var result = child_process.spawnSync(process.execPath, electronBuildCmd, { - cwd: cwd, - stdio: ['inherit', 'inherit', 'inherit'] - }); - console.log('Result ', result.status, result.signal, result.error); -} catch (e) { - process.exit(0); -} diff --git a/.prebuild/build.sh b/.prebuild/build.sh index 0959dfc5b..936a11a84 100755 --- a/.prebuild/build.sh +++ b/.prebuild/build.sh @@ -5,7 +5,7 @@ cd /node-pty # rm -rf node_modules -echo "Building for $(uname -m)..." +echo "Building for $(uname -m)... ->" $* npm ci --ignore-scripts # https://github.com/microsoft/vscode/blob/c23f0305dbf82b2319b198f4dbf3c5d5bc522f15/build/azure-pipelines/linux/product-build-linux-client.yml#L113-L125 @@ -15,4 +15,11 @@ npm ci --ignore-scripts fi #node .prebuild/build.js -env JOBS=max node .prebuild/build.js \ No newline at end of file +env JOBS=max node $* + +#env JOBS=max node .prebuild/prebuild.js -t 19.0.0 -t 20.0.0 -t 21.0.0 +#env JOBS=max node .prebuild/prebuildify.js -t 19.0.0 -t 20.0.0 -t 21.0.0 + +#env JOBS=max node .prebuild/prebuild.js -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.1 -t 18.0.0 +#env JOBS=max node .prebuild/prebuildify.js -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.1 -t 18.0.0 +#env JOBS=max node .prebuild/electron.js -t 5.0.0 -t 6.0.0 -t 7.0.0 -t 8.0.0 -t 9.0.0 -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.0 -t 18.0.0 diff --git a/.prebuild/electron.js b/.prebuild/electron.js new file mode 100644 index 000000000..0d2766b0c --- /dev/null +++ b/.prebuild/electron.js @@ -0,0 +1,49 @@ +const fs = require('fs'); +const os = require('os'); +const path = require('path'); +const child_process = require('child_process'); + +// node-abi is still shipping the wrong data +// correct this issue manually for now +const prebuildPkgPath = path.dirname(require.resolve('prebuild')); +const nodeAbiPkgPath = path.dirname(require.resolve('node-abi')); +const prebuildPath = path.resolve(prebuildPkgPath, 'bin.js'); +const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json'); +fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath); + +if (os.platform() === 'win32') { + process.exit(0); +} + +const cwd = path.resolve(__dirname, '../'); + + +/** + * --------------- Electron Build --------------- + */ + + + var electronBuildTargets = [...process.argv]; + + electronBuildTargets.shift(); + electronBuildTargets.shift(); + +const electronBuildCmd = [ + prebuildPath, + '-r', + 'electron', + ...electronBuildTargets, +] + +console.log('Building for Electron:'); +console.log(electronBuildCmd.join(' ')); + +try { + var result = child_process.spawnSync(process.execPath, electronBuildCmd, { + cwd: cwd, + stdio: ['inherit', 'inherit', 'inherit'] + }); + console.log('Result ', result.status, result.signal, result.error); +} catch (e) { + process.exit(0); +} diff --git a/.prebuild/prebuild.js b/.prebuild/prebuild.js new file mode 100644 index 000000000..aaf46a15e --- /dev/null +++ b/.prebuild/prebuild.js @@ -0,0 +1,46 @@ +const fs = require('fs'); +const os = require('os'); +const path = require('path'); +const child_process = require('child_process'); + +// node-abi is still shipping the wrong data +// correct this issue manually for now +const prebuildPkgPath = path.dirname(require.resolve('prebuild')); +const nodeAbiPkgPath = path.dirname(require.resolve('node-abi')); +const prebuildPath = path.resolve(prebuildPkgPath, 'bin.js'); +const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json'); +fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath); + +if (os.platform() === 'win32') { + process.exit(0); +} + +const cwd = path.resolve(__dirname, '../'); + +/** + * --------------- Node.js Build --------------- + */ + + var nodeBuildTargets = [...process.argv]; + + nodeBuildTargets.shift(); + nodeBuildTargets.shift(); + +const nodeBuildCmd = [ + prebuildPath, + ...nodeBuildTargets, +] + +console.log('Prebuild for Node.js:'); +console.log(nodeBuildCmd.join(' ')); + +try { + var result = child_process.spawnSync(process.execPath, nodeBuildCmd, { + cwd: cwd, + stdio: ['inherit', 'inherit', 'inherit'] + }); + console.log('Prebuild Result ', result.status, result.signal, result.error); +} catch (e) { + console.error(e); + process.exit(0); +} \ No newline at end of file diff --git a/.prebuild/buildify.js b/.prebuild/prebuildify.js similarity index 54% rename from .prebuild/buildify.js rename to .prebuild/prebuildify.js index 101feb066..c61e00719 100644 --- a/.prebuild/buildify.js +++ b/.prebuild/prebuildify.js @@ -1,7 +1,6 @@ const fs = require('fs'); const os = require('os'); const path = require('path'); -const process = require('process'); const child_process = require('child_process'); // node-abi is still shipping the wrong data @@ -12,17 +11,6 @@ const prebuildPath = path.resolve(prebuildPkgPath, 'bin.js'); const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json'); fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath); -// const nodeGypPkgPath = path.dirname(require.resolve('prebuild')); -// const nodeGyp = path.resolve(nodeGypPkgPath, 'node_modules/node-gyp/bin/node-gyp.js'); - -// console.log('nodeGyp', nodeGyp); -console.log('pwd',process.cwd()); - -const altAbiRegistryJsonPath = path.resolve(prebuildPkgPath, 'node_modules/node-abi/abi_registry.json'); -if (fs.existsSync(altAbiRegistryJsonPath)) { - fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), altAbiRegistryJsonPath); -} - if (os.platform() === 'win32') { process.exit(0); } @@ -33,47 +21,30 @@ const cwd = path.resolve(__dirname, '../'); * --------------- Node.js Build --------------- */ -// define build targets -const nodeBuildTargets = [ - '-t', - '10.0.0', - '-t', - '11.0.0', - '-t', - '12.0.0', - '-t', - '13.0.0', - '-t', - '14.0.0', - '-t', - '15.0.0', - '-t', - '16.0.0', - '-t', - '17.0.1', - '-t', - '18.0.0', - '-t', - '20.0.0' -] + var nodeBuildTargets = [...process.argv]; + + nodeBuildTargets.shift(); + nodeBuildTargets.shift(); + const nodeBuildCmd = [ prebuildPath, - ...nodeBuildTargets + ...nodeBuildTargets, ] if (os.platform() === 'linux' && fs.existsSync('/etc/alpine-release')) { nodeBuildCmd.push('--tag-libc') } -console.log('Building for Node.js:'); +console.log('Prebuildify for Node.js:'); console.log(nodeBuildCmd.join(' ')); try { - child_process.spawnSync(process.execPath, nodeBuildCmd, { + var result = child_process.spawnSync(process.execPath, nodeBuildCmd, { cwd: cwd, stdio: ['inherit', 'inherit', 'inherit'] }); + console.log('Prebuildify Result ', result.status, result.signal, result.error); } catch (e) { console.error(e); process.exit(0); diff --git a/README.md b/README.md index 2c93348fe..381209641 100644 --- a/README.md +++ b/README.md @@ -33,15 +33,15 @@ When `@homebridge/node-pty-prebuilt-multiarch` is installed as a package depende Please note releasing this package uses GitHub actions. -1. Make your updates, and update version within package.json (and regenerate the lock file with the new version) -2. Create a Pre Release on GitHub with the TAG matching the version from Step 1 (with a `v` in front of it) -3. Run the GitHub action `Prebuild node-gyp and package for a GitHub Release` and supply the version TAG -4. Start a macOS ARM64 Local runner in your environment (see [here](https://github.com/homebridge/node-pty-prebuilt-multiarch/settings/actions/runners)) -5. Run the GitHub action `Prebuild node-gyp MacOS ARM64 Binaries and package for a GitHub Release` and supply the version TAG -6. Wait for steps 3 and 5 to complete (step 3 takes about 30 minutes). If you need to rerun a step, go into the GitHub Release, and remove the attached pre-builds. -7. Run the GitHub action `Package GitHub release for NPM` and supply the version TAG. +This flows takes the branch selected from the workflow start drop down, and creates a GitHub and NPM Release containing the prebuild artifacts. The version of the Release comes from the package.json, and in the case of a BETA release automatically appends the beta release version. During processing it leverages a branch called `release-candidate` as a holding area for prebuilds. -If you experience an error when running `Prebuild node-gyp and package for a GitHub Release` and need to rerun, you may need to remove any release attachments from the failed build step. You can do this with the action `Remove Release Assets from a GitHub Release`, and chose the approriate prebuild bundle. +When running the job, most times a couple of the instances of the sub step `Commit & Push Changes` within `Prebuild NPM and GitHub Release artifacts` fails. When this occurs just re-run. This is due to concurency issues between the steps and github. A typicall run has 3-4 steps fail. + +1. Create branch `release-candidate` if not existing ( The script deletes it before starting and will fail if it isn't present ). +2. Start MacOS ARM 64 local runner +3. Ensure version tag within package.json reflects version you want to publish, please note beta tags are added by the action. +4. Run Action `Run prebuild's and Create GitHub and NPM release`, and select branch you wish to publish, and if it needs to be BETA tagged and versioned. +5. This will run for about an hour, and create a github release with the prebuild artifacts attached, and a npm release with the prebuild artifacts attached. ## License @@ -50,4 +50,4 @@ If you experience an error when running `Prebuild node-gyp and package for a Git * Copyright (c) 2018, Microsoft Corporation (MIT License). * Copyright (c) 2018, David Wilson (MIT License). * Copyright (c) 2018, oznu (MIT License). -* Copyright (c) 2023, Homebridge (MIT License). +* Copyright (c) 2023, Homebridge (MIT License). \ No newline at end of file diff --git a/build.sh b/build.sh index 6b2ef1e72..99354da2b 100755 --- a/build.sh +++ b/build.sh @@ -2,47 +2,152 @@ set -e +export oldNodeBuildTargets='-t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.1 -t 18.0.0' +export nodeBuildTargets='-t 19.0.0 -t 20.0.0 -t 21.0.0' + +export electronBuildTargets='-t 5.0.0 -t 6.0.0 -t 7.0.0 -t 8.0.0 -t 9.0.0 -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.0 -t 18.0.0' + +export oldRunCMD="./.prebuild/build.sh .prebuild/prebuild.js ${oldNodeBuildTargets} && \ +./.prebuild/build.sh .prebuild/prebuildify.js ${oldNodeBuildTargets} && \ +./.prebuild/build.sh .prebuild/electron.js ${electronBuildTargets}" + +export RunCMD="./.prebuild/build.sh .prebuild/prebuild.js ${nodeBuildTargets} && \ +./.prebuild/build.sh .prebuild/prebuildify.js ${nodeBuildTargets}" + +export BuildAllCMD="./.prebuild/build.sh .prebuild/prebuild.js ${oldNodeBuildTargets} ${nodeBuildTargets} && \ +./.prebuild/build.sh .prebuild/prebuildify.js ${oldNodeBuildTargets} ${nodeBuildTargets} && \ +./.prebuild/build.sh .prebuild/electron.js ${electronBuildTargets}" + +# Older +export QEMU_ARCH=x86_64 +export DOCKERFILE="Dockerfile.oldDebian" +export CMD=$oldRunCMD + +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo +#docker build -f .prebuild/$DOCKERFILE --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . +#docker run --rm -v $(pwd):/node-pty multiarch-build bash -c "$CMD" + +#docker run -v $(pwd):/node-pty multiarch-build ./.prebuild/build.sh .prebuild/prebuild.js ${oldNodeBuildTargets} +#docker run -v $(pwd):/node-pty multiarch-build ./.prebuild/build.sh .prebuild/prebuildify.js ${oldNodeBuildTargets} +#docker run --rm -v $(pwd):/node-pty multiarch-build ./.prebuild/build.sh .prebuild/electron.js ${electronBuildTargets} + +# Newer + +export QEMU_ARCH=x86_64 +export DOCKERFILE="Dockerfile.debian" +export CMD=$RunCMD +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo +#docker build -f .prebuild/$DOCKERFILE --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . +#docker run --rm -v $(pwd):/node-pty multiarch-build bash -c "$CMD" + +#docker run -v $(pwd):/node-pty multiarch-build ./.prebuild/build.sh .prebuild/prebuild.js ${nodeBuildTargets} +#docker run --rm -v $(pwd):/node-pty multiarch-build ./.prebuild/build.sh .prebuild/prebuildify.js ${nodeBuildTargets} + +# Older + export BASE_IMAGE=balenalib/raspberry-pi-debian:bullseye export QEMU_ARCH=arm export DOCKERFILE="Dockerfile.debian" -docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . -docker run --rm -v $(pwd):/node-pty multiarch-build +export CMD=$BuildAllCMD +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo +#docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . +#docker run --rm -v $(pwd):/node-pty multiarch-build bash -c "$CMD" -export BASE_IMAGE=library/debian:11.7-slim -export QEMU_ARCH=x86_64 -export DOCKERFILE="Dockerfile.debian" -docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . -docker run --rm -v $(pwd):/node-pty multiarch-build +# Newer + +# export BASE_IMAGE=balenalib/raspberry-pi-debian:bullseye +# export QEMU_ARCH=arm +# export DOCKERFILE="Dockerfile.debian" +# export CMD=$RunCMD +# docker build -f .prebuild/$DOCKERFILE --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . +# docker run --rm -v $(pwd):/node-pty multiarch-build + + +#Older + +export BASE_IMAGE=i386/debian:9.6-slim +export QEMU_ARCH=i386 +export DOCKERFILE="Dockerfile.oldDebian" +export CMD=$oldRunCMD +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo +#docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . +#docker run --rm -v $(pwd):/node-pty multiarch-build bash -c "$CMD" + +#Newer export BASE_IMAGE=i386/debian:11.7-slim export QEMU_ARCH=i386 export DOCKERFILE="Dockerfile.debian" -docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . -docker run --rm -v $(pwd):/node-pty multiarch-build +export CMD=$RunCMD +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo +#docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . +#docker run --rm -v $(pwd):/node-pty multiarch-build bash -c "$CMD" + +#Older + +export BASE_IMAGE=arm64v8/debian:9.6-slim +export QEMU_ARCH=aarch64 +export DOCKERFILE="Dockerfile.oldDebian" +export CMD=$oldRunCMD +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo +#docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . +#docker run --rm -v $(pwd):/node-pty multiarch-build bash -c "$CMD" + +#Newer export BASE_IMAGE=arm64v8/debian:11.7-slim export QEMU_ARCH=aarch64 export DOCKERFILE="Dockerfile.debian" -docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . -docker run --rm -v $(pwd):/node-pty multiarch-build +export CMD=$RunCMD +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo +#docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . +#docker run --rm -v $(pwd):/node-pty multiarch-build bash -c "$CMD" + +# Not Impacted + +export CMD=$BuildAllCMD export BASE_IMAGE=library/node:16-alpine export QEMU_ARCH=x86_64 export DOCKERFILE="Dockerfile.alpine" +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . -docker run --rm -v $(pwd):/node-pty multiarch-build +#docker run --rm -v $(pwd):/node-pty multiarch-build ls -l;which bash +docker run --rm -v $(pwd):/node-pty multiarch-build sh -c "$CMD" export BASE_IMAGE=arm32v6/node:16-alpine export QEMU_ARCH=arm export DOCKERFILE="Dockerfile.alpine" +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . -docker run --rm -v $(pwd):/node-pty multiarch-build +docker run --rm -v $(pwd):/node-pty multiarch-build sh -c "$CMD" export BASE_IMAGE=arm64v8/node:16-alpine export QEMU_ARCH=aarch64 export DOCKERFILE="Dockerfile.alpine" +echo +echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------" +echo docker build -f .prebuild/$DOCKERFILE --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build . -docker run --rm -v $(pwd):/node-pty multiarch-build +docker run --rm -v $(pwd):/node-pty multiarch-build sh -c "$CMD" if [ "`uname -m`" = "arm64" ] && [ "`uname`" = "Darwin" ]; then npm install --ignore-scripts diff --git a/notes/0.10.1-pre.5.md b/notes/0.10.1-pre.5.md new file mode 100644 index 000000000..b08f5b5e6 --- /dev/null +++ b/notes/0.10.1-pre.5.md @@ -0,0 +1,71 @@ +# Prebuilds within 0.10.1-pre.5 + +Output from: + +``` +for i in `find prebuilds/linux* -type f -print`; do echo $i `strings $i | grep GLIB | awk -F\@ '{ print $2 $3 }'| sort|uniq`; done +``` + +prebuilds/linux-arm/node.abi93.musl.node +prebuilds/linux-arm/node.abi83.node GLIBCXX_3.4 GLIBC_2.4 +prebuilds/linux-arm/node.abi64.musl.node +prebuilds/linux-arm/node.abi93.node GLIBCXX_3.4 GLIBC_2.4 +prebuilds/linux-arm/node.abi67.node GLIBCXX_3.4 GLIBC_2.4 +prebuilds/linux-arm/node.abi88.node GLIBCXX_3.4 GLIBC_2.4 +prebuilds/linux-arm/node.abi102.musl.node +prebuilds/linux-arm/node.abi79.musl.node +prebuilds/linux-arm/node.abi88.musl.node +prebuilds/linux-arm/node.abi64.node GLIBCXX_3.4 GLIBC_2.4 +prebuilds/linux-arm/node.abi72.node GLIBCXX_3.4 GLIBC_2.4 +prebuilds/linux-arm/node.abi83.musl.node +prebuilds/linux-arm/node.abi72.musl.node +prebuilds/linux-arm/node.abi108.node GLIBCXX_3.4 GLIBC_2.4 +prebuilds/linux-arm/node.abi79.node GLIBCXX_3.4 GLIBC_2.4 +prebuilds/linux-arm/node.abi67.musl.node +prebuilds/linux-arm/node.abi102.node GLIBCXX_3.4 GLIBC_2.4 +prebuilds/linux-arm/node.abi108.musl.node +prebuilds/linux-arm64/node.abi93.musl.node +prebuilds/linux-arm64/node.abi83.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi64.musl.node +prebuilds/linux-arm64/node.abi93.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi67.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi88.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi102.musl.node +prebuilds/linux-arm64/node.abi79.musl.node +prebuilds/linux-arm64/node.abi88.musl.node +prebuilds/linux-arm64/node.abi64.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi72.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi83.musl.node +prebuilds/linux-arm64/node.abi72.musl.node +prebuilds/linux-arm64/node.abi108.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi79.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi67.musl.node +prebuilds/linux-arm64/node.abi102.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi108.musl.node +prebuilds/linux-ia32/node.abi83.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi93.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi67.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi88.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi64.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi72.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi108.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi79.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi102.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-x64/node.abi93.musl.node +prebuilds/linux-x64/node.abi83.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi64.musl.node +prebuilds/linux-x64/node.abi93.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi67.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi88.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi102.musl.node +prebuilds/linux-x64/node.abi79.musl.node +prebuilds/linux-x64/node.abi88.musl.node +prebuilds/linux-x64/node.abi64.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi72.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi83.musl.node +prebuilds/linux-x64/node.abi72.musl.node +prebuilds/linux-x64/node.abi108.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi79.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi67.musl.node +prebuilds/linux-x64/node.abi102.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi108.musl.node diff --git a/notes/0.11.8-beta.1.md b/notes/0.11.8-beta.1.md new file mode 100644 index 000000000..96f25189b --- /dev/null +++ b/notes/0.11.8-beta.1.md @@ -0,0 +1,85 @@ +# Prebuilds within 0.11.8-beta.1 + +Output from: + +``` +for i in `find prebuilds/linux* -type f -print`; do echo $i `strings $i | grep GLIB | awk -F\@ '{ print $2 $3 }'| sort|uniq`; done +``` + +prebuilds/linux-arm/node.abi93.musl.node +prebuilds/linux-arm/node.abi83.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi120.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi64.musl.node +prebuilds/linux-arm/node.abi120.musl.node +prebuilds/linux-arm/node.abi93.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi115.musl.node +prebuilds/linux-arm/node.abi67.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi88.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi102.musl.node +prebuilds/linux-arm/node.abi79.musl.node +prebuilds/linux-arm/node.abi88.musl.node +prebuilds/linux-arm/node.abi64.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi72.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi83.musl.node +prebuilds/linux-arm/node.abi72.musl.node +prebuilds/linux-arm/node.abi108.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi115.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi79.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi67.musl.node +prebuilds/linux-arm/node.abi102.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi108.musl.node +prebuilds/linux-arm64/node.abi93.musl.node +prebuilds/linux-arm64/node.abi83.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi120.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi64.musl.node +prebuilds/linux-arm64/node.abi120.musl.node +prebuilds/linux-arm64/node.abi93.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi115.musl.node +prebuilds/linux-arm64/node.abi67.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi88.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi102.musl.node +prebuilds/linux-arm64/node.abi79.musl.node +prebuilds/linux-arm64/node.abi88.musl.node +prebuilds/linux-arm64/node.abi64.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi72.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi83.musl.node +prebuilds/linux-arm64/node.abi72.musl.node +prebuilds/linux-arm64/node.abi108.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi115.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi79.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi67.musl.node +prebuilds/linux-arm64/node.abi102.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi108.musl.node +prebuilds/linux-ia32/node.abi83.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi120.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi93.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi67.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi88.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi64.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi72.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi108.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi115.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi79.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi102.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-x64/node.abi93.musl.node +prebuilds/linux-x64/node.abi83.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi120.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi64.musl.node +prebuilds/linux-x64/node.abi120.musl.node +prebuilds/linux-x64/node.abi93.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi115.musl.node +prebuilds/linux-x64/node.abi67.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi88.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi102.musl.node +prebuilds/linux-x64/node.abi79.musl.node +prebuilds/linux-x64/node.abi88.musl.node +prebuilds/linux-x64/node.abi64.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi72.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi83.musl.node +prebuilds/linux-x64/node.abi72.musl.node +prebuilds/linux-x64/node.abi108.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi115.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi79.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi67.musl.node +prebuilds/linux-x64/node.abi102.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi108.musl.node diff --git a/notes/0.11.8-beta.2.md b/notes/0.11.8-beta.2.md new file mode 100644 index 000000000..0e2cc7cdf --- /dev/null +++ b/notes/0.11.8-beta.2.md @@ -0,0 +1,92 @@ +# Prebuilds within 0.11.8-beta.2 + +Output from: + +``` +for i in `find prebuilds/linux* -type f -print`; do echo $i `strings $i | grep GLIB | awk -F\@ '{ print $2 $3 }'| sort|uniq`; done +``` + +prebuilds/linux-arm/node.abi93.musl.node +prebuilds/linux-arm/node.abi83.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi120.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi64.musl.node +prebuilds/linux-arm/node.abi120.musl.node +prebuilds/linux-arm/node.abi93.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi115.musl.node +prebuilds/linux-arm/node.abi111.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi67.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi88.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi102.musl.node +prebuilds/linux-arm/node.abi79.musl.node +prebuilds/linux-arm/node.abi88.musl.node +prebuilds/linux-arm/node.abi64.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi72.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi83.musl.node +prebuilds/linux-arm/node.abi72.musl.node +prebuilds/linux-arm/node.abi108.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi115.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi79.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi111.musl.node +prebuilds/linux-arm/node.abi67.musl.node +prebuilds/linux-arm/node.abi102.node GLIBCXX_3.4 GLIBC_2.28 GLIBC_2.4 +prebuilds/linux-arm/node.abi108.musl.node +prebuilds/linux-arm64/node.abi93.musl.node +prebuilds/linux-arm64/node.abi83.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi120.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi64.musl.node +prebuilds/linux-arm64/node.abi120.musl.node +prebuilds/linux-arm64/node.abi93.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi115.musl.node +prebuilds/linux-arm64/node.abi111.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi67.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi88.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi102.musl.node +prebuilds/linux-arm64/node.abi79.musl.node +prebuilds/linux-arm64/node.abi88.musl.node +prebuilds/linux-arm64/node.abi64.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi72.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi83.musl.node +prebuilds/linux-arm64/node.abi72.musl.node +prebuilds/linux-arm64/node.abi108.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi115.node GLIBCXX_3.4 GLIBC_2.17 GLIBC_2.28 +prebuilds/linux-arm64/node.abi79.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi111.musl.node +prebuilds/linux-arm64/node.abi67.musl.node +prebuilds/linux-arm64/node.abi102.node GLIBCXX_3.4 GLIBC_2.17 +prebuilds/linux-arm64/node.abi108.musl.node +prebuilds/linux-ia32/node.abi83.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi120.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi93.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi111.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi67.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi88.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi64.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi72.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi108.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi115.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.28 +prebuilds/linux-ia32/node.abi79.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-ia32/node.abi102.node GLIBCXX_3.4 GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 +prebuilds/linux-x64/node.abi93.musl.node +prebuilds/linux-x64/node.abi83.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi120.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi64.musl.node +prebuilds/linux-x64/node.abi120.musl.node +prebuilds/linux-x64/node.abi93.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi115.musl.node +prebuilds/linux-x64/node.abi111.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi67.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi88.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi102.musl.node +prebuilds/linux-x64/node.abi79.musl.node +prebuilds/linux-x64/node.abi88.musl.node +prebuilds/linux-x64/node.abi64.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi72.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi83.musl.node +prebuilds/linux-x64/node.abi72.musl.node +prebuilds/linux-x64/node.abi108.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi115.node GLIBCXX_3.4 GLIBC_2.2.5 GLIBC_2.28 +prebuilds/linux-x64/node.abi79.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi111.musl.node +prebuilds/linux-x64/node.abi67.musl.node +prebuilds/linux-x64/node.abi102.node GLIBCXX_3.4 GLIBC_2.2.5 +prebuilds/linux-x64/node.abi108.musl.node \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 989451519..a6d2846ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@homebridge/node-pty-prebuilt-multiarch", - "version": "0.11.7", + "version": "0.11.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@homebridge/node-pty-prebuilt-multiarch", - "version": "0.11.7", + "version": "0.11.8", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -22,7 +22,9 @@ "eslint": "^8.52.0", "mocha": "^10.2.0", "node-abi": "^3.51.0", + "node-gyp": "^10.0.0", "prebuild": "^12.1.0", + "prebuildify": "^5.0.1", "ps-list": "^7.2.0", "typescript": "^5.2.2" } @@ -1665,28 +1667,27 @@ } }, "node_modules/node-gyp": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", - "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.0.tgz", + "integrity": "sha512-LkaKUbjyacJGRHiuhUeUblzZNxTF1/XNooyAl6aiaJ6ZpeurR4Mk9sjxncGNSI7pETqyqM+hLAER0788oSxt0A==", "dev": true, "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", + "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^11.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", "semver": "^7.3.5", "tar": "^6.1.2", - "which": "^2.0.2" + "which": "^4.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/node-gyp/node_modules/@isaacs/cliui": { @@ -1718,29 +1719,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/node-gyp/node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/node-gyp/node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-gyp/node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -1756,6 +1734,22 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/node-gyp/node_modules/@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/node-gyp/node_modules/@npmcli/fs": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", @@ -1778,37 +1772,25 @@ "node": ">=14" } }, - "node_modules/node-gyp/node_modules/@tootallnate/once": { + "node_modules/node-gyp/node_modules/abbrev": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true, "engines": { - "node": ">= 10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/node-gyp/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp/node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "dependencies": { - "humanize-ms": "^1.2.1" + "debug": "^4.3.4" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 14" } }, "node_modules/node-gyp/node_modules/aggregate-error": { @@ -1824,25 +1806,6 @@ "node": ">=8" } }, - "node_modules/node-gyp/node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/node-gyp/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -1853,15 +1816,15 @@ } }, "node_modules/node-gyp/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", - "lru-cache": "^7.7.1", + "lru-cache": "^10.0.1", "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", @@ -1872,38 +1835,7 @@ "unique-filename": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/node-gyp/node_modules/cacache/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/cacache/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/node-gyp/node_modules/chownr": { @@ -1924,21 +1856,6 @@ "node": ">=6" } }, - "node_modules/node-gyp/node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/node-gyp/node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, "node_modules/node-gyp/node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -1992,18 +1909,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/node-gyp/node_modules/fs-minipass": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", @@ -2016,32 +1921,26 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/fs-minipass/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/node-gyp/node_modules/http-cache-semantics": { @@ -2051,39 +1950,29 @@ "dev": true }, "node_modules/node-gyp/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dev": true, "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/node-gyp/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, "dependencies": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/node-gyp/node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.0" + "node": ">= 14" } }, "node_modules/node-gyp/node_modules/iconv-lite": { @@ -2120,6 +2009,15 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, "node_modules/node-gyp/node_modules/jackspeak": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", @@ -2139,38 +2037,34 @@ } }, "node_modules/node-gyp/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "dev": true, "engines": { - "node": ">=12" + "node": "14 || >=16.14" } }, "node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "dev": true, "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", "ssri": "^10.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/node-gyp/node_modules/minimatch": { @@ -2189,12 +2083,12 @@ } }, "node_modules/node-gyp/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/node-gyp/node_modules/minipass-collect": { @@ -2238,15 +2132,6 @@ "encoding": "^0.1.13" } }, - "node_modules/node-gyp/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/node-gyp/node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", @@ -2366,33 +2251,18 @@ } }, "node_modules/node-gyp/node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", "dev": true, "dependencies": { - "abbrev": "^1.0.0" + "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/node-gyp/node_modules/p-map": { @@ -2426,13 +2296,13 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "node_modules/node-gyp/node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", "dev": true, "engines": { - "node": "14 || >=16.14" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/node-gyp/node_modules/promise-retry": { @@ -2458,14 +2328,20 @@ } }, "node_modules/node-gyp/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/node-gyp/node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "engines": { @@ -2488,17 +2364,17 @@ } }, "node_modules/node-gyp/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dev": true, "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/node-gyp/node_modules/ssri": { @@ -2513,13 +2389,21 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/ssri/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "node_modules/node-gyp/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/node-gyp/node_modules/string-width-cjs": { @@ -2537,6 +2421,39 @@ "node": ">=8" } }, + "node_modules/node-gyp/node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/node-gyp/node_modules/string-width/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/node-gyp/node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/node-gyp/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", @@ -2591,6 +2508,15 @@ "node": ">=8" } }, + "node_modules/node-gyp/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/node-gyp/node_modules/unique-filename": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", @@ -2615,13 +2541,19 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/node-gyp/node_modules/wrap-ansi": { @@ -2659,6 +2591,20 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/node-gyp/node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/node-gyp/node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -2683,29 +2629,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/node-gyp/node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/node-gyp/node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-gyp/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -3043,6 +2966,102 @@ "node": "*" } }, + "node_modules/prebuild/node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "node_modules/prebuild/node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/prebuild/node_modules/@npmcli/fs/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild/node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/prebuild/node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild/node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/prebuild/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/prebuild/node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", @@ -3061,6 +3080,43 @@ "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", "dev": true }, + "node_modules/prebuild/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/prebuild/node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dev": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/prebuild/node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/prebuild/node_modules/ansi": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", @@ -3226,6 +3282,15 @@ "node": "0.4 || >=0.5.8" } }, + "node_modules/prebuild/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/prebuild/node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -3256,22 +3321,172 @@ "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==", "dev": true }, - "node_modules/prebuild/node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "node_modules/prebuild/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "node_modules/prebuild/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/prebuild/node_modules/cliui": { + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/prebuild/node_modules/cacache/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/prebuild/node_modules/cacache/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild/node_modules/cacache/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild/node_modules/cacache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/prebuild/node_modules/cacache/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/prebuild/node_modules/cacache/node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/prebuild/node_modules/cacache/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/prebuild/node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/prebuild/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild/node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/prebuild/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", @@ -3556,6 +3771,31 @@ "safer-buffer": "^2.1.0" } }, + "node_modules/prebuild/node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/prebuild/node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/prebuild/node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, "node_modules/prebuild/node_modules/es5-ext": { "version": "0.10.62", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", @@ -3610,6 +3850,12 @@ "node": ">=0.8.x" } }, + "node_modules/prebuild/node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, "node_modules/prebuild/node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", @@ -3703,6 +3949,30 @@ "node": ">=12" } }, + "node_modules/prebuild/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/prebuild/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/prebuild/node_modules/fstream": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", @@ -3831,6 +4101,26 @@ "node": ">=6" } }, + "node_modules/prebuild/node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/prebuild/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/prebuild/node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -3846,6 +4136,28 @@ "npm": ">=1.3.7" } }, + "node_modules/prebuild/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prebuild/node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/prebuild/node_modules/hyperquest": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/hyperquest/-/hyperquest-2.1.3.tgz", @@ -3857,12 +4169,52 @@ "through2": "~0.6.3" } }, + "node_modules/prebuild/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prebuild/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "node_modules/prebuild/node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, + "node_modules/prebuild/node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "node_modules/prebuild/node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, "node_modules/prebuild/node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -3968,7 +4320,55 @@ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, - "node_modules/prebuild/node_modules/memory-stream": { + "node_modules/prebuild/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/prebuild/node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/prebuild/node_modules/make-fetch-happen/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/memory-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/memory-stream/-/memory-stream-1.0.0.tgz", "integrity": "sha512-Wm13VcsPIMdG96dzILfij09PvuS3APtcKNh7M28FsCA/w6+1mjR7hhPmfFNoilX9xU7wTdhsH5lJAm6XNzdtww==", @@ -3992,82 +4392,351 @@ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "dependencies": { - "mime-db": "1.52.0" + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/prebuild/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/prebuild/node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/prebuild/node_modules/minipass-fetch/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/prebuild/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/prebuild/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/prebuild/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/prebuild/node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true + }, + "node_modules/prebuild/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/prebuild/node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/prebuild/node_modules/node-api-headers": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/node-api-headers/-/node-api-headers-0.0.2.tgz", + "integrity": "sha512-YsjmaKGPDkmhoNKIpkChtCsPVaRE0a274IdERKnuc/E8K1UJdBZ4/mvI006OijlQZHCfpRNOH3dfHQs92se8gg==", + "dev": true + }, + "node_modules/prebuild/node_modules/node-gyp": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/prebuild/node_modules/node-gyp/node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/prebuild/node_modules/node-gyp/node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/prebuild/node_modules/node-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=10" } }, - "node_modules/prebuild/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/prebuild/node_modules/node-gyp/node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/prebuild/node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/prebuild/node_modules/node-gyp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">= 8" + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/prebuild/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/prebuild/node_modules/node-gyp/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/prebuild/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/prebuild/node_modules/node-gyp/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/prebuild/node_modules/node-gyp/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "minimist": "^1.2.6" + "isexe": "^2.0.0" }, "bin": { - "mkdirp": "bin/cmd.js" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/prebuild/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/prebuild/node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true - }, - "node_modules/prebuild/node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/prebuild/node_modules/node-api-headers": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/node-api-headers/-/node-api-headers-0.0.2.tgz", - "integrity": "sha512-YsjmaKGPDkmhoNKIpkChtCsPVaRE0a274IdERKnuc/E8K1UJdBZ4/mvI006OijlQZHCfpRNOH3dfHQs92se8gg==", - "dev": true - }, "node_modules/prebuild/node_modules/node-ninja": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/node-ninja/-/node-ninja-1.0.2.tgz", @@ -4150,6 +4819,21 @@ "integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==", "dev": true }, + "node_modules/prebuild/node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/prebuild/node_modules/npm-path": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", @@ -4437,6 +5121,21 @@ "os-tmpdir": "^1.0.0" } }, + "node_modules/prebuild/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/prebuild/node_modules/path-array": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz", @@ -4467,6 +5166,25 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "node_modules/prebuild/node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/prebuild/node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/prebuild/node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -4541,6 +5259,15 @@ "node": ">= 6" } }, + "node_modules/prebuild/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/prebuild/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -4603,6 +5330,44 @@ "node >= 0.2.0" ] }, + "node_modules/prebuild/node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/prebuild/node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/prebuild/node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/prebuild/node_modules/sshpk": { "version": "1.18.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", @@ -4628,6 +5393,30 @@ "node": ">=0.10.0" } }, + "node_modules/prebuild/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/prebuild/node_modules/ssri/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/prebuild/node_modules/streamx": { "version": "2.15.1", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz", @@ -4690,30 +5479,6 @@ "streamx": "^2.15.0" } }, - "node_modules/prebuild/node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/prebuild/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/prebuild/node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4797,6 +5562,30 @@ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", "dev": true }, + "node_modules/prebuild/node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/prebuild/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/prebuild/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -4899,6 +5688,36 @@ "node": ">=12" } }, + "node_modules/prebuildify": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-5.0.1.tgz", + "integrity": "sha512-vXpKLfIEsDCqMJWVIoSrUUBJQIuAk9uHAkLiGJuTdXdqKSJ10sHmWeuNCDkIoRFTV1BDGYMghHVmDFP8NfkA2Q==", + "dev": true, + "dependencies": { + "execspawn": "^1.0.1", + "minimist": "^1.2.5", + "mkdirp-classic": "^0.5.3", + "node-abi": "^3.3.0", + "npm-run-path": "^3.1.0", + "pump": "^3.0.0", + "tar-fs": "^2.1.0" + }, + "bin": { + "prebuildify": "bin.js" + } + }, + "node_modules/prebuildify/node_modules/npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", diff --git a/package.json b/package.json index cb445144b..8d9dd669e 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "author": { "name": "Microsoft Corporation" }, - "version": "0.11.7", + "version": "0.11.8", "license": "MIT", "main": "./lib/index.js", "types": "./typings/node-pty.d.ts", @@ -18,7 +18,11 @@ "scripts/", "src/", "deps/", - "typings/" + "typings/", + "prebuilds/linux-x64", + "prebuilds/linux-ia32", + "prebuilds/linux-arm", + "prebuilds/linux-arm64" ], "homepage": "https://github.com/homebridge/node-pty-prebuilt-multiarch", "bugs": { @@ -36,7 +40,7 @@ "build": "tsc -b ./src/tsconfig.json", "watch": "tsc -b -w ./src/tsconfig.json", "lint": "eslint -c .eslintrc.js --ext .ts src/", - "install": "node scripts/check-prebuild.js || prebuild-install || node scripts/install.js", + "install": "node scripts/check-prebuild.js || prebuild-install --verbose || node scripts/install.js", "postinstall": "node scripts/post-install.js", "test": "cross-env NODE_ENV=test mocha -R spec --exit lib/*.test.js", "posttest": "npm run lint", @@ -56,7 +60,9 @@ "eslint": "^8.52.0", "mocha": "^10.2.0", "node-abi": "^3.51.0", + "node-gyp": "^10.0.0", "prebuild": "^12.1.0", + "prebuildify": "^5.0.1", "ps-list": "^7.2.0", "typescript": "^5.2.2" } diff --git a/src/index.ts b/src/index.ts index 53d0322e5..962eeed77 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,6 +6,8 @@ import { ITerminal, IPtyOpenOptions, IPtyForkOptions, IWindowsPtyForkOptions } from './interfaces'; import { ArgvOrCommandLine } from './types'; +import { ptyPath } from './prebuild-file-path'; + let terminalCtor: any; if (process.platform === 'win32') { @@ -48,4 +50,4 @@ export function open(options: IPtyOpenOptions): ITerminal { * Expose the native API when not Windows, note that this is not public API and * could be removed at any time. */ -export const native = (process.platform !== 'win32' ? require('../build/Release/pty.node') : null); + export const native = (process.platform !== 'win32' ? require(ptyPath || '../build/Release/pty.node') : null); diff --git a/src/prebuild-file-path.ts b/src/prebuild-file-path.ts index 587a626fb..5835bbb3a 100644 --- a/src/prebuild-file-path.ts +++ b/src/prebuild-file-path.ts @@ -18,4 +18,5 @@ function prebuildName(): string { const pathToBuild = path.resolve(__dirname, `../prebuilds/${os.platform()}-${os.arch()}/${prebuildName()}`); +console.log('prebuild-file-path:', pathToBuild); export const ptyPath: string | null = fs.existsSync(pathToBuild) ? pathToBuild : null; diff --git a/src/unixTerminal.ts b/src/unixTerminal.ts index ee47bb35d..d3ef695e6 100644 --- a/src/unixTerminal.ts +++ b/src/unixTerminal.ts @@ -10,6 +10,14 @@ import { IProcessEnv, IPtyForkOptions, IPtyOpenOptions } from './interfaces'; import { ArgvOrCommandLine } from './types'; import { assign } from './utils'; +import pty from './prebuild-loader'; +let helperPath: string; +helperPath = '../build/Release/spawn-helper'; + +/* + +https://github.com/NorthernMan54/node-pty-prebuilt-multiarch/commit/9b8a965aa741f8ca44855059ed74dadf7feb7279#diff-1031fbdc51b1e5ce18bb9755e26ba3944670d1f4972253569cebbffc77fd78b1 + let pty: IUnixNative; let helperPath: string; try { @@ -27,6 +35,7 @@ try { throw outerError; } } +*/ helperPath = path.resolve(__dirname, helperPath); helperPath = helperPath.replace('app.asar', 'app.asar.unpacked');