From 293e57e1b252d542921dab7e90ce24a3c717e508 Mon Sep 17 00:00:00 2001 From: Daniel Boll Date: Sat, 9 Nov 2024 17:28:22 -0300 Subject: [PATCH] Integrate migrate-to-pnpm changes as a single commit Signed-off-by: Daniel Boll --- .cargo/config.toml | 5 + .github/renovate.json | 20 + .github/workflows/CI.yml | 326 ++- .github/workflows/lint.yml | 42 + .gitignore | 123 +- .prettierignore | 8 + Cargo.toml | 5 +- README.md | 6 +- __test__/index.spec.ts | 8 + __test__/package.json | 3 + __test__/tsconfig.json | 10 + benchmark/bench.ts | 21 + benchmark/package.json | 3 + benchmark/tsconfig.json | 10 + browser.js | 1 + examples/auth.mts | 10 +- examples/basic.mts | 16 +- examples/batch-statements.mts | 11 +- examples/custom-types/bigint.mts | 4 +- examples/custom-types/double.mts | 9 +- examples/custom-types/floats.mts | 6 +- examples/custom-types/list.mts | 9 +- examples/custom-types/map.mts | 4 +- examples/custom-types/set.mts | 9 +- examples/custom-types/udt.mts | 13 +- examples/custom-types/uuid.mts | 4 +- examples/custom-types/varint.mts | 8 +- examples/fetch-schema.mts | 51 +- examples/lwt.mts | 6 +- examples/prepared.mts | 14 +- examples/tls.mts | 36 +- index.js | 5 +- npm/android-arm-eabi/README.md | 3 + npm/android-arm-eabi/package.json | 37 + npm/android-arm64/README.md | 3 + npm/android-arm64/package.json | 37 + npm/darwin-arm64/package.json | 16 +- npm/darwin-x64/package.json | 16 +- npm/freebsd-x64/README.md | 3 + npm/freebsd-x64/package.json | 35 + npm/linux-arm-gnueabihf/README.md | 3 + npm/linux-arm-gnueabihf/package.json | 37 + npm/linux-arm64-gnu/README.md | 3 + npm/linux-arm64-gnu/package.json | 40 + npm/linux-arm64-musl/README.md | 3 + npm/linux-arm64-musl/package.json | 40 + npm/linux-x64-gnu/package.json | 16 +- npm/linux-x64-musl/package.json | 16 +- npm/wasm32-wasi/README.md | 3 + npm/wasm32-wasi/package.json | 37 + npm/win32-arm64-msvc/README.md | 3 + npm/win32-arm64-msvc/package.json | 32 + npm/win32-ia32-msvc/README.md | 3 + npm/win32-ia32-msvc/package.json | 32 + npm/win32-x64-msvc/package.json | 29 +- package.json | 121 +- pnpm-lock.yaml | 3482 ++++++++++++++++++++++++++ scripts/fix-files.mjs | 15 +- simple-test.js | 5 + src/cluster/scylla_cluster.rs | 2 +- src/session/topology.rs | 2 +- src/types/tracing.rs | 2 +- tsconfig.json | 9 +- wasi-worker-browser.mjs | 32 + wasi-worker.mjs | 63 + 65 files changed, 4583 insertions(+), 403 deletions(-) create mode 100644 .cargo/config.toml create mode 100644 .github/renovate.json create mode 100644 .github/workflows/lint.yml create mode 100644 .prettierignore create mode 100644 __test__/index.spec.ts create mode 100644 __test__/package.json create mode 100644 __test__/tsconfig.json create mode 100644 benchmark/bench.ts create mode 100644 benchmark/package.json create mode 100644 benchmark/tsconfig.json create mode 100644 browser.js create mode 100644 npm/android-arm-eabi/README.md create mode 100644 npm/android-arm-eabi/package.json create mode 100644 npm/android-arm64/README.md create mode 100644 npm/android-arm64/package.json create mode 100644 npm/freebsd-x64/README.md create mode 100644 npm/freebsd-x64/package.json create mode 100644 npm/linux-arm-gnueabihf/README.md create mode 100644 npm/linux-arm-gnueabihf/package.json create mode 100644 npm/linux-arm64-gnu/README.md create mode 100644 npm/linux-arm64-gnu/package.json create mode 100644 npm/linux-arm64-musl/README.md create mode 100644 npm/linux-arm64-musl/package.json create mode 100644 npm/wasm32-wasi/README.md create mode 100644 npm/wasm32-wasi/package.json create mode 100644 npm/win32-arm64-msvc/README.md create mode 100644 npm/win32-arm64-msvc/package.json create mode 100644 npm/win32-ia32-msvc/README.md create mode 100644 npm/win32-ia32-msvc/package.json create mode 100644 pnpm-lock.yaml create mode 100644 simple-test.js create mode 100644 wasi-worker-browser.mjs create mode 100644 wasi-worker.mjs diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000..658b10e --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,5 @@ +[target.x86_64-pc-windows-msvc] +rustflags = ["-C", "target-feature=+crt-static"] + +[target.i686-pc-windows-msvc] +rustflags = ["-C", "target-feature=+crt-static"] \ No newline at end of file diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 0000000..cc26fc1 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": ["config:base", "group:allNonMajor", ":preserveSemverRanges", ":disablePeerDependencies"], + "labels": ["dependencies"], + "packageRules": [ + { + "matchPackageNames": ["@napi/cli", "napi", "napi-build", "napi-derive"], + "addLabels": ["napi-rs"], + "groupName": "napi-rs" + }, + { + "matchPackagePatterns": ["^eslint", "^@typescript-eslint"], + "groupName": "linter" + } + ], + "commitMessagePrefix": "chore: ", + "commitMessageAction": "bump up", + "commitMessageTopic": "{{depName}} version", + "ignoreDeps": [] +} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 22e6aed..40d9ada 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -2,7 +2,7 @@ name: CI env: DEBUG: napi:* APP_NAME: scylladb - # MACOSX_DEPLOYMENT_TARGET: "10.13" + MACOSX_DEPLOYMENT_TARGET: "10.13" CARGO_INCREMENTAL: "1" permissions: contents: write @@ -10,7 +10,7 @@ permissions: "on": push: branches: - - main + - migrate-to-pnpm tags-ignore: - "**" paths-ignore: @@ -19,7 +19,6 @@ permissions: - "**/*.gitignore" - .editorconfig - docs/** - workflow_dispatch: pull_request: null concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -31,15 +30,15 @@ jobs: should_publish: ${{ steps.check-commit.outputs.should_publish }} steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Check commit message for version id: check-commit run: | commit_msg=$(git log --format=%B -n 1) if [[ $commit_msg =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo "::set-output name=should_publish::true" + echo "should_publish=true" >> $GITHUB_OUTPUT else - echo "::set-output name=should_publish::false" + echo "should_publish=false" >> $GITHUB_OUTPUT fi build: if: needs.check-version-in-commit.outputs.should_publish == 'true' @@ -49,73 +48,61 @@ jobs: fail-fast: false matrix: settings: - # target: x86_64-apple-darwin - # build: yarn build --target x86_64-apple-darwin + - host: macos-latest + target: x86_64-apple-darwin + build: pnpm build --target x86_64-apple-darwin # - host: windows-latest - # build: yarn build --target x86_64-pc-windows-msvc + # build: pnpm build --target x86_64-pc-windows-msvc # target: x86_64-pc-windows-msvc # - host: windows-latest - # build: yarn build --target i686-pc-windows-msvc + # build: pnpm build --target i686-pc-windows-msvc # target: i686-pc-windows-msvc - host: ubuntu-latest target: x86_64-unknown-linux-gnu - build: yarn build --target x86_64-unknown-linux-gnu --use-napi-cross + build: pnpm build --target x86_64-unknown-linux-gnu --use-napi-cross - host: ubuntu-latest target: x86_64-unknown-linux-musl - build: yarn build --target x86_64-unknown-linux-musl -x - - # NOTE: https://github.com/Daniel-Boll/scylla-javascript-driver/actions/runs/11087794843/job/30806888759 something went wrong, gotta fix that later - # - host: macos-latest - # target: aarch64-apple-darwin - # build: yarn build --target aarch64-apple-darwin - - # - host: ubuntu-latest - # target: aarch64-unknown-linux-gnu - # build: yarn build --target aarch64-unknown-linux-gnu --use-napi-cross - # - host: ubuntu-latest - # target: armv7-unknown-linux-gnueabihf - # build: yarn build --target armv7-unknown-linux-gnueabihf --use-napi-cross - # - host: ubuntu-latest - # target: aarch64-linux-android - # build: yarn build --target aarch64-linux-android - # - host: ubuntu-latest - # target: armv7-linux-androideabi - # build: yarn build --target armv7-linux-androideabi - # - host: ubuntu-latest - # target: aarch64-unknown-linux-musl - # build: yarn build --target aarch64-unknown-linux-musl -x + build: pnpm build --target x86_64-unknown-linux-musl -x + - host: macos-latest + target: aarch64-apple-darwin + build: pnpm build --target aarch64-apple-darwin + - host: ubuntu-latest + target: aarch64-unknown-linux-gnu + build: pnpm build --target aarch64-unknown-linux-gnu --use-napi-cross + - host: ubuntu-latest + target: armv7-unknown-linux-gnueabihf + build: pnpm build --target armv7-unknown-linux-gnueabihf --use-napi-cross + - host: ubuntu-latest + target: aarch64-linux-android + build: pnpm build --target aarch64-linux-android + - host: ubuntu-latest + target: armv7-linux-androideabi + build: pnpm build --target armv7-linux-androideabi + - host: ubuntu-latest + target: aarch64-unknown-linux-musl + build: pnpm build --target aarch64-unknown-linux-musl -x # - host: windows-latest # target: aarch64-pc-windows-msvc - # build: yarn build --target aarch64-pc-windows-msvc + # build: pnpm build --target aarch64-pc-windows-msvc # - host: ubuntu-latest # target: wasm32-wasip1-threads - # build: yarn build --target wasm32-wasip1-threads + # build: pnpm build --target wasm32-wasip1-threads name: stable - ${{ matrix.settings.target }} - node@20 runs-on: ${{ matrix.settings.host }} - outputs: - OPENSSL_DIR: ${{ steps.install_openssl.outputs.OPENSSL_DIR }} - OPENSSL_STATIC: ${{ steps.install_openssl.outputs.OPENSSL_STATIC }} steps: - uses: actions/checkout@v4 + - name: setup pnpm + uses: pnpm/action-setup@v4 - name: Setup node uses: actions/setup-node@v4 - if: ${{ !matrix.settings.docker }} with: node-version: 20 - check-latest: true - cache: yarn + cache: pnpm - name: Install uses: dtolnay/rust-toolchain@stable - if: ${{ !matrix.settings.docker }} with: toolchain: stable targets: ${{ matrix.settings.target }} - - name: Set up MUSL target and tools - if: ${{ contains(matrix.settings.target, 'musl') }} - run: | - sudo apt-get update - sudo apt-get install -y musl-tools - rustup target add ${{ matrix.settings.target }} - name: Cache cargo uses: actions/cache@v4 with: @@ -143,66 +130,119 @@ jobs: if: ${{ matrix.settings.setup }} shell: bash - name: Install dependencies - run: yarn install + run: pnpm install - name: Setup node x86 uses: actions/setup-node@v4 if: matrix.settings.target == 'i686-pc-windows-msvc' with: node-version: 20 - check-latest: true - cache: yarn + cache: pnpm architecture: x86 - - name: Build in docker - uses: addnab/docker-run-action@v3 - if: ${{ matrix.settings.docker }} - with: - image: ${{ matrix.settings.docker }} - options: "--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build" - run: | - apt update - apt install -y pkg-config libssl-dev - ${{ matrix.settings.build }} - name: Build run: ${{ matrix.settings.build }} - if: ${{ !matrix.settings.docker }} shell: bash - name: Upload artifact uses: actions/upload-artifact@v4 + if: matrix.settings.target != 'wasm32-wasip1-threads' with: name: bindings-${{ matrix.settings.target }} - path: ${{ env.APP_NAME }}.*.node + path: "*.node" if-no-files-found: error - # test-macOS-windows-binding: - # name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} + + - name: Upload artifact + uses: actions/upload-artifact@v4 + if: matrix.settings.target == 'wasm32-wasip1-threads' + with: + name: bindings-${{ matrix.settings.target }} + path: "*.wasm" + if-no-files-found: error + + # build-freebsd: + # runs-on: ubuntu-latest + # name: Build FreeBSD # if: needs.check-version-in-commit.outputs.should_publish == 'true' # needs: # - check-version-in-commit + # steps: + # - uses: actions/checkout@v4 + # - name: Build + # id: build + # uses: cross-platform-actions/action@v0.25.0 + # env: + # DEBUG: napi:* + # RUSTUP_IO_THREADS: 1 + # with: + # operating_system: freebsd + # version: "14.1" + # memory: 8G + # cpu_count: 3 + # environment_variables: "DEBUG RUSTUP_IO_THREADS" + # shell: bash + # run: | + # sudo pkg install -y -f curl node libnghttp2 npm + # sudo npm install -g corepack + # curl https://sh.rustup.rs -sSf --output rustup.sh + # sh rustup.sh -y --profile minimal --default-toolchain beta + # corepack prepare + # corepack enable + # source "$HOME/.cargo/env" + # echo "~~~~ rustc --version ~~~~" + # rustc --version + # echo "~~~~ node -v ~~~~" + # node -v + # echo "~~~~ pnpm --version ~~~~" + # pnpm --version + # pwd + # ls -lah + # whoami + # env + # freebsd-version + # pnpm install + # pnpm build + # rm -rf node_modules + # rm -rf target + # - name: Upload artifact + # uses: actions/upload-artifact@v4 + # with: + # name: bindings-freebsd + # path: ${{ env.APP_NAME }}.*.node + # if-no-files-found: error + + # test-macOS-windows-binding: + # name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} + # needs: # - build # strategy: # fail-fast: false # matrix: # settings: + # - host: windows-latest + # target: x86_64-pc-windows-msvc + # architecture: x64 # - host: macos-latest # target: x86_64-apple-darwin - # # - host: windows-latest - # # target: x86_64-pc-windows-msvc + # architecture: x64 + # - host: macos-latest + # target: aarch64-apple-darwin + # architecture: arm64 # node: - # - "14" - # - "16" # - "18" + # - "20" # runs-on: ${{ matrix.settings.host }} # steps: - # - uses: actions/checkout@v3 + # - uses: actions/checkout@v4 + # - name: setup pnpm + # uses: pnpm/action-setup@v4 # - name: Setup node - # uses: actions/setup-node@v3 + # uses: actions/setup-node@v4 # with: # node-version: ${{ matrix.node }} - # check-latest: true - # cache: yarn + # cache: pnpm + # architecture: ${{ matrix.settings.architecture }} # - name: Install dependencies - # run: yarn install + # run: pnpm install # - name: Download artifacts - # uses: actions/download-artifact@v3 + # uses: actions/download-artifact@v4 # with: # name: bindings-${{ matrix.settings.target }} # path: . @@ -210,110 +250,142 @@ jobs: # run: ls -R . # shell: bash # - name: Test bindings - # run: yarn test - # test-linux-x64-gnu-binding: - # name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }} - # if: needs.check-version-in-commit.outputs.should_publish == 'true' + # run: pnpm test + # test-linux-binding: + # name: Test ${{ matrix.target }} - node@${{ matrix.node }} # needs: - # - check-version-in-commit # - build # strategy: # fail-fast: false # matrix: + # target: + # - x86_64-unknown-linux-gnu + # - x86_64-unknown-linux-musl + # - aarch64-unknown-linux-gnu + # - aarch64-unknown-linux-musl + # - armv7-unknown-linux-gnueabihf # node: - # - "14" - # - "16" # - "18" + # - "20" # runs-on: ubuntu-latest # steps: - # - uses: actions/checkout@v3 + # - uses: actions/checkout@v4 + # - name: setup pnpm + # uses: pnpm/action-setup@v4 # - name: Setup node - # uses: actions/setup-node@v3 + # uses: actions/setup-node@v4 # with: # node-version: ${{ matrix.node }} - # check-latest: true - # cache: yarn + # cache: pnpm + # - name: Output docker params + # id: docker + # run: | + # node -e " + # if ('${{ matrix.target }}'.startsWith('aarch64')) { + # console.log('PLATFORM=linux/arm64') + # } else if ('${{ matrix.target }}'.startsWith('armv7')) { + # console.log('PLATFORM=linux/arm/v7') + # } else { + # console.log('PLATFORM=linux/amd64') + # } + # " >> $GITHUB_OUTPUT + # node -e " + # if ('${{ matrix.target }}'.endsWith('-musl')) { + # console.log('IMAGE=node:${{ matrix.node }}-alpine') + # } else { + # console.log('IMAGE=node:${{ matrix.node }}-slim') + # } + # " >> $GITHUB_OUTPUT + # echo "PNPM_STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT + # # use --force to download the all platform/arch dependencies # - name: Install dependencies - # run: yarn install + # run: pnpm install --force # - name: Download artifacts - # uses: actions/download-artifact@v3 + # uses: actions/download-artifact@v4 # with: - # name: bindings-x86_64-unknown-linux-gnu + # name: bindings-${{ matrix.target }} # path: . # - name: List packages # run: ls -R . # shell: bash + # - name: Set up QEMU + # uses: docker/setup-qemu-action@v3 + # with: + # platforms: all + # - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # - name: Test bindings - # run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim yarn test - # universal-macOS: - # name: Build universal macOS binary + # uses: addnab/docker-run-action@v3 + # with: + # image: ${{ steps.docker.outputs.IMAGE }} + # options: -v ${{ steps.docker.outputs.PNPM_STORE_PATH }}:${{ steps.docker.outputs.PNPM_STORE_PATH }} -v ${{ github.workspace }}:${{ github.workspace }} -w ${{ github.workspace }} --platform ${{ steps.docker.outputs.PLATFORM }} + # run: npm run test + # test-wasi: + # name: Test WASI target # needs: # - build - # runs-on: macos-latest + # runs-on: ubuntu-latest # steps: - # - uses: actions/checkout@v3 + # - uses: actions/checkout@v4 + # - name: setup pnpm + # uses: pnpm/action-setup@v4 # - name: Setup node - # uses: actions/setup-node@v3 + # uses: actions/setup-node@v4 # with: - # node-version: 18 - # check-latest: true - # cache: yarn + # node-version: 20 + # cache: pnpm # - name: Install dependencies - # run: yarn install - # # - name: Download macOS x64 artifact - # # uses: actions/download-artifact@v3 - # # with: - # # name: bindings-x86_64-apple-darwin - # # path: artifacts - # - name: Download macOS arm64 artifact - # uses: actions/download-artifact@v3 - # with: - # name: bindings-aarch64-apple-darwin - # path: artifacts - # - name: Combine binaries - # run: yarn universal - # - name: Upload artifact - # uses: actions/upload-artifact@v4 + # run: pnpm install + # - name: Download artifacts + # uses: actions/download-artifact@v4 # with: - # name: bindings-universal-apple-darwin - # path: ${{ env.APP_NAME }}.*.node - # if-no-files-found: error + # name: bindings-wasm32-wasip1-threads + # path: . + # - name: List packages + # run: ls -R . + # shell: bash + # - name: Test bindings + # run: pnpm test + # env: + # NAPI_RS_FORCE_WASI: 1 publish: - if: needs.check-version-in-commit.outputs.should_publish == 'true' name: Publish runs-on: ubuntu-latest needs: - - check-version-in-commit - # - test-macOS-windows-binding - # - test-linux-x64-gnu-binding - build + # - build-freebsd + # - test-macOS-windows-binding + # - test-linux-binding + # - test-wasi steps: - uses: actions/checkout@v4 + - name: setup pnpm + uses: pnpm/action-setup@v4 - name: Setup node uses: actions/setup-node@v4 with: - node-version: 18 - check-latest: true - cache: yarn + node-version: 20 + cache: pnpm - name: Install dependencies - run: yarn install + run: pnpm install - name: Download all artifacts uses: actions/download-artifact@v4 with: path: artifacts + - name: create npm dirs + run: pnpm napi create-npm-dirs - name: Move artifacts - run: yarn artifacts + run: pnpm artifacts - name: List packages run: ls -R ./npm shell: bash - name: Publish run: | npm config set provenance true - if git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+$"; + if git log -1 --pretty=%B | grep "^v\?[0-9]\+\.[0-9]\+\.[0-9]\+$"; then echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc npm publish --access public - elif git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+"; + elif git log -1 --pretty=%B | grep "^v\?[0-9]\+\.[0-9]\+\.[0-9]\+"; then echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc npm publish --tag next --access public diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..3c58494 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,42 @@ +name: Lint + +on: + push: + branches: + - main + tags-ignore: + - "**" + pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: setup pnpm + uses: pnpm/action-setup@v4 + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: "pnpm" + + - name: Install + uses: dtolnay/rust-toolchain@stable + with: + components: clippy, rustfmt + + - name: Install dependencies + run: pnpm install + + - name: ESLint + run: pnpm lint + + - name: Cargo fmt + run: cargo fmt -- --check + + - name: Clippy + run: cargo clippy diff --git a/.gitignore b/.gitignore index 703ef7d..8b1911a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,21 @@ -# Created by https://www.toptal.com/developers/gitignore/api/node -# Edit at https://www.toptal.com/developers/gitignore?templates=node +### Created by https://www.gitignore.io +### Rust ### +# Generated by Cargo +# will have compiled files and executables +debug/ +target/ + +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock + +# These are backup files generated by rustfmt +**/*.rs.bk -.idea +# MSVC Windows builds of rustc generate these, which store debugging information +*.pdb +### Created by https://www.gitignore.io ### Node ### # Logs logs @@ -11,6 +24,7 @@ npm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* +.pnpm-debug.log* # Diagnostic reports (https://nodejs.org/api/report.html) report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json @@ -47,8 +61,8 @@ build/Release node_modules/ jspm_packages/ -# TypeScript v1 declaration files -typings/ +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ # TypeScript cache *.tsbuildinfo @@ -59,6 +73,9 @@ typings/ # Optional eslint cache .eslintcache +# Optional stylelint cache +.stylelintcache + # Microbundle cache .rpt2_cache/ .rts2_cache_cjs/ @@ -74,15 +91,20 @@ typings/ # Yarn Integrity file .yarn-integrity -# dotenv environment variables file +# dotenv environment variable files .env -.env.test +.env.development.local +.env.test.local +.env.production.local +.env.local # parcel-bundler cache (https://parceljs.org/) .cache +.parcel-cache # Next.js build output .next +out # Nuxt.js build / generate output .nuxt @@ -97,6 +119,13 @@ dist # vuepress build output .vuepress/dist +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + # Serverless directories .serverless/ @@ -112,18 +141,35 @@ dist # Stores VSCode versions used for testing VSCode extensions .vscode-test -# End of https://www.toptal.com/developers/gitignore/api/node +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* -# Created by https://www.toptal.com/developers/gitignore/api/macos -# Edit at https://www.toptal.com/developers/gitignore?templates=macos +*.node +*.wasm +scylladb.wasi* +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache +.stylelintcache + +# SvelteKit build / generate output +.svelte-kit + +### Created by https://www.gitignore.io ### macOS ### # General .DS_Store .AppleDouble .LSOverride -# Icon must end with two +# Icon must end with two \r Icon # Thumbnails @@ -148,58 +194,3 @@ Temporary Items ### macOS Patch ### # iCloud generated files *.icloud - -# End of https://www.toptal.com/developers/gitignore/api/macos - -# Created by https://www.toptal.com/developers/gitignore/api/windows -# Edit at https://www.toptal.com/developers/gitignore?templates=windows - -### Windows ### -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# End of https://www.toptal.com/developers/gitignore/api/windows - -#Added by cargo - -/target -Cargo.lock - -.pnp.* -.yarn/* -!.yarn/patches -!.yarn/plugins -!.yarn/releases -!.yarn/sdks -!.yarn/versions - -*.node - -base.mts -.vscode - -pack - -debug.mts diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..f0e933e --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +target +.yarn +/*.js +/*.mjs +/*.cjs +/index.js +index.d.ts +pnpm-lock.yaml \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 8167a8a..be8cad0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,13 +2,14 @@ authors = ["Daniel Boll "] edition = "2021" name = "scylladb-driver" -version = "0.0.0" +version = "0.1.0" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] crate-type = ["cdylib"] [dependencies] -# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix napi = { version = "2", default-features = false, features = [ "napi8", "async", diff --git a/README.md b/README.md index 2b10dd6..b408187 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
- + [![ScyllaDB Unnoficial Discord Server](https://img.shields.io/badge/ScyllaDB_Developers-Discord_Server-4C388C)](https://discord.gg/CzCT4cyRrr)
@@ -50,9 +50,7 @@ These instructions will get you a copy of the project up and running ๐Ÿƒ on you const session = await cluster.connect("system_schema"); - const result = await session - .execute("SELECT * FROM scylla_tables limit ?", [1]) - .catch(console.error); + const result = await session.execute("SELECT * FROM scylla_tables limit ?", [1]).catch(console.error); console.log(result); ``` diff --git a/__test__/index.spec.ts b/__test__/index.spec.ts new file mode 100644 index 0000000..d6602f7 --- /dev/null +++ b/__test__/index.spec.ts @@ -0,0 +1,8 @@ +import test from "ava"; + +import { plus100 } from "../index.js"; + +test("sync function from native code", (t) => { + const fixture = 42; + t.is(plus100(fixture), fixture + 100); +}); diff --git a/__test__/package.json b/__test__/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/__test__/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/__test__/tsconfig.json b/__test__/tsconfig.json new file mode 100644 index 0000000..659905b --- /dev/null +++ b/__test__/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "outDir": "lib" + }, + "include": ["."], + "exclude": ["lib"] +} diff --git a/benchmark/bench.ts b/benchmark/bench.ts new file mode 100644 index 0000000..c54302f --- /dev/null +++ b/benchmark/bench.ts @@ -0,0 +1,21 @@ +import { Bench } from "tinybench"; + +import { plus100 } from "../index.js"; + +function add(a: number) { + return a + 100; +} + +const bench = new Bench(); + +bench.add("Native a + 100", () => { + plus100(10); +}); + +bench.add("JavaScript a + 100", () => { + add(10); +}); + +await bench.run(); + +console.table(bench.table()); diff --git a/benchmark/package.json b/benchmark/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/benchmark/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/benchmark/tsconfig.json b/benchmark/tsconfig.json new file mode 100644 index 0000000..659905b --- /dev/null +++ b/benchmark/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "outDir": "lib" + }, + "include": ["."], + "exclude": ["lib"] +} diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3539780 --- /dev/null +++ b/browser.js @@ -0,0 +1 @@ +export * from '@lambda-group/scylladb-wasm32-wasi' diff --git a/examples/auth.mts b/examples/auth.mts index 229651a..43a65b2 100644 --- a/examples/auth.mts +++ b/examples/auth.mts @@ -1,4 +1,4 @@ -import { Cluster } from "../index.js" +import { Cluster } from "../index.js"; const nodes = process.env.CLUSTER_NODES?.split(",") ?? ["127.0.0.1:9042"]; @@ -6,13 +6,15 @@ const cluster = new Cluster({ nodes, auth: { username: "cassandra", - password: "cassandra" - } + password: "cassandra", + }, }); const session = await cluster.connect(); -await session.execute("CREATE KEYSPACE IF NOT EXISTS auth WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'replication_factor' : 1}"); +await session.execute( + "CREATE KEYSPACE IF NOT EXISTS auth WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'replication_factor' : 1}", +); await session.execute("DROP TABLE IF EXISTS auth.auth"); console.log("Ok."); diff --git a/examples/basic.mts b/examples/basic.mts index cd99a31..0589cce 100644 --- a/examples/basic.mts +++ b/examples/basic.mts @@ -12,20 +12,12 @@ await session.execute( ); await session.useKeyspace("basic"); -await session.execute( - "CREATE TABLE IF NOT EXISTS basic (a int, b int, c text, primary key (a, b))", -); +await session.execute("CREATE TABLE IF NOT EXISTS basic (a int, b int, c text, primary key (a, b))"); await session.execute("INSERT INTO basic (a, b, c) VALUES (1, 2, 'abc')"); -await session.execute("INSERT INTO basic (a, b, c) VALUES (?, ?, ?)", [ - 3, - 4, - "def", -]); - -const prepared = await session.prepare( - "INSERT INTO basic (a, b, c) VALUES (?, 7, ?)", -); +await session.execute("INSERT INTO basic (a, b, c) VALUES (?, ?, ?)", [3, 4, "def"]); + +const prepared = await session.prepare("INSERT INTO basic (a, b, c) VALUES (?, 7, ?)"); await session.execute(prepared, [42, "I'm prepared!"]); await session.execute(prepared, [43, "I'm prepared 2!"]); await session.execute(prepared, [44, "I'm prepared 3!"]); diff --git a/examples/batch-statements.mts b/examples/batch-statements.mts index f4861ba..7fe893c 100644 --- a/examples/batch-statements.mts +++ b/examples/batch-statements.mts @@ -1,4 +1,4 @@ -import { Cluster, BatchStatement, Query, Uuid } from "../index.js" +import { Cluster, BatchStatement, Query, Uuid } from "../index.js"; const nodes = process.env.CLUSTER_NODES?.split(",") ?? ["127.0.0.1:9042"]; @@ -7,7 +7,9 @@ const session = await cluster.connect(); const batch = new BatchStatement(); -await session.execute("CREATE KEYSPACE IF NOT EXISTS batch_statements WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }"); +await session.execute( + "CREATE KEYSPACE IF NOT EXISTS batch_statements WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }", +); await session.useKeyspace("batch_statements"); await session.execute("CREATE TABLE IF NOT EXISTS users (id UUID PRIMARY KEY, name TEXT)"); @@ -17,6 +19,9 @@ const preparedStatement = await session.prepare("INSERT INTO users (id, name) VA batch.appendStatement(simpleStatement); batch.appendStatement(preparedStatement); -await session.batch(batch, [[Uuid.randomV4(), "Alice"], [Uuid.randomV4(), "Bob"]]); +await session.batch(batch, [ + [Uuid.randomV4(), "Alice"], + [Uuid.randomV4(), "Bob"], +]); console.log(await session.execute("SELECT * FROM users")); diff --git a/examples/custom-types/bigint.mts b/examples/custom-types/bigint.mts index ddf6ffa..ca31353 100644 --- a/examples/custom-types/bigint.mts +++ b/examples/custom-types/bigint.mts @@ -12,9 +12,7 @@ await session.execute( ); await session.useKeyspace("bigints"); -await session.execute( - "CREATE TABLE IF NOT EXISTS bigints (a bigint, primary key (a))", -); +await session.execute("CREATE TABLE IF NOT EXISTS bigints (a bigint, primary key (a))"); await session.execute("INSERT INTO bigints (a) VALUES (?)", [1238773128n]); diff --git a/examples/custom-types/double.mts b/examples/custom-types/double.mts index 111c793..1e45678 100644 --- a/examples/custom-types/double.mts +++ b/examples/custom-types/double.mts @@ -12,13 +12,10 @@ await session.execute( ); await session.useKeyspace("double"); -await session.execute( - "CREATE TABLE IF NOT EXISTS double (a double, primary key (a))", -); +await session.execute("CREATE TABLE IF NOT EXISTS double (a double, primary key (a))"); const input = new Double(1.1127830921); -const _ = await session.execute("INSERT INTO double (a) VALUES (?)", [input]); -console.log(_); +await session.execute("INSERT INTO double (a) VALUES (?)", [input]); const results = await session.execute("SELECT a FROM double"); -console.log(`${input} -> ${results[0].a}`); +console.log(results); diff --git a/examples/custom-types/floats.mts b/examples/custom-types/floats.mts index c647d8f..2b38f37 100644 --- a/examples/custom-types/floats.mts +++ b/examples/custom-types/floats.mts @@ -12,12 +12,10 @@ await session.execute( ); await session.useKeyspace("floats"); -await session.execute( - "CREATE TABLE IF NOT EXISTS floats (a float, primary key (a))", -); +await session.execute("CREATE TABLE IF NOT EXISTS floats (a float, primary key (a))"); const input = new Float(1.1127830921); await session.execute("INSERT INTO floats (a) VALUES (?)", [input]); const results = await session.execute("SELECT a FROM floats"); -console.log(`${input} -> ${results[0].a}`); +console.log(results); diff --git a/examples/custom-types/list.mts b/examples/custom-types/list.mts index 8cd9606..c669ca2 100644 --- a/examples/custom-types/list.mts +++ b/examples/custom-types/list.mts @@ -12,15 +12,10 @@ await session.execute( ); await session.useKeyspace("lists"); -await session.execute( - "CREATE TABLE IF NOT EXISTS lists (a uuid, b list, primary key (a))", -); +await session.execute("CREATE TABLE IF NOT EXISTS lists (a uuid, b list, primary key (a))"); // NOTE: driver is not throwing errors if the return of the function is not used. -await session.execute("INSERT INTO lists (a, b) VALUES (?, ?)", [ - Uuid.randomV4(), - new List([1, 2, 3]), -]); +await session.execute("INSERT INTO lists (a, b) VALUES (?, ?)", [Uuid.randomV4(), new List([1, 2, 3])]); const results = await session.execute("SELECT * FROM lists"); console.log(results); diff --git a/examples/custom-types/map.mts b/examples/custom-types/map.mts index 828cbb6..d7b1a73 100644 --- a/examples/custom-types/map.mts +++ b/examples/custom-types/map.mts @@ -12,9 +12,7 @@ await session.execute( ); await session.useKeyspace("maps"); -await session.execute( - "CREATE TABLE IF NOT EXISTS maps (a uuid, b map, primary key (a))", -); +await session.execute("CREATE TABLE IF NOT EXISTS maps (a uuid, b map, primary key (a))"); await session.execute("INSERT INTO maps (a, b) VALUES (?, ?)", [ Uuid.randomV4(), diff --git a/examples/custom-types/set.mts b/examples/custom-types/set.mts index 58943d6..1f82185 100644 --- a/examples/custom-types/set.mts +++ b/examples/custom-types/set.mts @@ -12,14 +12,9 @@ await session.execute( ); await session.useKeyspace("sets"); -await session.execute( - "CREATE TABLE IF NOT EXISTS sets (a uuid, b set, primary key (a))", -); +await session.execute("CREATE TABLE IF NOT EXISTS sets (a uuid, b set, primary key (a))"); -await session.execute("INSERT INTO sets (a, b) VALUES (?, ?)", [ - Uuid.randomV4(), - new Set([1, 2, 3, 1]), -]); +await session.execute("INSERT INTO sets (a, b) VALUES (?, ?)", [Uuid.randomV4(), new Set([1, 2, 3, 1])]); const results = await session.execute("SELECT * FROM sets"); console.log(results); diff --git a/examples/custom-types/udt.mts b/examples/custom-types/udt.mts index 4d4af51..8e4b492 100644 --- a/examples/custom-types/udt.mts +++ b/examples/custom-types/udt.mts @@ -12,12 +12,8 @@ await session.execute( ); await session.useKeyspace("udt"); -await session.execute( - "CREATE TYPE IF NOT EXISTS address (street text, neighbor text)", -); -await session.execute( - "CREATE TABLE IF NOT EXISTS user (name text, address address, primary key (name))", -); +await session.execute("CREATE TYPE IF NOT EXISTS address (street text, neighbor text)"); +await session.execute("CREATE TABLE IF NOT EXISTS user (name text, address address, primary key (name))"); interface User { name: string; @@ -35,10 +31,7 @@ const user: User = { }, }; -await session.execute("INSERT INTO user (name, address) VALUES (?, ?)", [ - user.name, - user.address, -]); +await session.execute("INSERT INTO user (name, address) VALUES (?, ?)", [user.name, user.address]); const users = (await session.execute("SELECT * FROM user")) as User[]; console.log(users); diff --git a/examples/custom-types/uuid.mts b/examples/custom-types/uuid.mts index c4d4ab4..0729a10 100644 --- a/examples/custom-types/uuid.mts +++ b/examples/custom-types/uuid.mts @@ -12,9 +12,7 @@ await session.execute( ); await session.useKeyspace("uuids"); -await session.execute( - "CREATE TABLE IF NOT EXISTS uuids (a uuid, primary key (a))", -); +await session.execute("CREATE TABLE IF NOT EXISTS uuids (a uuid, primary key (a))"); await session.execute("INSERT INTO uuids (a) VALUES (?)", [Uuid.randomV4()]); diff --git a/examples/custom-types/varint.mts b/examples/custom-types/varint.mts index 960866d..9389927 100644 --- a/examples/custom-types/varint.mts +++ b/examples/custom-types/varint.mts @@ -12,13 +12,9 @@ await session.execute( ); await session.useKeyspace("varints"); -await session.execute( - "CREATE TABLE IF NOT EXISTS varints (a varint, primary key (a))", -); +await session.execute("CREATE TABLE IF NOT EXISTS varints (a varint, primary key (a))"); -await session.execute("INSERT INTO varints (a) VALUES (?)", [ - new Varint([0x00, 0x01, 0x02]), -]); +await session.execute("INSERT INTO varints (a) VALUES (?)", [new Varint([0x00, 0x01, 0x02])]); const results = await session.execute("SELECT a FROM varints"); console.log(results); diff --git a/examples/fetch-schema.mts b/examples/fetch-schema.mts index e8bc026..4f8890f 100644 --- a/examples/fetch-schema.mts +++ b/examples/fetch-schema.mts @@ -14,40 +14,27 @@ if (!keyspaceInfo) throw new Error("No data found"); console.log("ALL KEYSPACES"); for (const keyspaceName in keyspaceInfo) { - console.log("========================================================"); - const keyspaceData = keyspaceInfo[keyspaceName]; - console.log("Keyspace: ", keyspaceName); - console.log( - "replication strategy: ", - keyspaceData.strategy.kind, - keyspaceData.strategy.data, - ); - for (const tableName in keyspaceData.tables) { - console.log("-----------------------"); - const tableData = keyspaceData.tables[tableName]; - console.log("Table: ", tableName); - console.log("partitionKey: ", tableData.partitionKey); - console.log("clusteringKey: ", tableData.clusteringKey); - console.log("columns: ", tableData.columns); - console.log("-----------------------"); - } - console.log("========================================================"); + console.log("========================================================"); + const keyspaceData = keyspaceInfo[keyspaceName]; + console.log("Keyspace: ", keyspaceName); + console.log("replication strategy: ", keyspaceData.strategy.kind, keyspaceData.strategy.data); + for (const tableName in keyspaceData.tables) { + console.log("-----------------------"); + const tableData = keyspaceData.tables[tableName]; + console.log("Table: ", tableName); + console.log("partitionKey: ", tableData.partitionKey); + console.log("clusteringKey: ", tableData.clusteringKey); + console.log("columns: ", tableData.columns); + console.log("-----------------------"); + } + console.log("========================================================"); } console.log("================== SPECIFIC KEYSPACES =================="); +console.log("keyspace: system_auth | strategy: ", keyspaceInfo.system_auth.strategy); +console.log("keyspace: system_traces | strategy: ", keyspaceInfo.system_traces.strategy); console.log( - "keyspace: system_auth | strategy: ", - keyspaceInfo.system_auth.strategy, -); -console.log( - "keyspace: system_traces | strategy: ", - keyspaceInfo.system_traces.strategy, -); -console.log( - "keyspace: system_distributed_everywhere | strategy: ", - keyspaceInfo.system_distributed_everywhere.strategy, -); -console.log( - "keyspace: system_distributed | strategy: ", - keyspaceInfo.system_distributed.strategy, + "keyspace: system_distributed_everywhere | strategy: ", + keyspaceInfo.system_distributed_everywhere.strategy, ); +console.log("keyspace: system_distributed | strategy: ", keyspaceInfo.system_distributed.strategy); diff --git a/examples/lwt.mts b/examples/lwt.mts index a2929a7..63aa208 100644 --- a/examples/lwt.mts +++ b/examples/lwt.mts @@ -1,4 +1,4 @@ -import { Cluster, Consistency, Query, SerialConsistency } from "../index.js" +import { Cluster, Consistency, Query, SerialConsistency } from "../index.js"; const nodes = process.env.CLUSTER_NODES?.split(",") ?? ["127.0.0.1:9042"]; @@ -6,7 +6,9 @@ const cluster = new Cluster({ nodes }); const session = await cluster.connect(); -await session.execute("CREATE KEYSPACE IF NOT EXISTS lwt WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'replication_factor' : 1}"); +await session.execute( + "CREATE KEYSPACE IF NOT EXISTS lwt WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'replication_factor' : 1}", +); await session.execute("CREATE TABLE IF NOT EXISTS lwt.tab (a int PRIMARY KEY)"); const query = new Query("INSERT INTO lwt.tab (a) VALUES(?) IF NOT EXISTS"); diff --git a/examples/prepared.mts b/examples/prepared.mts index 4a74084..cf2cf41 100644 --- a/examples/prepared.mts +++ b/examples/prepared.mts @@ -12,22 +12,14 @@ await session.execute( ); await session.useKeyspace("prepared"); -await session.execute( - "CREATE TABLE IF NOT EXISTS prepared (a int, b int, c text, primary key (a, b))", -); +await session.execute("CREATE TABLE IF NOT EXISTS prepared (a int, b int, c text, primary key (a, b))"); -const prepared = await session.prepare( - "INSERT INTO basic (a, b, c) VALUES (?, 7, ?)", -); +const prepared = await session.prepare("INSERT INTO basic (a, b, c) VALUES (?, 7, ?)"); await session.execute(prepared, [42, "I'm prepared!"]); await session.execute(prepared, [43, "I'm prepared 2!"]); await session.execute(prepared, [44, "I'm prepared 3!"]); -await session.execute( - "INSERT INTO basic (a, b, c) VALUES (?, 7, ?)", - [45, "I'm also prepared"], - { prepare: true }, -); +await session.execute("INSERT INTO basic (a, b, c) VALUES (?, 7, ?)", [45, "I'm also prepared"], { prepare: true }); const metrics = session.metrics(); console.log(`Queries requested: ${metrics.getQueriesNum()}`); diff --git a/examples/tls.mts b/examples/tls.mts index 27eb6dc..7cfb235 100644 --- a/examples/tls.mts +++ b/examples/tls.mts @@ -1,33 +1,35 @@ -import {Cluster, VerifyMode} from "../index.js" +import { Cluster, VerifyMode } from "../index.js"; const nodes = process.env.CLUSTER_NODES?.split(",") ?? ["localhost:9142"]; console.log(`Connecting to ${nodes}`); const cluster = new Cluster({ - nodes, - ssl: { - enabled: true, - truststoreFilepath: "/your/path/to/certificates/client_cert.pem", - privateKeyFilepath: "/your/path/to/certificates/client_key.pem", - caFilepath: "/your/path/to/certificates/client_truststore.pem", - verifyMode: VerifyMode.Peer, - } + nodes, + ssl: { + enabled: true, + truststoreFilepath: "/your/path/to/certificates/client_cert.pem", + privateKeyFilepath: "/your/path/to/certificates/client_key.pem", + caFilepath: "/your/path/to/certificates/client_truststore.pem", + verifyMode: VerifyMode.Peer, + }, }); const session = await cluster.connect(); interface ConnectedClient { - address: String, - port: number, - username: String, - driver_name: String, - driver_version: String, + address: String; + port: number; + username: String; + driver_name: String; + driver_version: String; } // @ts-ignore -let result = await session.execute("SELECT address, port, username, driver_name, driver_version FROM system.clients"); +let result = await session.execute( + "SELECT address, port, username, driver_name, driver_version FROM system.clients", +); -console.log(result) +console.log(result); // [ // { // address: '127.0.0.1', @@ -37,5 +39,3 @@ console.log(result) // username: 'developer' // } // ] - - diff --git a/index.js b/index.js index 52941ea..6541696 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,12 @@ // prettier-ignore /* eslint-disable */ +// @ts-nocheck /* auto-generated by NAPI-RS */ -const { readFileSync } = require('fs') +const { createRequire } = require('node:module') +require = createRequire(__filename) +const { readFileSync } = require('node:fs') let nativeBinding = null const loadErrors = [] diff --git a/npm/android-arm-eabi/README.md b/npm/android-arm-eabi/README.md new file mode 100644 index 0000000..2685f7e --- /dev/null +++ b/npm/android-arm-eabi/README.md @@ -0,0 +1,3 @@ +# `@lambda-group/scylladb-android-arm-eabi` + +This is the **armv7-linux-androideabi** binary for `@lambda-group/scylladb` diff --git a/npm/android-arm-eabi/package.json b/npm/android-arm-eabi/package.json new file mode 100644 index 0000000..a362391 --- /dev/null +++ b/npm/android-arm-eabi/package.json @@ -0,0 +1,37 @@ +{ + "name": "@lambda-group/scylladb-android-arm-eabi", + "version": "0.7.0", + "cpu": [ + "arm" + ], + "main": "scylladb.android-arm-eabi.node", + "files": [ + "scylladb.android-arm-eabi.node" + ], + "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "author": { + "name": "Daniel Boll", + "email": "danielboll.dev@proton.me", + "url": "https://daniel-boll.me" + }, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", + "os": [ + "android" + ] +} diff --git a/npm/android-arm64/README.md b/npm/android-arm64/README.md new file mode 100644 index 0000000..e322357 --- /dev/null +++ b/npm/android-arm64/README.md @@ -0,0 +1,3 @@ +# `@lambda-group/scylladb-android-arm64` + +This is the **aarch64-linux-android** binary for `@lambda-group/scylladb` diff --git a/npm/android-arm64/package.json b/npm/android-arm64/package.json new file mode 100644 index 0000000..13dccfb --- /dev/null +++ b/npm/android-arm64/package.json @@ -0,0 +1,37 @@ +{ + "name": "@lambda-group/scylladb-android-arm64", + "version": "0.7.0", + "cpu": [ + "arm64" + ], + "main": "scylladb.android-arm64.node", + "files": [ + "scylladb.android-arm64.node" + ], + "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "author": { + "name": "Daniel Boll", + "email": "danielboll.dev@proton.me", + "url": "https://daniel-boll.me" + }, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", + "os": [ + "android" + ] +} diff --git a/npm/darwin-arm64/package.json b/npm/darwin-arm64/package.json index 7ec2732..1f2dd42 100644 --- a/npm/darwin-arm64/package.json +++ b/npm/darwin-arm64/package.json @@ -9,6 +9,14 @@ "scylladb.darwin-arm64.node" ], "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], "author": { "name": "Daniel Boll", "email": "danielboll.dev@proton.me", @@ -16,10 +24,14 @@ }, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" }, "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", "os": [ "darwin" ] -} \ No newline at end of file +} diff --git a/npm/darwin-x64/package.json b/npm/darwin-x64/package.json index 9c5bcca..1671914 100644 --- a/npm/darwin-x64/package.json +++ b/npm/darwin-x64/package.json @@ -9,6 +9,14 @@ "scylladb.darwin-x64.node" ], "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], "author": { "name": "Daniel Boll", "email": "danielboll.dev@proton.me", @@ -16,10 +24,14 @@ }, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" }, "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", "os": [ "darwin" ] -} \ No newline at end of file +} diff --git a/npm/freebsd-x64/README.md b/npm/freebsd-x64/README.md new file mode 100644 index 0000000..b13d405 --- /dev/null +++ b/npm/freebsd-x64/README.md @@ -0,0 +1,3 @@ +# `@lambda-group/scylladb-freebsd-x64` + +This is the **x86_64-unknown-freebsd** binary for `@lambda-group/scylladb` diff --git a/npm/freebsd-x64/package.json b/npm/freebsd-x64/package.json new file mode 100644 index 0000000..c16cd75 --- /dev/null +++ b/npm/freebsd-x64/package.json @@ -0,0 +1,35 @@ +{ + "name": "@lambda-group/scylladb-freebsd-x64", + "version": "0.7.0", + "cpu": [ + "x64" + ], + "main": "scylladb.freebsd-x64.node", + "files": [ + "scylladb.freebsd-x64.node" + ], + "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": { + "url": "git+ssh://git@github.com/napi-rs/scylladb-pnpm.git", + "type": "git" + }, + "os": [ + "freebsd" + ] +} diff --git a/npm/linux-arm-gnueabihf/README.md b/npm/linux-arm-gnueabihf/README.md new file mode 100644 index 0000000..3b01d5e --- /dev/null +++ b/npm/linux-arm-gnueabihf/README.md @@ -0,0 +1,3 @@ +# `@lambda-group/scylladb-linux-arm-gnueabihf` + +This is the **armv7-unknown-linux-gnueabihf** binary for `@lambda-group/scylladb` diff --git a/npm/linux-arm-gnueabihf/package.json b/npm/linux-arm-gnueabihf/package.json new file mode 100644 index 0000000..3761aa3 --- /dev/null +++ b/npm/linux-arm-gnueabihf/package.json @@ -0,0 +1,37 @@ +{ + "name": "@lambda-group/scylladb-linux-arm-gnueabihf", + "version": "0.7.0", + "cpu": [ + "arm" + ], + "main": "scylladb.linux-arm-gnueabihf.node", + "files": [ + "scylladb.linux-arm-gnueabihf.node" + ], + "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "author": { + "name": "Daniel Boll", + "email": "danielboll.dev@proton.me", + "url": "https://daniel-boll.me" + }, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", + "os": [ + "linux" + ] +} diff --git a/npm/linux-arm64-gnu/README.md b/npm/linux-arm64-gnu/README.md new file mode 100644 index 0000000..343284a --- /dev/null +++ b/npm/linux-arm64-gnu/README.md @@ -0,0 +1,3 @@ +# `@lambda-group/scylladb-linux-arm64-gnu` + +This is the **aarch64-unknown-linux-gnu** binary for `@lambda-group/scylladb` diff --git a/npm/linux-arm64-gnu/package.json b/npm/linux-arm64-gnu/package.json new file mode 100644 index 0000000..99017e0 --- /dev/null +++ b/npm/linux-arm64-gnu/package.json @@ -0,0 +1,40 @@ +{ + "name": "@lambda-group/scylladb-linux-arm64-gnu", + "version": "0.7.0", + "cpu": [ + "arm64" + ], + "main": "scylladb.linux-arm64-gnu.node", + "files": [ + "scylladb.linux-arm64-gnu.node" + ], + "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "author": { + "name": "Daniel Boll", + "email": "danielboll.dev@proton.me", + "url": "https://daniel-boll.me" + }, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", + "os": [ + "linux" + ], + "libc": [ + "glibc" + ] +} diff --git a/npm/linux-arm64-musl/README.md b/npm/linux-arm64-musl/README.md new file mode 100644 index 0000000..3ffe2a7 --- /dev/null +++ b/npm/linux-arm64-musl/README.md @@ -0,0 +1,3 @@ +# `@lambda-group/scylladb-linux-arm64-musl` + +This is the **aarch64-unknown-linux-musl** binary for `@lambda-group/scylladb` diff --git a/npm/linux-arm64-musl/package.json b/npm/linux-arm64-musl/package.json new file mode 100644 index 0000000..4d4322c --- /dev/null +++ b/npm/linux-arm64-musl/package.json @@ -0,0 +1,40 @@ +{ + "name": "@lambda-group/scylladb-linux-arm64-musl", + "version": "0.7.0", + "cpu": [ + "arm64" + ], + "main": "scylladb.linux-arm64-musl.node", + "files": [ + "scylladb.linux-arm64-musl.node" + ], + "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "author": { + "name": "Daniel Boll", + "email": "danielboll.dev@proton.me", + "url": "https://daniel-boll.me" + }, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", + "os": [ + "linux" + ], + "libc": [ + "musl" + ] +} diff --git a/npm/linux-x64-gnu/package.json b/npm/linux-x64-gnu/package.json index fab1efc..2d30399 100644 --- a/npm/linux-x64-gnu/package.json +++ b/npm/linux-x64-gnu/package.json @@ -9,6 +9,14 @@ "scylladb.linux-x64-gnu.node" ], "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], "author": { "name": "Daniel Boll", "email": "danielboll.dev@proton.me", @@ -16,7 +24,11 @@ }, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" }, "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", "os": [ @@ -25,4 +37,4 @@ "libc": [ "glibc" ] -} \ No newline at end of file +} diff --git a/npm/linux-x64-musl/package.json b/npm/linux-x64-musl/package.json index 6b5dd07..db7e166 100644 --- a/npm/linux-x64-musl/package.json +++ b/npm/linux-x64-musl/package.json @@ -9,6 +9,14 @@ "scylladb.linux-x64-musl.node" ], "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], "author": { "name": "Daniel Boll", "email": "danielboll.dev@proton.me", @@ -16,7 +24,11 @@ }, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" }, "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", "os": [ @@ -25,4 +37,4 @@ "libc": [ "musl" ] -} \ No newline at end of file +} diff --git a/npm/wasm32-wasi/README.md b/npm/wasm32-wasi/README.md new file mode 100644 index 0000000..9d9abf1 --- /dev/null +++ b/npm/wasm32-wasi/README.md @@ -0,0 +1,3 @@ +# `@lambda-group/scylladb-wasm32-wasi` + +This is the **wasm32-wasi-preview1-threads** binary for `@lambda-group/scylladb` diff --git a/npm/wasm32-wasi/package.json b/npm/wasm32-wasi/package.json new file mode 100644 index 0000000..998f4f1 --- /dev/null +++ b/npm/wasm32-wasi/package.json @@ -0,0 +1,37 @@ +{ + "name": "@lambda-group/scylladb-wasm32-wasi", + "version": "0.7.0", + "cpu": [ + "wasm32" + ], + "main": "scylladb.wasi.cjs", + "files": [ + "scylladb.wasm32-wasi.wasm", + "scylladb.wasi.cjs", + "scylladb.wasi-browser.js", + "wasi-worker.mjs", + "wasi-worker-browser.mjs" + ], + "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", + "browser": "scylladb.wasi-browser.js", + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.5" + } +} diff --git a/npm/win32-arm64-msvc/README.md b/npm/win32-arm64-msvc/README.md new file mode 100644 index 0000000..3b83889 --- /dev/null +++ b/npm/win32-arm64-msvc/README.md @@ -0,0 +1,3 @@ +# `@lambda-group/scylladb-win32-arm64-msvc` + +This is the **aarch64-pc-windows-msvc** binary for `@lambda-group/scylladb` diff --git a/npm/win32-arm64-msvc/package.json b/npm/win32-arm64-msvc/package.json new file mode 100644 index 0000000..7a6c355 --- /dev/null +++ b/npm/win32-arm64-msvc/package.json @@ -0,0 +1,32 @@ +{ + "name": "@lambda-group/scylladb-win32-arm64-msvc", + "version": "0.7.0", + "cpu": [ + "arm64" + ], + "main": "scylladb.win32-arm64-msvc.node", + "files": [ + "scylladb.win32-arm64-msvc.node" + ], + "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", + "os": [ + "win32" + ] +} diff --git a/npm/win32-ia32-msvc/README.md b/npm/win32-ia32-msvc/README.md new file mode 100644 index 0000000..7b460b5 --- /dev/null +++ b/npm/win32-ia32-msvc/README.md @@ -0,0 +1,3 @@ +# `@lambda-group/scylladb-win32-ia32-msvc` + +This is the **i686-pc-windows-msvc** binary for `@lambda-group/scylladb` diff --git a/npm/win32-ia32-msvc/package.json b/npm/win32-ia32-msvc/package.json new file mode 100644 index 0000000..16e7339 --- /dev/null +++ b/npm/win32-ia32-msvc/package.json @@ -0,0 +1,32 @@ +{ + "name": "@lambda-group/scylladb-win32-ia32-msvc", + "version": "0.7.0", + "cpu": [ + "ia32" + ], + "main": "scylladb.win32-ia32-msvc.node", + "files": [ + "scylladb.win32-ia32-msvc.node" + ], + "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", + "os": [ + "win32" + ] +} diff --git a/npm/win32-x64-msvc/package.json b/npm/win32-x64-msvc/package.json index 8a152e6..6f0a4db 100644 --- a/npm/win32-x64-msvc/package.json +++ b/npm/win32-x64-msvc/package.json @@ -1,9 +1,6 @@ { "name": "@lambda-group/scylladb-win32-x64-msvc", - "version": "0.6.4", - "os": [ - "win32" - ], + "version": "0.7.0", "cpu": [ "x64" ], @@ -12,14 +9,24 @@ "scylladb.win32-x64-msvc.node" ], "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", - "author": { - "name": "Daniel Boll", - "email": "danielboll.dev@proton.me", - "url": "https://daniel-boll.me" - }, + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], "license": "MIT", "engines": { "node": ">= 10" }, - "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver" -} \ No newline at end of file + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", + "os": [ + "win32" + ] +} diff --git a/package.json b/package.json index 92c9359..8dd4b4d 100644 --- a/package.json +++ b/package.json @@ -1,59 +1,118 @@ { "name": "@lambda-group/scylladb", "version": "0.7.0", - "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", "description": "๐Ÿš€ JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. ๐Ÿงช๐Ÿ”ง", + "main": "index.js", + "types": "index.d.ts", + "browser": "browser.js", + "repository": "https://github.com/Daniel-Boll/scylla-javascript-driver", "author": { "name": "Daniel Boll", "email": "danielboll.dev@proton.me", "url": "https://daniel-boll.me" }, - "main": "index.js", - "types": "index.d.ts", + "license": "MIT", + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "files": [ + "index.d.ts", + "index.js", + "browser.js" + ], + "napi": { + "binaryName": "scylladb", + "targets": [ + "x86_64-apple-darwin", + "aarch64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl", + "aarch64-unknown-linux-gnu", + "armv7-unknown-linux-gnueabihf", + "aarch64-linux-android", + "aarch64-unknown-linux-musl", + "armv7-linux-androideabi" + ] + }, + "engines": { + "node": ">= 20" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, "scripts": { "artifacts": "napi artifacts", + "bench": "node --import @swc-node/register/esm-register benchmark/bench.ts", "build": "napi build --platform --release --pipe \"node ./scripts/fix-files.mjs\"", "build:debug": "napi build --platform --pipe \"node ./scripts/fix-files.mjs\"", + "format": "run-p format:prettier format:rs format:toml", + "format:prettier": "prettier . -w", + "format:toml": "taplo format", + "format:rs": "cargo fmt", + "lint": "oxlint", "prepublishOnly": "napi prepublish -t npm", - "test": "NODE_OPTIONS='--import tsx' ava", - "universal": "napi universal", + "test": "ava", "version": "napi version" }, - "napi": { - "binaryName": "scylladb", - "targets": [ - "x86_64-unknown-linux-gnu", - "aarch64-apple-darwin", - "universal-apple-darwin", - "x86_64-apple-darwin", - "x86_64-unknown-linux-musl" - ] - }, - "license": "MIT", "devDependencies": { - "@napi-rs/cli": "3.0.0-alpha.63", - "@swc-node/register": "^1.10.0", - "@swc/core": "^1.6.6", - "@types/node": "^20.14.9", + "@emnapi/core": "^1.2.0", + "@emnapi/runtime": "^1.2.0", + "@napi-rs/cli": "3.0.0-alpha.64", + "@napi-rs/wasm-runtime": "^0.2.4", + "@swc-node/register": "^1.10.6", + "@swc/core": "^1.6.13", + "@taplo/cli": "^0.7.0", + "@tybys/wasm-util": "^0.9.0", + "@types/node": "^22.9.0", "ava": "^6.1.3", - "tsx": "^4.16.0", - "typescript": "^5.5.2" + "chalk": "^5.3.0", + "emnapi": "^1.2.0", + "husky": "^9.0.11", + "lint-staged": "^15.2.7", + "npm-run-all2": "^7.0.0", + "oxlint": "^0.11.0", + "prettier": "^3.3.3", + "tinybench": "^3.0.0", + "tsx": "^4.19.2", + "typescript": "^5.5.3" }, - "ava": { - "require": [ - "@swc-node/register" + "lint-staged": { + "*.@(js|ts|tsx)": [ + "oxlint --fix" ], - "extensions": [ - "ts" + "*.@(js|ts|tsx|yml|yaml|md|json)": [ + "prettier --write" ], + "*.toml": [ + "taplo format" + ] + }, + "ava": { + "extensions": { + "ts": "module" + }, "timeout": "2m", "workerThreads": false, "environmentVariables": { "TS_NODE_PROJECT": "./tsconfig.json" - } + }, + "nodeArguments": [ + "--import", + "@swc-node/register/esm-register" + ] }, - "engines": { - "node": ">= 10" + "prettier": { + "printWidth": 120, + "semi": true, + "trailingComma": "all", + "singleQuote": false, + "arrowParens": "always" }, - "packageManager": "yarn@4.3.1" + "packageManager": "pnpm@9.12.3" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..15b52d2 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3482 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@emnapi/core': + specifier: ^1.2.0 + version: 1.2.0 + '@emnapi/runtime': + specifier: ^1.2.0 + version: 1.2.0 + '@napi-rs/cli': + specifier: 3.0.0-alpha.64 + version: 3.0.0-alpha.64(@emnapi/runtime@1.2.0)(@types/node@22.9.0)(emnapi@1.2.0) + '@napi-rs/wasm-runtime': + specifier: ^0.2.4 + version: 0.2.4 + '@swc-node/register': + specifier: ^1.10.6 + version: 1.10.6(@swc/core@1.6.13)(@swc/types@0.1.9)(typescript@5.5.3) + '@swc/core': + specifier: ^1.6.13 + version: 1.6.13 + '@taplo/cli': + specifier: ^0.7.0 + version: 0.7.0 + '@tybys/wasm-util': + specifier: ^0.9.0 + version: 0.9.0 + '@types/node': + specifier: ^22.9.0 + version: 22.9.0 + ava: + specifier: ^6.1.3 + version: 6.1.3 + chalk: + specifier: ^5.3.0 + version: 5.3.0 + emnapi: + specifier: ^1.2.0 + version: 1.2.0 + husky: + specifier: ^9.0.11 + version: 9.0.11 + lint-staged: + specifier: ^15.2.7 + version: 15.2.7 + npm-run-all2: + specifier: ^7.0.0 + version: 7.0.1 + oxlint: + specifier: ^0.11.0 + version: 0.11.0 + prettier: + specifier: ^3.3.3 + version: 3.3.3 + tinybench: + specifier: ^3.0.0 + version: 3.0.0 + tsx: + specifier: ^4.19.2 + version: 4.19.2 + typescript: + specifier: ^5.5.3 + version: 5.5.3 + +packages: + + '@emnapi/core@1.2.0': + resolution: {integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==} + + '@emnapi/runtime@1.2.0': + resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + + '@emnapi/wasi-threads@1.0.1': + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@inquirer/checkbox@4.0.0': + resolution: {integrity: sha512-TNd+u1fAG8vf8YMgXzK2BI0u0xsphFv//T5rpF1eZ+8AAXby5Ll1qptr4/XVS45dvWDIzuBmmWIpVJRvnaNqzQ==} + engines: {node: '>=18'} + + '@inquirer/confirm@5.0.0': + resolution: {integrity: sha512-6QEzj6bZg8atviRIL+pR0tODC854cYSjvZxkyCarr8DVaOJPEyuGys7GmEG3W0Rb8kKSQec7P6okt0sJvNneFw==} + engines: {node: '>=18'} + + '@inquirer/core@10.0.0': + resolution: {integrity: sha512-7dwoKCGvgZGHWTZfOj2KLmbIAIdiXP9NTrwGaTO/XDfKMEmyBahZpnombiG6JDHmiOrmK3GLEJRXrWExXCDLmQ==} + engines: {node: '>=18'} + + '@inquirer/editor@4.0.0': + resolution: {integrity: sha512-bhHAP7hIOxUjiTZrpjyAYD+2RFRa+PNutWeW7JdDPcWWG3GVRiFsu3pBGw9kN2PktoiilDWFGSR0dwXBzGQang==} + engines: {node: '>=18'} + + '@inquirer/expand@4.0.0': + resolution: {integrity: sha512-mR7JHNIvCB4o12f75KN42he7s1O9tmcSN4wJ6l04oymfXKLn+lYJFI7z9lbe4/Ald6fm8nuF38fuY5hNPl3B+A==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.7': + resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==} + engines: {node: '>=18'} + + '@inquirer/input@4.0.0': + resolution: {integrity: sha512-LD7MNzaX+q2OpU4Fn0i/SedhnnBCAnEzRr6L0MP6ohofFFlx9kp5EXX7flbRZlUnh8icOwC3NFmXTyP76hvo0g==} + engines: {node: '>=18'} + + '@inquirer/number@3.0.0': + resolution: {integrity: sha512-DUYfROyQNWm3q+JXL3S6s1/y/cOWRstnmt5zDXhdYNJ5N8TgCnHcDXKwW/dRZL7eBZupmDVHxdKCWZDUYUqmeg==} + engines: {node: '>=18'} + + '@inquirer/password@4.0.0': + resolution: {integrity: sha512-W4QRSzJDMKIvWSvQWOIhs6qba1MJ6yIoy+sazSFhl2QIwn58B0Yw3iZ/zLk3QqVcCsTmKcyrSNVWUJ5RVDLStw==} + engines: {node: '>=18'} + + '@inquirer/prompts@7.0.0': + resolution: {integrity: sha512-y8kX/TmyBqV0H1i3cWbhiTljcuBtgVgyVXAVub3ba1j5/G+dxhYohK1JLRkaosPGKKf3LnEJsYK+GPabpfnaHw==} + engines: {node: '>=18'} + + '@inquirer/rawlist@4.0.0': + resolution: {integrity: sha512-frzJNoMsQBO1fxLXrtpxt2c8hUy/ASEmBpIOEnXY2CjylPnLsVyxrEq7hcOIqVJKHn1tIPfplfiSPowOTrrUDg==} + engines: {node: '>=18'} + + '@inquirer/search@3.0.0': + resolution: {integrity: sha512-AT9vkC2KD/PLHZZXIW5Tn/FnJzEU3xEZMLxNo9OggKoreDEKfTOKVM1LkYbDg6UQUOOjntXd0SsrvoHfCzS8cw==} + engines: {node: '>=18'} + + '@inquirer/select@4.0.0': + resolution: {integrity: sha512-XTN4AIFusWbNCBU1Xm2YDxbtH94e/FOrC27U3QargSsoDT1mRm+aLfqE+oOZnUuxwtTnInRT8UHRU3MVOu52wg==} + engines: {node: '>=18'} + + '@inquirer/type@3.0.0': + resolution: {integrity: sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + + '@napi-rs/cli@3.0.0-alpha.64': + resolution: {integrity: sha512-IYkNvh+SjFd4StEIJVsXa4paAeKakYG80GWTfX3PwpFlrX4fQZ7BkPR1IGWI17x5psz9MQvuEyicwjGWiHxI4A==} + engines: {node: '>= 16'} + hasBin: true + peerDependencies: + '@emnapi/runtime': ^1.1.0 + emnapi: ^1.1.0 + peerDependenciesMeta: + '@emnapi/runtime': + optional: true + emnapi: + optional: true + + '@napi-rs/cross-toolchain@0.0.16': + resolution: {integrity: sha512-jwdjHT5L0m9MH0CmzDwPp0ckn/UO7afHCsPeo7NugHUvYgvlgS7SWhdMVgIgJW2HHqhcW/2nhaLLGpAU1c7QRQ==} + peerDependencies: + '@napi-rs/cross-toolchain-arm64-target-aarch64': ^0.0.16 + '@napi-rs/cross-toolchain-arm64-target-armv7': ^0.0.16 + '@napi-rs/cross-toolchain-arm64-target-x86_64': ^0.0.16 + '@napi-rs/cross-toolchain-x64-target-aarch64': ^0.0.16 + '@napi-rs/cross-toolchain-x64-target-armv7': ^0.0.16 + '@napi-rs/cross-toolchain-x64-target-x86_64': ^0.0.16 + peerDependenciesMeta: + '@napi-rs/cross-toolchain-arm64-target-aarch64': + optional: true + '@napi-rs/cross-toolchain-arm64-target-armv7': + optional: true + '@napi-rs/cross-toolchain-arm64-target-x86_64': + optional: true + '@napi-rs/cross-toolchain-x64-target-aarch64': + optional: true + '@napi-rs/cross-toolchain-x64-target-armv7': + optional: true + '@napi-rs/cross-toolchain-x64-target-x86_64': + optional: true + + '@napi-rs/lzma-android-arm-eabi@1.3.1': + resolution: {integrity: sha512-mtGOg8jXlc+pTBI86cqohfndS9UmOAkk9d5CChKMb8btVks70yhUN1e7YYS3QFbmoxbPs2Ee+wmuH1Khdc7B2w==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@napi-rs/lzma-android-arm64@1.3.1': + resolution: {integrity: sha512-4uGkQgAv9Tnc/i0k2eIgbhZgyzs94+iECWxz4MFZNcZ1fNGvGbRL2j+SITE4OmwrUn3TuFK/uYWfgzooq8E1Qg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@napi-rs/lzma-darwin-arm64@1.3.1': + resolution: {integrity: sha512-MZBg4iwHTS8icjTiCMdzh8kYrMmKBCEglFPa+vjI91R2XDwuuwSzqmpATRpmMH8cWUUWtGPF4fnxKzjgkzhd4Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@napi-rs/lzma-darwin-x64@1.3.1': + resolution: {integrity: sha512-7vte+1lYV7xgZERKH/pjAeh4T16aQASKOzu4op70pK6VP/64Plr5rrvqxQqQmlAIe4pwyo/RkFl1n4LXDod3xg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@napi-rs/lzma-freebsd-x64@1.3.1': + resolution: {integrity: sha512-uBS74fynTqLUC3catIxyezCafn8UDlr2yxVV47vz1T6Vop2PGDz/cMQdV6rnLSjPE08Rv66ihM36mgf/MmOkOg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@napi-rs/lzma-linux-arm-gnueabihf@1.3.1': + resolution: {integrity: sha512-rrVLyqBJeN29gPJCNkPbZ7dAzaseEcERKyhjwM+DfbFrDUvtkEcrYPvo+iwE/NmF+OkZQkzcanrVMGnq/mcJYQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@napi-rs/lzma-linux-arm64-gnu@1.3.1': + resolution: {integrity: sha512-vDmVsthRbX2opkgRirJJGKQxUP/spvyVM2Y5CyCWZ7sadSID3hA97r38gf9ISn/sJ8/r93IPWLq+iycudNKi+Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/lzma-linux-arm64-musl@1.3.1': + resolution: {integrity: sha512-x4m/J3hRdFd3IoqKc+4aBcSUkcuDEP7hH6vdss8bKNLjPfXmnG/lcHJEQX3hNnNOULPP8xVRxgiY8jeL62cnsw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/lzma-linux-x64-gnu@1.3.1': + resolution: {integrity: sha512-riB+Xg72NfH8Kcpq07omshVu0QsLW0v2bhywBNYxvA+t2dGGWSIEN1U/zazUXys+IEA6pBQKqLVseurWE6Cl8g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/lzma-linux-x64-musl@1.3.1': + resolution: {integrity: sha512-JXLgJFwoeysxdSg7rdVYP8wrliCQVJlU5JcLYjRVSCL4P0mQTjnYi7R7VdaOkDACw/Fvlji7oIJXt0KiaDTcOw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/lzma-wasm32-wasi@1.3.1': + resolution: {integrity: sha512-XTA9XTUtj0KPKuzNS2oi3bWN6tJodk00wwMd/TiKoEqx9Fe/zu+OfDGuXAn+xs+P7S3YCDHqjYinuTQMZ0ucJw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@napi-rs/lzma-win32-arm64-msvc@1.3.1': + resolution: {integrity: sha512-qLDfs9UEtLPPTN/FdSz3gSdlx86VwFQBuLBrQtaiYQtUTKZCOYV1Z1fXqFt5Zqa1HKV2oyXnwGcTI7RpcyXxtg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/lzma-win32-ia32-msvc@1.3.1': + resolution: {integrity: sha512-rWNlxLFMIfvxzfdQCfeQ3D/HEnQG3vfladFYrXUx6ePXO6r+BLCGn6/LWSSuKlw4vKkb1iHEWsAVaRLIcJEMIA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@napi-rs/lzma-win32-x64-msvc@1.3.1': + resolution: {integrity: sha512-SNfHNqEjabXfTL1+KRi0qiAhwIlZHhQystvfSYX6p1g+2trSC/3WUpUQ4fbbR7KyE31g2AAnwjXivnlQ0af/pg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@napi-rs/lzma@1.3.1': + resolution: {integrity: sha512-XyZoBlYNMvCulK/RmVK/0nB3j7IdH7HpqcrMMg0U+HqQqKRLOQBwvnKNBocPC1bZQ7iZuKWYTLn1ayZwTyek8w==} + engines: {node: '>= 10'} + + '@napi-rs/tar-android-arm-eabi@0.1.1': + resolution: {integrity: sha512-Ufa0ahZvE5KGrC2WBux5svCe/jvC+e8IgtleiicwqnfgTfbDknYyq/QuqkP1AnMp/IvTmx2iutCZt6OFIG0zAg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@napi-rs/tar-android-arm64@0.1.1': + resolution: {integrity: sha512-KUu5fHIiIObSuZ/crHxUrQ243+LiCRKPwdCVLHwjtftqFjzls+R2Mp6GrpM41XxexDMN00SUta3kazi93Xr19A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@napi-rs/tar-darwin-arm64@0.1.1': + resolution: {integrity: sha512-jaqgdX20iIga+2gzotQ78eF00Cm8vECocUYeMY62WqyzJNv/jx1dlOfELWEccOjpmawFT9tjWebsS9F1QMvSUg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@napi-rs/tar-darwin-x64@0.1.1': + resolution: {integrity: sha512-80sa32IxfRso9x9sGTFpfLSx3BnruyJODpSkUzalOCz9i14n5gOKA8KR/JrnSWwDz0p5l5P9kfQD3pu8Voj7WA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@napi-rs/tar-freebsd-x64@0.1.1': + resolution: {integrity: sha512-P7V1zBjjC1dCrTwtUzuzYM4AeZduigeCtd8qQw2IUZowM5AsmhMd77oYuXjdU29cEpKUpyYjJRxjPCzFy+WbAQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@napi-rs/tar-linux-arm-gnueabihf@0.1.1': + resolution: {integrity: sha512-qpC71ILPkWKt8k1iJCYt5gjwcOkd2VFSQIelTRr12t5CVNKV04rE/TMdwFoCP7kxbtb9Fl2cZzCRISw2BhMCmQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@napi-rs/tar-linux-arm64-gnu@0.1.1': + resolution: {integrity: sha512-71QgxcFJCog6O4Tauoge8D0ILkDGJTRk3ru7zG8PUFG1QXJ1kkiRikdT77YmoVxtomc9FUOt+bdEdU5Yn+3QUQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/tar-linux-arm64-musl@0.1.1': + resolution: {integrity: sha512-R2e7YEILPKc447N1hUt1zQuyy0st83HX6nhmtFywS1aOj76/3hzxLVrebGiiS6kifyCrO82o66CNTYe7DixMZw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/tar-linux-x64-gnu@0.1.1': + resolution: {integrity: sha512-tmy9q2LXUB2GQ+IgUzJn3+us52leplMu96ORyFq1iHQEelGSqXt4xi5DzU07JhX3obJPqVqkybtcRS4enBfmBA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/tar-linux-x64-musl@0.1.1': + resolution: {integrity: sha512-j5ePbe6vihApl0cGPPDUVTWZbf2mF4NhxngAoG2jp7AeX3cWP2O4pjsvaOraW6QfvWEMFPeER7S0b6eBS7duvA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/tar-wasm32-wasi@0.1.1': + resolution: {integrity: sha512-se0+DlOiIRt7mcz7BeOJDoZtCrROpKLwiAOGmNgrjQ/SZS7TnOPuwm3wy9XN9WLoepttEjCEem6UP8yD5GJuQg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@napi-rs/tar-win32-arm64-msvc@0.1.1': + resolution: {integrity: sha512-FDZPi2wC7RwzvodogigLh/pJvhqCTVTUqOYuHlLkPSUbSAGiEkI55wk9RqH3y3EdJQaDuzyqC0QKz5ket2U+GA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/tar-win32-ia32-msvc@0.1.1': + resolution: {integrity: sha512-OPR9Tou5z5M912G7Kc7gkf1ltinbOQx5dS/OeDIWHvPGOfdFDIxt0YVKhzSLRJi43+zIDp8/+cbeMD/cKXfX8w==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@napi-rs/tar-win32-x64-msvc@0.1.1': + resolution: {integrity: sha512-hiv5KfhrMSg8tTRC2oQXVckVg1h6ZVjwbd5aF9Esl0V3p2TaNFwwbqgnAN4Gm/PmSnHWNL/IRTHkk3cOzDWihQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@napi-rs/tar@0.1.1': + resolution: {integrity: sha512-FOMhwwlvoYjHaDBxP26K3D92ltw1Y/CC4CIjgC6qXdzW4MYNwTlEyI58smCM3k+nCVJH3kpOYyH3sgbK4WZA4A==} + engines: {node: '>= 10'} + + '@napi-rs/wasm-runtime@0.2.4': + resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + + '@napi-rs/wasm-tools-android-arm-eabi@0.0.2': + resolution: {integrity: sha512-/b+UU3suXjW4P0DzHRNdrnebQtFKcQf/YMeZJH+xUlKgvwli5kbmWjx8Wqqz0VETVkUTuPqJMBDIVLyc+14FGw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@napi-rs/wasm-tools-android-arm64@0.0.2': + resolution: {integrity: sha512-j57GbDflwJdZtT8pZj5fOV4JAP+LdKN+wzsUYs+QRUoBqpWbbUANudolqfw63bkS9sD4z7fbCuz8iwtJqzxTVA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@napi-rs/wasm-tools-darwin-arm64@0.0.2': + resolution: {integrity: sha512-P2ChgWgVuv9GwmbxN89R84KzIImoTqXINteEixUvmkdnhyFiR+I8deNs89Yed+5w8QLC6MEfrtRqLP9YI+NoQA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@napi-rs/wasm-tools-darwin-x64@0.0.2': + resolution: {integrity: sha512-T/kQQ0gt8+wau1Z821PKVAD76QhmwVoLs2CT7Z9tTBs2pJvwSCP0C/kQiQAHcJIMi7A2E9Ab/Mez0BERy50EFA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@napi-rs/wasm-tools-freebsd-x64@0.0.2': + resolution: {integrity: sha512-GnnHu+r5sfzuxC/1J5UMF/h3BOZnHb3NQZ5hmbCfZYCKzpzRxrAJhzRunlbRN+v0x8M/49dztVTYR3s7K4ooAw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@napi-rs/wasm-tools-linux-arm64-gnu@0.0.2': + resolution: {integrity: sha512-KnZdLT0OnKb1CG2kdt3/WvM43vr9i+FEwXCvSOVC/6Tsifz7ynhMg7LAVESILd03HubzQJfg9nbRsk0bQ+IOwg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/wasm-tools-linux-arm64-musl@0.0.2': + resolution: {integrity: sha512-HkpZOID2U8P6pWqK3mqZ8bxU5xcuT3iA2fO+jrxn78h006iYgfNmdc5JaVhHnHazMmk32xKhSV4iV0VUh8UWDg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/wasm-tools-linux-x64-gnu@0.0.2': + resolution: {integrity: sha512-YksJWBCyOalB9ogtP9+/dZKP+vR6+h7BmzMXaXMT71WW/GvIsifMVgv+DY/FRSNJQupp5Y+ugjqVAOUOc/G65g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/wasm-tools-linux-x64-musl@0.0.2': + resolution: {integrity: sha512-sPtRxPMdw05KdTcxgSPMmSXG2+PiK3vJ/l2+g9hvjnnKtvslJN2Hr7j8zgzuoKRAUFPaJVe6+D2xVh5cpdqhww==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/wasm-tools-wasm32-wasi@0.0.2': + resolution: {integrity: sha512-muRvZK7AIuo88G2AxYx3gA59rHMQgoN004saQkBvXnz3K/DVHKfTZ6TtUebss8zI3dURU6xExL8drxFWYxjEbQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@napi-rs/wasm-tools-win32-arm64-msvc@0.0.2': + resolution: {integrity: sha512-Cn13WQ+tpFqdVwx0DIWKbsI9auFyzVZV4F5UNOUeDt6GgOL+NndgJul0Pc9bSU6fi03AylMPfF/nTCaDWO2Wgw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/wasm-tools-win32-ia32-msvc@0.0.2': + resolution: {integrity: sha512-xsg5DkIQi82a8rcx6246Y3XC8TIqHamY+/C6sIlPLaZEuHctDkMECAw0AANwRf5vN//D2oo2oljOuoYtB1GOKw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@napi-rs/wasm-tools-win32-x64-msvc@0.0.2': + resolution: {integrity: sha512-yHigltEt33eq8bappvKsIliz4MxfMPn1M+NWbIFRWN+IS1Z57mhmc1osuk+IRXrSlq0Tom0R6MYN1jpkZKz81Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@napi-rs/wasm-tools@0.0.2': + resolution: {integrity: sha512-kBvDQCP5BLw2TxTENXLp3Of7vVEx0uyIye824JHE4dduzzOHVgSoOFVhVqAT3Fx/hLV445RVWfEqQbXMg4w/Mw==} + engines: {node: '>= 10'} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@octokit/auth-token@5.1.1': + resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} + engines: {node: '>= 18'} + + '@octokit/core@6.1.2': + resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} + engines: {node: '>= 18'} + + '@octokit/endpoint@10.1.1': + resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} + engines: {node: '>= 18'} + + '@octokit/graphql@8.1.1': + resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} + engines: {node: '>= 18'} + + '@octokit/openapi-types@22.2.0': + resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} + + '@octokit/plugin-paginate-rest@11.3.1': + resolution: {integrity: sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/plugin-request-log@5.3.1': + resolution: {integrity: sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=6' + + '@octokit/plugin-rest-endpoint-methods@13.2.2': + resolution: {integrity: sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': ^5 + + '@octokit/request-error@6.1.4': + resolution: {integrity: sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==} + engines: {node: '>= 18'} + + '@octokit/request@9.1.3': + resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} + engines: {node: '>= 18'} + + '@octokit/rest@21.0.2': + resolution: {integrity: sha512-+CiLisCoyWmYicH25y1cDfCrv41kRSvTq6pPWtRroRJzhsCZWZyCqGyI8foJT5LmScADSwRAnr/xo+eewL04wQ==} + engines: {node: '>= 18'} + + '@octokit/types@13.5.0': + resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} + + '@oxc-resolver/binding-darwin-arm64@1.10.0': + resolution: {integrity: sha512-sJpH25yjQQf+59g4WAhrZYSiLiev2kFmHIvANeX8/ZAUEvtmRKmw/sCfK1cS6F6iRWNlSSjKbmahaY0ubS95ug==} + cpu: [arm64] + os: [darwin] + + '@oxc-resolver/binding-darwin-x64@1.10.0': + resolution: {integrity: sha512-ETtWuoq5nmg1810bMeKCQ5vKq85Sy+arx7LDVEUFvkz4g0+6WP1SVYr4st7jBh8k6AhXAw1d7H5zRTL6Sfep/w==} + cpu: [x64] + os: [darwin] + + '@oxc-resolver/binding-linux-arm-gnueabihf@1.10.0': + resolution: {integrity: sha512-0h8Tn0c2aUagCO0nNU0YwSqBbNBKrc4/0uSwM/gAKrzmjEbup2dZEDkvAoBzEFgGc8DFdvKv/uxydgJvpyAGZQ==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-gnu@1.10.0': + resolution: {integrity: sha512-RtJAj35/v4mm4MIEwlz8nomcgEpktdgOoIRdVaneSDjfTSQdagC34Bx9TRGLKt5u3xgP4xYx0rFTSBCmJUJoSQ==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-musl@1.10.0': + resolution: {integrity: sha512-d9PBWbK3SCrj/018LoCyQ34LEEKZXyVwA/UCtRzCvZmgRxlRDmrim/xgl2IyXEqu3/9eeGnGnip1ceATGnAacA==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-x64-gnu@1.10.0': + resolution: {integrity: sha512-dv2YPpCk2SQNQI/NiPSr207bdsIBD/1Gn7zpz/r9o6cl0RucHRk4KsMRamkJvWR+jIw0CwGTsgQZZTImcObLCQ==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-linux-x64-musl@1.10.0': + resolution: {integrity: sha512-RdIxtyhPfxd8uUX2IkotnLHAkdrvVvEhv0ZNB31K6CtwVekZKWxSETzodN8+2LLNgp+4CClMHxhc59IapGUPKA==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-wasm32-wasi@1.10.0': + resolution: {integrity: sha512-drqVsc2dj7rUdZ/UBzDxfyuPL8ZBjKYKiuW7RBrYKSOYKA4qNDIqB2qDUTv940WDF4WhrHFpHEjT6Y1Sp+Fvxw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-resolver/binding-win32-arm64-msvc@1.10.0': + resolution: {integrity: sha512-RbDplFsBJkj4huit8d7XG2wKQ7IMdQhLAUBeK02JzsDDrpNsgD1fa3YOy2oGO3GPUWEJXyhq1okFyyVIHrUf3g==} + cpu: [arm64] + os: [win32] + + '@oxc-resolver/binding-win32-x64-msvc@1.10.0': + resolution: {integrity: sha512-0atlXXYIzdzvXBlPwdFde3PppPyapb+KofI9jjM88na9ytsC7Unn9hlV7egr2JSaGKCiEBDK8zOxoG1ueEauVA==} + cpu: [x64] + os: [win32] + + '@oxlint/darwin-arm64@0.11.0': + resolution: {integrity: sha512-qQ1C5yvRYECp+FP8DCOSqNX4+e72xXyApJ2O8QyIeYFuGGF2MoDVQz3NYJEOjOfArZ9YXGsELwM3UFtjTGIZVg==} + cpu: [arm64] + os: [darwin] + + '@oxlint/darwin-x64@0.11.0': + resolution: {integrity: sha512-pAqp6/6+mAIPr8WBndzmEuRbcXW8WNdn80hd8fLeR9teJI8eMpTkYL6kQIU7VjJ3NxpmzBLO7nh979/bwmmuBQ==} + cpu: [x64] + os: [darwin] + + '@oxlint/linux-arm64-gnu@0.11.0': + resolution: {integrity: sha512-RmpjCWjX0RJ1MdIcqGQsOlXh9WgXnVgVolZLCs8MHqNuYtaIA+0VOxOhJOr7CQ0HmwV+ysPTAiQ2SVSI2tVJQQ==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-arm64-musl@0.11.0': + resolution: {integrity: sha512-totBeaOeZlblKRpSZi3svVWpJjFlhxR7Xzrh3nhPTgHMM3696qjzyb80Yg0K8gAlOrIDlBblLG0JnaxvdM2yjg==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-x64-gnu@0.11.0': + resolution: {integrity: sha512-tXiJ97WH4vwTIkGMnXYPx5NqwQiYLW9MbmnGkKkm5Xv/wpAaN761PkHRJT0zsYoAgoU3nZVp3qhit9MpHq1SQg==} + cpu: [x64] + os: [linux] + + '@oxlint/linux-x64-musl@0.11.0': + resolution: {integrity: sha512-LgjgD80fiz37g31t/jMm9kyDM31WPjcTkXXXU702WQsdhujXVUZDWid9/QeVvi51EVufyyekaTYgNR8REVVZZg==} + cpu: [x64] + os: [linux] + + '@oxlint/win32-arm64@0.11.0': + resolution: {integrity: sha512-lfANFSWt0vU6x9JQYeMEy6uy8wniZGYQt0nT45P3BwXIMhAJbEC3yEX+bP5x8eTQrgkDu4dwIDURGCeeUL/NdA==} + cpu: [arm64] + os: [win32] + + '@oxlint/win32-x64@0.11.0': + resolution: {integrity: sha512-5CHtAp82xbv0jnh/HGi3QE0ANBr3+R338MA0wgZXc7477Vuri0aSK0T9oRU+K/pVloPVJaWKSDCCZoiZIYckzg==} + cpu: [x64] + os: [win32] + + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + + '@sindresorhus/merge-streams@1.0.0': + resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} + engines: {node: '>=18'} + + '@swc-node/core@1.13.2': + resolution: {integrity: sha512-skceAbeKUmEK8z1nxStJTTsbIInKqW4n4+ZCYFexy6UsHjsc7MAfR2v5QqNJr/Fl/j+yLY6UkXY2VUU63nEC/Q==} + engines: {node: '>= 10'} + peerDependencies: + '@swc/core': '>= 1.4.13' + '@swc/types': '>= 0.1' + + '@swc-node/register@1.10.6': + resolution: {integrity: sha512-/h+Br85NnkPZz2uZIKpf4MGf8XcFDBEyZxpZxf4Db4uYSbUJ1IBgaWbCOetFZQOGCT2PmzNaQJKo8Pe7thdpdw==} + peerDependencies: + '@swc/core': '>= 1.4.13' + typescript: '>= 4.3' + + '@swc-node/sourcemap-support@0.5.1': + resolution: {integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==} + + '@swc/core-darwin-arm64@1.6.13': + resolution: {integrity: sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.6.13': + resolution: {integrity: sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.6.13': + resolution: {integrity: sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.6.13': + resolution: {integrity: sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.6.13': + resolution: {integrity: sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.6.13': + resolution: {integrity: sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.6.13': + resolution: {integrity: sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.6.13': + resolution: {integrity: sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.6.13': + resolution: {integrity: sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.6.13': + resolution: {integrity: sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.6.13': + resolution: {integrity: sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.9': + resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==} + + '@taplo/cli@0.7.0': + resolution: {integrity: sha512-Ck3zFhQhIhi02Hl6T4ZmJsXdnJE+wXcJz5f8klxd4keRYgenMnip3JDPMGDRLbnC/2iGd8P0sBIQqI3KxfVjBg==} + hasBin: true + + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + + '@types/node@22.9.0': + resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} + + '@vercel/nft@0.26.4': + resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} + engines: {node: '>=16'} + hasBin: true + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-find-index@1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} + engines: {node: '>=0.10.0'} + + arrgv@1.0.2: + resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==} + engines: {node: '>=8.0.0'} + + arrify@3.0.0: + resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} + engines: {node: '>=12'} + + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + + ava@6.1.3: + resolution: {integrity: sha512-tkKbpF1pIiC+q09wNU9OfyTDYZa8yuWvU2up3+lFJ3lr1RmnYh2GBpPwzYUEB0wvTPIUysGjcZLNZr7STDviRA==} + engines: {node: ^18.18 || ^20.8 || ^21 || ^22} + hasBin: true + peerDependencies: + '@ava/typescript': '*' + peerDependenciesMeta: + '@ava/typescript': + optional: true + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + before-after-hook@3.0.2: + resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + blueimp-md5@2.19.0: + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + callsites@4.1.0: + resolution: {integrity: sha512-aBMbD1Xxay75ViYezwT40aQONfr+pSXTHwNKvIXhXD6+LY3F1dLIcceoC5OZKBVHbXcysz1hL9D2w0JJIMXpUw==} + engines: {node: '>=12.20'} + + cbor@9.0.1: + resolution: {integrity: sha512-/TQOWyamDxvVIv+DY9cOLNuABkoyz8K/F3QE56539pGVYohx0+MEA1f4lChFTX79dBTBS7R1PF6ovH7G+VtBfQ==} + engines: {node: '>=16'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chunkd@2.0.1: + resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + ci-parallel-vars@1.0.1: + resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==} + + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + clipanion@3.2.1: + resolution: {integrity: sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==} + peerDependencies: + typanion: '*' + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + code-excerpt@4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + concordance@5.0.4: + resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} + engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + convert-to-spaces@2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + currently-unhandled@0.4.1: + resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} + engines: {node: '>=0.10.0'} + + date-time@3.1.0: + resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} + engines: {node: '>=6'} + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + + emittery@1.0.1: + resolution: {integrity: sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==} + engines: {node: '>=14.16'} + + emnapi@1.2.0: + resolution: {integrity: sha512-rcq+dJCcfr08I0XM/57LPRqaUokGfni/+SvhO7NaJthTTjRdohhIy0FQwyC5rR1enAsjkldQg83th8J5hURv0Q==} + peerDependencies: + node-addon-api: '>= 6.1.0' + peerDependenciesMeta: + node-addon-api: + optional: true + + emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + + figures@6.0.1: + resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==} + engines: {node: '>=18'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globby@14.0.0: + resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} + engines: {node: '>=18'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@9.0.11: + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ignore-by-default@2.1.0: + resolution: {integrity: sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==} + engines: {node: '>=10 <11 || >=12 <13 || >=14'} + + ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + irregular-plurals@3.5.0: + resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} + engines: {node: '>= 0.8'} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-parse-even-better-errors@4.0.0: + resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} + engines: {node: ^18.17.0 || >=20.5.0} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lint-staged@15.2.7: + resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} + engines: {node: '>=18.12.0'} + hasBin: true + + listr2@8.2.3: + resolution: {integrity: sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==} + engines: {node: '>=18.0.0'} + + load-json-file@7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + engines: {node: '>=18'} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + matcher@5.0.0: + resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + md5-hex@3.0.1: + resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} + engines: {node: '>=8'} + + memoize@10.0.0: + resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==} + engines: {node: '>=18'} + + memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.0: + resolution: {integrity: sha512-RBfQ+9X9DpXdEoK7Bu+KeEU6vFhumEIiXKWECPzRBmDserEq4uR2b/VCm0LwpMSosoq2k+Zuxj/GzOr0Fn6h/g==} + engines: {node: '>=18'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.7.1: + resolution: {integrity: sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==} + hasBin: true + + nofilter@3.1.0: + resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} + engines: {node: '>=12.19'} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + npm-normalize-package-bin@4.0.0: + resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} + engines: {node: ^18.17.0 || >=20.5.0} + + npm-run-all2@7.0.1: + resolution: {integrity: sha512-Adbv+bJQ8UTAM03rRODqrO5cx0YU5KCG2CvHtSURiadvdTjjgGJXdbc1oQ9CXBh9dnGfHSoSB1Web/0Dzp6kOQ==} + engines: {node: ^18.17.0 || >=20.5.0, npm: '>= 9'} + hasBin: true + + npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + oxc-resolver@1.10.0: + resolution: {integrity: sha512-FkObNl6JVrbqvvRqXCQhYZvrJHqEJNAjWDuPxHx9CblwoYzL5zcM74Ba30ek3YUopaUSNit3ceaILqShAx+hgw==} + + oxlint@0.11.0: + resolution: {integrity: sha512-uY6/R4k5bECwJBR+y8CqGRcUb5hxNReziBjt5+pk6DKxj46DqMd6HwEk090KnaH1czVf23r8mcEsJYGowMWeIA==} + engines: {node: '>=14.*'} + hasBin: true + + p-map@7.0.2: + resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} + engines: {node: '>=18'} + + package-config@5.0.0: + resolution: {integrity: sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==} + engines: {node: '>=18'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + plur@5.1.0: + resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + pretty-ms@9.0.0: + resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + engines: {node: '>=18'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + read-package-json-fast@4.0.0: + resolution: {integrity: sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==} + engines: {node: ^18.17.0 || >=20.5.0} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.0.0: + resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} + engines: {node: '>=18'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + supertap@3.0.1: + resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + engines: {node: '>=10'} + + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + + time-zone@1.0.0: + resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} + engines: {node: '>=4'} + + tinybench@3.0.0: + resolution: {integrity: sha512-931sGm66Zjp7c4o/DePaq8AKlCdq/ZldpS1b8O7r3SxSuxJpqoqeUprTOsW2CBhrw54U3mTmcS97LsBqPXEQLw==} + engines: {node: '>=18.0.0'} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toml@3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + engines: {node: '>=18.0.0'} + hasBin: true + + typanion@3.14.0: + resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==} + + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + universal-user-agent@7.0.2: + resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + wasm-sjlj@1.0.5: + resolution: {integrity: sha512-Z/MHJeOkAvJJVWnGX3/YZGYldGaawZbYHX4ldYG9kLhcdB8H31F5x66M7Zc4BP/7pg0aLsusQj1629m2B3Rilg==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + well-known-symbols@2.0.0: + resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} + engines: {node: '>=6'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + +snapshots: + + '@emnapi/core@1.2.0': + dependencies: + '@emnapi/wasi-threads': 1.0.1 + tslib: 2.6.2 + + '@emnapi/runtime@1.2.0': + dependencies: + tslib: 2.6.2 + + '@emnapi/wasi-threads@1.0.1': + dependencies: + tslib: 2.6.2 + + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + + '@inquirer/checkbox@4.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/figures': 1.0.7 + '@inquirer/type': 3.0.0(@types/node@22.9.0) + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/confirm@5.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/type': 3.0.0(@types/node@22.9.0) + transitivePeerDependencies: + - '@types/node' + + '@inquirer/core@10.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/figures': 1.0.7 + '@inquirer/type': 3.0.0(@types/node@22.9.0) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/editor@4.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/type': 3.0.0(@types/node@22.9.0) + external-editor: 3.1.0 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/expand@4.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/type': 3.0.0(@types/node@22.9.0) + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/figures@1.0.7': {} + + '@inquirer/input@4.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/type': 3.0.0(@types/node@22.9.0) + transitivePeerDependencies: + - '@types/node' + + '@inquirer/number@3.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/type': 3.0.0(@types/node@22.9.0) + transitivePeerDependencies: + - '@types/node' + + '@inquirer/password@4.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/type': 3.0.0(@types/node@22.9.0) + ansi-escapes: 4.3.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/prompts@7.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/checkbox': 4.0.0(@types/node@22.9.0) + '@inquirer/confirm': 5.0.0(@types/node@22.9.0) + '@inquirer/editor': 4.0.0(@types/node@22.9.0) + '@inquirer/expand': 4.0.0(@types/node@22.9.0) + '@inquirer/input': 4.0.0(@types/node@22.9.0) + '@inquirer/number': 3.0.0(@types/node@22.9.0) + '@inquirer/password': 4.0.0(@types/node@22.9.0) + '@inquirer/rawlist': 4.0.0(@types/node@22.9.0) + '@inquirer/search': 3.0.0(@types/node@22.9.0) + '@inquirer/select': 4.0.0(@types/node@22.9.0) + transitivePeerDependencies: + - '@types/node' + + '@inquirer/rawlist@4.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/type': 3.0.0(@types/node@22.9.0) + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/search@3.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/figures': 1.0.7 + '@inquirer/type': 3.0.0(@types/node@22.9.0) + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/select@4.0.0(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.0.0(@types/node@22.9.0) + '@inquirer/figures': 1.0.7 + '@inquirer/type': 3.0.0(@types/node@22.9.0) + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/type@3.0.0(@types/node@22.9.0)': + dependencies: + '@types/node': 22.9.0 + + '@mapbox/node-pre-gyp@1.0.11': + dependencies: + detect-libc: 2.0.2 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.5.4 + tar: 6.2.0 + transitivePeerDependencies: + - encoding + - supports-color + + '@napi-rs/cli@3.0.0-alpha.64(@emnapi/runtime@1.2.0)(@types/node@22.9.0)(emnapi@1.2.0)': + dependencies: + '@inquirer/prompts': 7.0.0(@types/node@22.9.0) + '@napi-rs/cross-toolchain': 0.0.16 + '@napi-rs/wasm-tools': 0.0.2 + '@octokit/rest': 21.0.2 + clipanion: 3.2.1(typanion@3.14.0) + colorette: 2.0.20 + debug: 4.3.7 + js-yaml: 4.1.0 + lodash-es: 4.17.21 + semver: 7.6.3 + toml: 3.0.0 + typanion: 3.14.0 + wasm-sjlj: 1.0.5 + optionalDependencies: + '@emnapi/runtime': 1.2.0 + emnapi: 1.2.0 + transitivePeerDependencies: + - '@napi-rs/cross-toolchain-arm64-target-aarch64' + - '@napi-rs/cross-toolchain-arm64-target-armv7' + - '@napi-rs/cross-toolchain-arm64-target-x86_64' + - '@napi-rs/cross-toolchain-x64-target-aarch64' + - '@napi-rs/cross-toolchain-x64-target-armv7' + - '@napi-rs/cross-toolchain-x64-target-x86_64' + - '@types/node' + - supports-color + + '@napi-rs/cross-toolchain@0.0.16': + dependencies: + '@napi-rs/lzma': 1.3.1 + '@napi-rs/tar': 0.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + '@napi-rs/lzma-android-arm-eabi@1.3.1': + optional: true + + '@napi-rs/lzma-android-arm64@1.3.1': + optional: true + + '@napi-rs/lzma-darwin-arm64@1.3.1': + optional: true + + '@napi-rs/lzma-darwin-x64@1.3.1': + optional: true + + '@napi-rs/lzma-freebsd-x64@1.3.1': + optional: true + + '@napi-rs/lzma-linux-arm-gnueabihf@1.3.1': + optional: true + + '@napi-rs/lzma-linux-arm64-gnu@1.3.1': + optional: true + + '@napi-rs/lzma-linux-arm64-musl@1.3.1': + optional: true + + '@napi-rs/lzma-linux-x64-gnu@1.3.1': + optional: true + + '@napi-rs/lzma-linux-x64-musl@1.3.1': + optional: true + + '@napi-rs/lzma-wasm32-wasi@1.3.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.4 + optional: true + + '@napi-rs/lzma-win32-arm64-msvc@1.3.1': + optional: true + + '@napi-rs/lzma-win32-ia32-msvc@1.3.1': + optional: true + + '@napi-rs/lzma-win32-x64-msvc@1.3.1': + optional: true + + '@napi-rs/lzma@1.3.1': + optionalDependencies: + '@napi-rs/lzma-android-arm-eabi': 1.3.1 + '@napi-rs/lzma-android-arm64': 1.3.1 + '@napi-rs/lzma-darwin-arm64': 1.3.1 + '@napi-rs/lzma-darwin-x64': 1.3.1 + '@napi-rs/lzma-freebsd-x64': 1.3.1 + '@napi-rs/lzma-linux-arm-gnueabihf': 1.3.1 + '@napi-rs/lzma-linux-arm64-gnu': 1.3.1 + '@napi-rs/lzma-linux-arm64-musl': 1.3.1 + '@napi-rs/lzma-linux-x64-gnu': 1.3.1 + '@napi-rs/lzma-linux-x64-musl': 1.3.1 + '@napi-rs/lzma-wasm32-wasi': 1.3.1 + '@napi-rs/lzma-win32-arm64-msvc': 1.3.1 + '@napi-rs/lzma-win32-ia32-msvc': 1.3.1 + '@napi-rs/lzma-win32-x64-msvc': 1.3.1 + + '@napi-rs/tar-android-arm-eabi@0.1.1': + optional: true + + '@napi-rs/tar-android-arm64@0.1.1': + optional: true + + '@napi-rs/tar-darwin-arm64@0.1.1': + optional: true + + '@napi-rs/tar-darwin-x64@0.1.1': + optional: true + + '@napi-rs/tar-freebsd-x64@0.1.1': + optional: true + + '@napi-rs/tar-linux-arm-gnueabihf@0.1.1': + optional: true + + '@napi-rs/tar-linux-arm64-gnu@0.1.1': + optional: true + + '@napi-rs/tar-linux-arm64-musl@0.1.1': + optional: true + + '@napi-rs/tar-linux-x64-gnu@0.1.1': + optional: true + + '@napi-rs/tar-linux-x64-musl@0.1.1': + optional: true + + '@napi-rs/tar-wasm32-wasi@0.1.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.4 + optional: true + + '@napi-rs/tar-win32-arm64-msvc@0.1.1': + optional: true + + '@napi-rs/tar-win32-ia32-msvc@0.1.1': + optional: true + + '@napi-rs/tar-win32-x64-msvc@0.1.1': + optional: true + + '@napi-rs/tar@0.1.1': + optionalDependencies: + '@napi-rs/tar-android-arm-eabi': 0.1.1 + '@napi-rs/tar-android-arm64': 0.1.1 + '@napi-rs/tar-darwin-arm64': 0.1.1 + '@napi-rs/tar-darwin-x64': 0.1.1 + '@napi-rs/tar-freebsd-x64': 0.1.1 + '@napi-rs/tar-linux-arm-gnueabihf': 0.1.1 + '@napi-rs/tar-linux-arm64-gnu': 0.1.1 + '@napi-rs/tar-linux-arm64-musl': 0.1.1 + '@napi-rs/tar-linux-x64-gnu': 0.1.1 + '@napi-rs/tar-linux-x64-musl': 0.1.1 + '@napi-rs/tar-wasm32-wasi': 0.1.1 + '@napi-rs/tar-win32-arm64-msvc': 0.1.1 + '@napi-rs/tar-win32-ia32-msvc': 0.1.1 + '@napi-rs/tar-win32-x64-msvc': 0.1.1 + + '@napi-rs/wasm-runtime@0.2.4': + dependencies: + '@emnapi/core': 1.2.0 + '@emnapi/runtime': 1.2.0 + '@tybys/wasm-util': 0.9.0 + + '@napi-rs/wasm-tools-android-arm-eabi@0.0.2': + optional: true + + '@napi-rs/wasm-tools-android-arm64@0.0.2': + optional: true + + '@napi-rs/wasm-tools-darwin-arm64@0.0.2': + optional: true + + '@napi-rs/wasm-tools-darwin-x64@0.0.2': + optional: true + + '@napi-rs/wasm-tools-freebsd-x64@0.0.2': + optional: true + + '@napi-rs/wasm-tools-linux-arm64-gnu@0.0.2': + optional: true + + '@napi-rs/wasm-tools-linux-arm64-musl@0.0.2': + optional: true + + '@napi-rs/wasm-tools-linux-x64-gnu@0.0.2': + optional: true + + '@napi-rs/wasm-tools-linux-x64-musl@0.0.2': + optional: true + + '@napi-rs/wasm-tools-wasm32-wasi@0.0.2': + dependencies: + '@napi-rs/wasm-runtime': 0.2.4 + optional: true + + '@napi-rs/wasm-tools-win32-arm64-msvc@0.0.2': + optional: true + + '@napi-rs/wasm-tools-win32-ia32-msvc@0.0.2': + optional: true + + '@napi-rs/wasm-tools-win32-x64-msvc@0.0.2': + optional: true + + '@napi-rs/wasm-tools@0.0.2': + optionalDependencies: + '@napi-rs/wasm-tools-android-arm-eabi': 0.0.2 + '@napi-rs/wasm-tools-android-arm64': 0.0.2 + '@napi-rs/wasm-tools-darwin-arm64': 0.0.2 + '@napi-rs/wasm-tools-darwin-x64': 0.0.2 + '@napi-rs/wasm-tools-freebsd-x64': 0.0.2 + '@napi-rs/wasm-tools-linux-arm64-gnu': 0.0.2 + '@napi-rs/wasm-tools-linux-arm64-musl': 0.0.2 + '@napi-rs/wasm-tools-linux-x64-gnu': 0.0.2 + '@napi-rs/wasm-tools-linux-x64-musl': 0.0.2 + '@napi-rs/wasm-tools-wasm32-wasi': 0.0.2 + '@napi-rs/wasm-tools-win32-arm64-msvc': 0.0.2 + '@napi-rs/wasm-tools-win32-ia32-msvc': 0.0.2 + '@napi-rs/wasm-tools-win32-x64-msvc': 0.0.2 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.16.0 + + '@octokit/auth-token@5.1.1': {} + + '@octokit/core@6.1.2': + dependencies: + '@octokit/auth-token': 5.1.1 + '@octokit/graphql': 8.1.1 + '@octokit/request': 9.1.3 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 + before-after-hook: 3.0.2 + universal-user-agent: 7.0.2 + + '@octokit/endpoint@10.1.1': + dependencies: + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 + + '@octokit/graphql@8.1.1': + dependencies: + '@octokit/request': 9.1.3 + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 + + '@octokit/openapi-types@22.2.0': {} + + '@octokit/plugin-paginate-rest@11.3.1(@octokit/core@6.1.2)': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/types': 13.5.0 + + '@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.2)': + dependencies: + '@octokit/core': 6.1.2 + + '@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@6.1.2)': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/types': 13.5.0 + + '@octokit/request-error@6.1.4': + dependencies: + '@octokit/types': 13.5.0 + + '@octokit/request@9.1.3': + dependencies: + '@octokit/endpoint': 10.1.1 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 + + '@octokit/rest@21.0.2': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/plugin-paginate-rest': 11.3.1(@octokit/core@6.1.2) + '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.2) + '@octokit/plugin-rest-endpoint-methods': 13.2.2(@octokit/core@6.1.2) + + '@octokit/types@13.5.0': + dependencies: + '@octokit/openapi-types': 22.2.0 + + '@oxc-resolver/binding-darwin-arm64@1.10.0': + optional: true + + '@oxc-resolver/binding-darwin-x64@1.10.0': + optional: true + + '@oxc-resolver/binding-linux-arm-gnueabihf@1.10.0': + optional: true + + '@oxc-resolver/binding-linux-arm64-gnu@1.10.0': + optional: true + + '@oxc-resolver/binding-linux-arm64-musl@1.10.0': + optional: true + + '@oxc-resolver/binding-linux-x64-gnu@1.10.0': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@1.10.0': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@1.10.0': + dependencies: + '@napi-rs/wasm-runtime': 0.2.4 + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@1.10.0': + optional: true + + '@oxc-resolver/binding-win32-x64-msvc@1.10.0': + optional: true + + '@oxlint/darwin-arm64@0.11.0': + optional: true + + '@oxlint/darwin-x64@0.11.0': + optional: true + + '@oxlint/linux-arm64-gnu@0.11.0': + optional: true + + '@oxlint/linux-arm64-musl@0.11.0': + optional: true + + '@oxlint/linux-x64-gnu@0.11.0': + optional: true + + '@oxlint/linux-x64-musl@0.11.0': + optional: true + + '@oxlint/win32-arm64@0.11.0': + optional: true + + '@oxlint/win32-x64@0.11.0': + optional: true + + '@rollup/pluginutils@4.2.1': + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + + '@sindresorhus/merge-streams@1.0.0': {} + + '@swc-node/core@1.13.2(@swc/core@1.6.13)(@swc/types@0.1.9)': + dependencies: + '@swc/core': 1.6.13 + '@swc/types': 0.1.9 + + '@swc-node/register@1.10.6(@swc/core@1.6.13)(@swc/types@0.1.9)(typescript@5.5.3)': + dependencies: + '@swc-node/core': 1.13.2(@swc/core@1.6.13)(@swc/types@0.1.9) + '@swc-node/sourcemap-support': 0.5.1 + '@swc/core': 1.6.13 + colorette: 2.0.20 + debug: 4.3.5 + oxc-resolver: 1.10.0 + pirates: 4.0.6 + tslib: 2.6.3 + typescript: 5.5.3 + transitivePeerDependencies: + - '@swc/types' + - supports-color + + '@swc-node/sourcemap-support@0.5.1': + dependencies: + source-map-support: 0.5.21 + tslib: 2.6.3 + + '@swc/core-darwin-arm64@1.6.13': + optional: true + + '@swc/core-darwin-x64@1.6.13': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.6.13': + optional: true + + '@swc/core-linux-arm64-gnu@1.6.13': + optional: true + + '@swc/core-linux-arm64-musl@1.6.13': + optional: true + + '@swc/core-linux-x64-gnu@1.6.13': + optional: true + + '@swc/core-linux-x64-musl@1.6.13': + optional: true + + '@swc/core-win32-arm64-msvc@1.6.13': + optional: true + + '@swc/core-win32-ia32-msvc@1.6.13': + optional: true + + '@swc/core-win32-x64-msvc@1.6.13': + optional: true + + '@swc/core@1.6.13': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.9 + optionalDependencies: + '@swc/core-darwin-arm64': 1.6.13 + '@swc/core-darwin-x64': 1.6.13 + '@swc/core-linux-arm-gnueabihf': 1.6.13 + '@swc/core-linux-arm64-gnu': 1.6.13 + '@swc/core-linux-arm64-musl': 1.6.13 + '@swc/core-linux-x64-gnu': 1.6.13 + '@swc/core-linux-x64-musl': 1.6.13 + '@swc/core-win32-arm64-msvc': 1.6.13 + '@swc/core-win32-ia32-msvc': 1.6.13 + '@swc/core-win32-x64-msvc': 1.6.13 + + '@swc/counter@0.1.3': {} + + '@swc/types@0.1.9': + dependencies: + '@swc/counter': 0.1.3 + + '@taplo/cli@0.7.0': {} + + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.6.2 + + '@types/node@22.9.0': + dependencies: + undici-types: 6.19.8 + + '@vercel/nft@0.26.4': + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + '@rollup/pluginutils': 4.2.1 + acorn: 8.11.3 + acorn-import-attributes: 1.9.5(acorn@8.11.3) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + node-gyp-build: 4.7.1 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + abbrev@1.1.1: {} + + acorn-import-attributes@1.9.5(acorn@8.11.3): + dependencies: + acorn: 8.11.3 + + acorn-walk@8.3.2: {} + + acorn@8.11.3: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-escapes@6.2.0: + dependencies: + type-fest: 3.13.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + aproba@2.0.0: {} + + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-find-index@1.0.2: {} + + arrgv@1.0.2: {} + + arrify@3.0.0: {} + + async-sema@3.1.1: {} + + ava@6.1.3: + dependencies: + '@vercel/nft': 0.26.4 + acorn: 8.11.3 + acorn-walk: 8.3.2 + ansi-styles: 6.2.1 + arrgv: 1.0.2 + arrify: 3.0.0 + callsites: 4.1.0 + cbor: 9.0.1 + chalk: 5.3.0 + chunkd: 2.0.1 + ci-info: 4.0.0 + ci-parallel-vars: 1.0.1 + cli-truncate: 4.0.0 + code-excerpt: 4.0.0 + common-path-prefix: 3.0.0 + concordance: 5.0.4 + currently-unhandled: 0.4.1 + debug: 4.3.4 + emittery: 1.0.1 + figures: 6.0.1 + globby: 14.0.0 + ignore-by-default: 2.1.0 + indent-string: 5.0.0 + is-plain-object: 5.0.0 + is-promise: 4.0.0 + matcher: 5.0.0 + memoize: 10.0.0 + ms: 2.1.3 + p-map: 7.0.2 + package-config: 5.0.0 + picomatch: 3.0.1 + plur: 5.1.0 + pretty-ms: 9.0.0 + resolve-cwd: 3.0.0 + stack-utils: 2.0.6 + strip-ansi: 7.1.0 + supertap: 3.0.1 + temp-dir: 3.0.0 + write-file-atomic: 5.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - encoding + - supports-color + + balanced-match@1.0.2: {} + + before-after-hook@3.0.2: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + blueimp-md5@2.19.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + buffer-from@1.1.2: {} + + callsites@4.1.0: {} + + cbor@9.0.1: + dependencies: + nofilter: 3.1.0 + + chalk@5.3.0: {} + + chardet@0.7.0: {} + + chownr@2.0.0: {} + + chunkd@2.0.1: {} + + ci-info@4.0.0: {} + + ci-parallel-vars@1.0.1: {} + + cli-cursor@4.0.0: + dependencies: + restore-cursor: 4.0.0 + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.0.0 + + cli-width@4.1.0: {} + + clipanion@3.2.1(typanion@3.14.0): + dependencies: + typanion: 3.14.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + code-excerpt@4.0.0: + dependencies: + convert-to-spaces: 2.0.1 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-support@1.1.3: {} + + colorette@2.0.20: {} + + commander@12.1.0: {} + + common-path-prefix@3.0.0: {} + + concat-map@0.0.1: {} + + concordance@5.0.4: + dependencies: + date-time: 3.1.0 + esutils: 2.0.3 + fast-diff: 1.3.0 + js-string-escape: 1.0.1 + lodash: 4.17.21 + md5-hex: 3.0.1 + semver: 7.5.4 + well-known-symbols: 2.0.0 + + console-control-strings@1.1.0: {} + + convert-to-spaces@2.0.1: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + currently-unhandled@0.4.1: + dependencies: + array-find-index: 1.0.2 + + date-time@3.1.0: + dependencies: + time-zone: 1.0.0 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + debug@4.3.5: + dependencies: + ms: 2.1.2 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + delegates@1.0.0: {} + + detect-libc@2.0.2: {} + + emittery@1.0.1: {} + + emnapi@1.2.0: {} + + emoji-regex@10.3.0: {} + + emoji-regex@8.0.0: {} + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + escalade@3.1.1: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@5.0.0: {} + + esprima@4.0.1: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.2.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + fast-diff@1.3.0: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + fastq@1.16.0: + dependencies: + reusify: 1.0.4 + + figures@6.0.1: + dependencies: + is-unicode-supported: 2.0.0 + + file-uri-to-path@1.0.0: {} + + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up-simple@1.0.0: {} + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + gauge@3.0.2: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.2.0: {} + + get-stream@8.0.1: {} + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globby@14.0.0: + dependencies: + '@sindresorhus/merge-streams': 1.0.0 + fast-glob: 3.3.2 + ignore: 5.3.0 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + graceful-fs@4.2.11: {} + + has-unicode@2.0.1: {} + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + + human-signals@5.0.0: {} + + husky@9.0.11: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + ignore-by-default@2.1.0: {} + + ignore@5.3.0: {} + + imurmurhash@0.1.4: {} + + indent-string@5.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + irregular-plurals@3.5.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.2.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-plain-object@5.0.0: {} + + is-promise@4.0.0: {} + + is-stream@3.0.0: {} + + is-unicode-supported@2.0.0: {} + + isexe@2.0.0: {} + + isexe@3.1.1: {} + + js-string-escape@1.0.1: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-parse-even-better-errors@4.0.0: {} + + lilconfig@3.1.2: {} + + lint-staged@15.2.7: + dependencies: + chalk: 5.3.0 + commander: 12.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 3.1.2 + listr2: 8.2.3 + micromatch: 4.0.7 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.4.5 + transitivePeerDependencies: + - supports-color + + listr2@8.2.3: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + + load-json-file@7.0.1: {} + + lodash-es@4.17.21: {} + + lodash@4.17.21: {} + + log-update@6.0.0: + dependencies: + ansi-escapes: 6.2.0 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + matcher@5.0.0: + dependencies: + escape-string-regexp: 5.0.0 + + md5-hex@3.0.1: + dependencies: + blueimp-md5: 2.19.0 + + memoize@10.0.0: + dependencies: + mimic-function: 5.0.0 + + memorystream@0.3.1: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.5: + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + micromatch@4.0.7: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + mimic-function@5.0.0: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp@1.0.4: {} + + ms@2.1.2: {} + + ms@2.1.3: {} + + mute-stream@2.0.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.7.1: {} + + nofilter@3.1.0: {} + + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 + + npm-normalize-package-bin@4.0.0: {} + + npm-run-all2@7.0.1: + dependencies: + ansi-styles: 6.2.1 + cross-spawn: 7.0.3 + memorystream: 0.3.1 + minimatch: 9.0.3 + pidtree: 0.6.0 + read-package-json-fast: 4.0.0 + shell-quote: 1.8.1 + which: 5.0.0 + + npm-run-path@5.2.0: + dependencies: + path-key: 4.0.0 + + npmlog@5.0.1: + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + + object-assign@4.1.1: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + os-tmpdir@1.0.2: {} + + oxc-resolver@1.10.0: + optionalDependencies: + '@oxc-resolver/binding-darwin-arm64': 1.10.0 + '@oxc-resolver/binding-darwin-x64': 1.10.0 + '@oxc-resolver/binding-linux-arm-gnueabihf': 1.10.0 + '@oxc-resolver/binding-linux-arm64-gnu': 1.10.0 + '@oxc-resolver/binding-linux-arm64-musl': 1.10.0 + '@oxc-resolver/binding-linux-x64-gnu': 1.10.0 + '@oxc-resolver/binding-linux-x64-musl': 1.10.0 + '@oxc-resolver/binding-wasm32-wasi': 1.10.0 + '@oxc-resolver/binding-win32-arm64-msvc': 1.10.0 + '@oxc-resolver/binding-win32-x64-msvc': 1.10.0 + + oxlint@0.11.0: + optionalDependencies: + '@oxlint/darwin-arm64': 0.11.0 + '@oxlint/darwin-x64': 0.11.0 + '@oxlint/linux-arm64-gnu': 0.11.0 + '@oxlint/linux-arm64-musl': 0.11.0 + '@oxlint/linux-x64-gnu': 0.11.0 + '@oxlint/linux-x64-musl': 0.11.0 + '@oxlint/win32-arm64': 0.11.0 + '@oxlint/win32-x64': 0.11.0 + + p-map@7.0.2: {} + + package-config@5.0.0: + dependencies: + find-up-simple: 1.0.0 + load-json-file: 7.0.1 + + parse-ms@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-type@5.0.0: {} + + picomatch@2.3.1: {} + + picomatch@3.0.1: {} + + pidtree@0.6.0: {} + + pirates@4.0.6: {} + + plur@5.1.0: + dependencies: + irregular-plurals: 3.5.0 + + prettier@3.3.3: {} + + pretty-ms@9.0.0: + dependencies: + parse-ms: 4.0.0 + + queue-microtask@1.2.3: {} + + read-package-json-fast@4.0.0: + dependencies: + json-parse-even-better-errors: 4.0.0 + npm-normalize-package-bin: 4.0.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + require-directory@2.1.1: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@5.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + restore-cursor@4.0.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + semver@6.3.1: {} + + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + + semver@7.6.3: {} + + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + + set-blocking@2.0.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.1: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + slash@5.1.0: {} + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + sprintf-js@1.0.3: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + string-argv@0.3.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.0.0: + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-final-newline@3.0.0: {} + + supertap@3.0.1: + dependencies: + indent-string: 5.0.0 + js-yaml: 3.14.1 + serialize-error: 7.0.1 + strip-ansi: 7.1.0 + + tar@6.2.0: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + temp-dir@3.0.0: {} + + time-zone@1.0.0: {} + + tinybench@3.0.0: {} + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toml@3.0.0: {} + + tr46@0.0.3: {} + + tslib@2.6.2: {} + + tslib@2.6.3: {} + + tsx@4.19.2: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.8.1 + optionalDependencies: + fsevents: 2.3.3 + + typanion@3.14.0: {} + + type-fest@0.13.1: {} + + type-fest@0.21.3: {} + + type-fest@3.13.1: {} + + typescript@5.5.3: {} + + undici-types@6.19.8: {} + + unicorn-magic@0.1.0: {} + + universal-user-agent@7.0.2: {} + + util-deprecate@1.0.2: {} + + wasm-sjlj@1.0.5: {} + + webidl-conversions@3.0.1: {} + + well-known-symbols@2.0.0: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@5.0.0: + dependencies: + isexe: 3.1.1 + + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.0.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + + y18n@5.0.8: {} + + yallist@4.0.0: {} + + yaml@2.4.5: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yoctocolors-cjs@2.1.2: {} diff --git a/scripts/fix-files.mjs b/scripts/fix-files.mjs index 5ae4cc3..3de96e3 100644 --- a/scripts/fix-files.mjs +++ b/scripts/fix-files.mjs @@ -3,18 +3,9 @@ import { readFileSync, writeFileSync } from "node:fs"; function addGenericTypes(filename) { const content = readFileSync(filename, "utf8"); const updatedContent = content - .replace( - /export declare class List\b(.*){/, - "export declare class List$1{", - ) - .replace( - /export declare class Map\b(.*){/, - "export declare class Map$1{", - ) - .replace( - /export declare class Set\b(.*){/, - "export declare class Set$1{", - ); + .replace(/export declare class List\b(.*){/, "export declare class List$1{") + .replace(/export declare class Map\b(.*){/, "export declare class Map$1{") + .replace(/export declare class Set\b(.*){/, "export declare class Set$1{"); writeFileSync(filename, updatedContent); } diff --git a/simple-test.js b/simple-test.js new file mode 100644 index 0000000..fb76fb9 --- /dev/null +++ b/simple-test.js @@ -0,0 +1,5 @@ +const { plus100 } = require('./index') + +console.assert(plus100(0) === 100, 'Simple test failed') + +console.info('Simple test passed') diff --git a/src/cluster/scylla_cluster.rs b/src/cluster/scylla_cluster.rs index 484995b..f93b1ef 100644 --- a/src/cluster/scylla_cluster.rs +++ b/src/cluster/scylla_cluster.rs @@ -5,7 +5,7 @@ use openssl::ssl::{SslContextBuilder, SslFiletype}; use crate::{ cluster::{ - cluster_config::{compression::Compression, ClusterConfig}, + cluster_config::{ClusterConfig, compression::Compression}, execution_profile::ExecutionProfile, }, session::scylla_session::ScyllaSession, diff --git a/src/session/topology.rs b/src/session/topology.rs index 8d3a878..955c825 100644 --- a/src/session/topology.rs +++ b/src/session/topology.rs @@ -2,8 +2,8 @@ use std::collections::HashMap; use std::sync::Arc; use napi::bindgen_prelude::Either3; -use scylla::transport::topology::{Keyspace, MaterializedView, Strategy, Table}; use scylla::transport::ClusterData; +use scylla::transport::topology::{Keyspace, MaterializedView, Strategy, Table}; // ============= ClusterData ============= // #[napi] diff --git a/src/types/tracing.rs b/src/types/tracing.rs index 84b49f2..ea4a5d1 100644 --- a/src/types/tracing.rs +++ b/src/types/tracing.rs @@ -88,4 +88,4 @@ impl From for TracingEvent { } pub type TracingReturn = - HashMap>, serde_json::Value>>; \ No newline at end of file + HashMap>, serde_json::Value>>; diff --git a/tsconfig.json b/tsconfig.json index 69fbff2..550951b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,11 +9,6 @@ "esModuleInterop": true, "allowSyntheticDefaultImports": true }, - "include": [ - "." - ], - "exclude": [ - "node_modules", - "__test__" - ] + "include": ["."], + "exclude": ["node_modules", "benchmark", "__test__"] } diff --git a/wasi-worker-browser.mjs b/wasi-worker-browser.mjs new file mode 100644 index 0000000..8b1b172 --- /dev/null +++ b/wasi-worker-browser.mjs @@ -0,0 +1,32 @@ +import { instantiateNapiModuleSync, MessageHandler, WASI } from '@napi-rs/wasm-runtime' + +const handler = new MessageHandler({ + onLoad({ wasmModule, wasmMemory }) { + const wasi = new WASI({ + print: function () { + // eslint-disable-next-line no-console + console.log.apply(console, arguments) + }, + printErr: function() { + // eslint-disable-next-line no-console + console.error.apply(console, arguments) + }, + }) + return instantiateNapiModuleSync(wasmModule, { + childThread: true, + wasi, + overwriteImports(importObject) { + importObject.env = { + ...importObject.env, + ...importObject.napi, + ...importObject.emnapi, + memory: wasmMemory, + } + }, + }) + }, +}) + +globalThis.onmessage = function (e) { + handler.handle(e) +} diff --git a/wasi-worker.mjs b/wasi-worker.mjs new file mode 100644 index 0000000..84b448f --- /dev/null +++ b/wasi-worker.mjs @@ -0,0 +1,63 @@ +import fs from "node:fs"; +import { createRequire } from "node:module"; +import { parse } from "node:path"; +import { WASI } from "node:wasi"; +import { parentPort, Worker } from "node:worker_threads"; + +const require = createRequire(import.meta.url); + +const { instantiateNapiModuleSync, MessageHandler, getDefaultContext } = require("@napi-rs/wasm-runtime"); + +if (parentPort) { + parentPort.on("message", (data) => { + globalThis.onmessage({ data }); + }); +} + +Object.assign(globalThis, { + self: globalThis, + require, + Worker, + importScripts: function (f) { + ;(0, eval)(fs.readFileSync(f, "utf8") + "//# sourceURL=" + f); + }, + postMessage: function (msg) { + if (parentPort) { + parentPort.postMessage(msg); + } + }, +}); + +const emnapiContext = getDefaultContext(); + +const __rootDir = parse(process.cwd()).root; + +const handler = new MessageHandler({ + onLoad({ wasmModule, wasmMemory }) { + const wasi = new WASI({ + version: 'preview1', + env: process.env, + preopens: { + [__rootDir]: __rootDir, + }, + }); + + return instantiateNapiModuleSync(wasmModule, { + childThread: true, + wasi, + context: emnapiContext, + overwriteImports(importObject) { + importObject.env = { + ...importObject.env, + ...importObject.napi, + ...importObject.emnapi, + memory: wasmMemory + }; + }, + }); + }, +}); + +globalThis.onmessage = function (e) { + handler.handle(e); +};