From aac550181f6d144649ce9ad0ff823967b29668bf Mon Sep 17 00:00:00 2001 From: Tyler Nickerson Date: Mon, 6 May 2024 19:57:48 -0700 Subject: [PATCH] feat(v2): add Rust Node bindings (#760) --- .gitattributes | 10 +- .github/workflows/napi.yml | 481 ++ .../{release-please.yml => release.yml} | 19 +- .github/workflows/test.yml | 36 +- .github/workflows/test2.yml | 24 - .gitignore | 5 +- .goreleaser.yaml | 48 - .prettierrc.json | 1 + .tool-versions | 5 +- .vscode/settings.json | 3 +- Cargo.lock | 919 ++- Cargo.toml | 5 +- cli/src/compile.rs | 38 +- cli/src/dump.rs | 5 +- cli/src/lookup.rs | 2 +- cli/src/print/print.rs | 2 +- cli/src/serve/lookup.rs | 2 +- cli/src/serve/search.rs | 2 +- examples/dictionary.xml | 22 +- examples/empty.xml | 4 +- examples/example1.xml | 64 +- examples/example2.xml | 20 +- examples/wiktionary.xml | 3 + js/.eslintrc.json | 16 - js/.npmrc | 1 - js/CHANGELOG.md | 205 - js/justfile | 29 - js/package-lock.json | 5855 ----------------- js/package.json | 39 - js/rome.json | 5 - js/src/__generated__/compile-payload.ts | 60 - js/src/__generated__/enums.ts | 3 - js/src/__generated__/index.ts | 2 - js/src/__generated__/lookup-payload.ts | 98 - js/src/__generated__/markdown-strategy.ts | 7 - js/src/__generated__/method.ts | 11 - js/src/__generated__/odict-method.ts | 12 - js/src/__generated__/pos.ts | 118 - js/src/__generated__/search-payload.ts | 68 - js/src/__generated__/service.ts | 9 - js/src/__generated__/split-payload.ts | 58 - js/src/__generated__/write-payload.ts | 60 - js/src/dictionary.ts | 221 - js/src/index.ts | 2 - js/src/ipc.ts | 249 - js/src/service.ts | 100 - js/src/types.ts | 72 - js/src/utils.ts | 18 - js/test/__snapshots__/dictionary.spec.ts.snap | 390 -- js/test/dictionary.spec.ts | 138 - js/test/pos.spec.ts | 9 - js/test/utils.spec.ts | 11 - justfile | 23 +- lib/Cargo.toml | 18 +- lib/benches/helpers.rs | 17 + lib/benches/lib.rs | 48 + lib/src/core/lookup.rs | 90 +- lib/src/core/mod.rs | 23 +- lib/src/core/read.rs | 10 +- lib/src/core/split.rs | 12 +- lib/src/core/write.rs | 16 +- lib/src/dump/mod.rs | 15 - lib/src/fs.rs | 11 + lib/src/{dump => }/json/definition.rs | 0 lib/src/{dump => }/json/dictionary.rs | 0 lib/src/{dump => }/json/entry.rs | 0 lib/src/{dump => }/json/etymology.rs | 0 lib/src/{dump => }/json/group.rs | 0 lib/src/{dump => }/json/json.rs | 0 lib/src/{dump => }/json/mod.rs | 0 lib/src/{dump => }/json/note.rs | 0 lib/src/{dump => }/json/sense.rs | 0 lib/src/{dump => }/json/utils.rs | 0 lib/src/lib.rs | 11 +- lib/src/models/mdstring.rs | 11 +- lib/src/models/pos.rs | 10 + lib/src/search/charabia.rs | 2 +- lib/src/search/constants.rs | 1 + lib/src/search/index.rs | 2 +- lib/src/search/search.rs | 6 +- lib/src/{dump => }/sql/definitions.rs | 2 +- lib/src/{dump => }/sql/dictionaries.rs | 0 lib/src/{dump => }/sql/entries.rs | 0 lib/src/{dump => }/sql/etymologies.rs | 0 lib/src/{dump => }/sql/examples.rs | 2 +- lib/src/{dump => }/sql/groups.rs | 0 lib/src/{dump => }/sql/mod.rs | 0 lib/src/{dump => }/sql/notes.rs | 0 lib/src/{dump => }/sql/senses.rs | 0 lib/src/{dump => }/sql/sql.rs | 2 +- lib/src/{dump => }/sql/utils.rs | 0 lib/src/{dump => }/xml.rs | 0 lib/tests/dump.rs | 2 +- lib/tests/helpers.rs | 3 + lib/tests/lookup.rs | 82 + lib/tests/search.rs | 2 +- .../lookup__lookup_tests__lookup.snap | 60 + lib/tests/split.rs | 2 +- lib/tests/sql.rs | 2 +- node/.cargo/config.toml | 5 + node/.gitignore | 197 + node/.npmignore | 13 + node/Cargo.toml | 24 + node/build.rs | 5 + node/index.d.ts | 12 + node/index.js | 300 + {js => node}/jest.config.cjs | 0 node/justfile | 28 + node/node.darwin-arm64.node | Bin 387056 -> 0 bytes node/node.node | Bin 1368704 -> 0 bytes node/npm/android-arm-eabi/README.md | 3 + node/npm/android-arm-eabi/package.json | 18 + node/npm/android-arm64/README.md | 3 + node/npm/android-arm64/package.json | 18 + node/npm/darwin-arm64/README.md | 3 + node/npm/darwin-arm64/package.json | 18 + node/npm/darwin-universal/README.md | 3 + node/npm/darwin-universal/package.json | 15 + node/npm/darwin-x64/README.md | 3 + node/npm/darwin-x64/package.json | 18 + node/npm/freebsd-x64/README.md | 3 + node/npm/freebsd-x64/package.json | 18 + node/npm/linux-arm-gnueabihf/README.md | 3 + node/npm/linux-arm-gnueabihf/package.json | 18 + node/npm/linux-arm64-gnu/README.md | 3 + node/npm/linux-arm64-gnu/package.json | 21 + node/npm/linux-arm64-musl/README.md | 3 + node/npm/linux-arm64-musl/package.json | 21 + node/npm/linux-riscv64-gnu/README.md | 3 + node/npm/linux-riscv64-gnu/package.json | 21 + node/npm/linux-x64-gnu/README.md | 3 + node/npm/linux-x64-gnu/package.json | 21 + node/npm/linux-x64-musl/README.md | 3 + node/npm/linux-x64-musl/package.json | 21 + node/npm/win32-arm64-msvc/README.md | 3 + node/npm/win32-arm64-msvc/package.json | 18 + node/npm/win32-ia32-msvc/README.md | 3 + node/npm/win32-ia32-msvc/package.json | 18 + node/npm/win32-x64-msvc/README.md | 3 + node/npm/win32-x64-msvc/package.json | 18 + node/package.json | 63 + node/pnpm-lock.yaml | 2702 ++++++++ node/rustfmt.toml | 2 + node/src/dictionary.rs | 260 + node/src/lib.rs | 8 + node/src/types/definition.rs | 35 + node/src/types/dictionary.rs | 21 + node/src/types/entry.rs | 35 + node/src/types/etymology.rs | 39 + node/src/types/example.rs | 18 + node/src/types/group.rs | 29 + node/src/types/index.rs | 39 + node/src/types/lookup.rs | 48 + node/src/types/mdstring.rs | 60 + node/src/types/mod.rs | 22 + node/src/types/note.rs | 29 + node/src/types/search.rs | 45 + node/src/types/sense.rs | 28 + node/src/types/split.rs | 25 + node/src/utils.rs | 26 + .../__snapshots__/dictionary.spec.ts.snap | 265 + node/tests/dictionary.spec.ts | 108 + {js => node}/tsconfig.json | 2 +- 163 files changed, 6386 insertions(+), 8505 deletions(-) create mode 100644 .github/workflows/napi.yml rename .github/workflows/{release-please.yml => release.yml} (90%) delete mode 100644 .github/workflows/test2.yml delete mode 100644 .goreleaser.yaml create mode 100644 .prettierrc.json create mode 100644 examples/wiktionary.xml delete mode 100644 js/.eslintrc.json delete mode 100644 js/.npmrc delete mode 100644 js/CHANGELOG.md delete mode 100644 js/justfile delete mode 100644 js/package-lock.json delete mode 100644 js/package.json delete mode 100644 js/rome.json delete mode 100644 js/src/__generated__/compile-payload.ts delete mode 100644 js/src/__generated__/enums.ts delete mode 100644 js/src/__generated__/index.ts delete mode 100644 js/src/__generated__/lookup-payload.ts delete mode 100644 js/src/__generated__/markdown-strategy.ts delete mode 100644 js/src/__generated__/method.ts delete mode 100644 js/src/__generated__/odict-method.ts delete mode 100644 js/src/__generated__/pos.ts delete mode 100644 js/src/__generated__/search-payload.ts delete mode 100644 js/src/__generated__/service.ts delete mode 100644 js/src/__generated__/split-payload.ts delete mode 100644 js/src/__generated__/write-payload.ts delete mode 100644 js/src/dictionary.ts delete mode 100644 js/src/index.ts delete mode 100644 js/src/ipc.ts delete mode 100644 js/src/service.ts delete mode 100644 js/src/types.ts delete mode 100644 js/src/utils.ts delete mode 100644 js/test/__snapshots__/dictionary.spec.ts.snap delete mode 100644 js/test/dictionary.spec.ts delete mode 100644 js/test/pos.spec.ts delete mode 100644 js/test/utils.spec.ts create mode 100644 lib/benches/helpers.rs create mode 100644 lib/benches/lib.rs delete mode 100644 lib/src/dump/mod.rs create mode 100644 lib/src/fs.rs rename lib/src/{dump => }/json/definition.rs (100%) rename lib/src/{dump => }/json/dictionary.rs (100%) rename lib/src/{dump => }/json/entry.rs (100%) rename lib/src/{dump => }/json/etymology.rs (100%) rename lib/src/{dump => }/json/group.rs (100%) rename lib/src/{dump => }/json/json.rs (100%) rename lib/src/{dump => }/json/mod.rs (100%) rename lib/src/{dump => }/json/note.rs (100%) rename lib/src/{dump => }/json/sense.rs (100%) rename lib/src/{dump => }/json/utils.rs (100%) rename lib/src/{dump => }/sql/definitions.rs (97%) rename lib/src/{dump => }/sql/dictionaries.rs (100%) rename lib/src/{dump => }/sql/entries.rs (100%) rename lib/src/{dump => }/sql/etymologies.rs (100%) rename lib/src/{dump => }/sql/examples.rs (97%) rename lib/src/{dump => }/sql/groups.rs (100%) rename lib/src/{dump => }/sql/mod.rs (100%) rename lib/src/{dump => }/sql/notes.rs (100%) rename lib/src/{dump => }/sql/senses.rs (100%) rename lib/src/{dump => }/sql/sql.rs (95%) rename lib/src/{dump => }/sql/utils.rs (100%) rename lib/src/{dump => }/xml.rs (100%) create mode 100644 lib/tests/lookup.rs create mode 100644 lib/tests/snapshots/lookup__lookup_tests__lookup.snap create mode 100644 node/.cargo/config.toml create mode 100644 node/.gitignore create mode 100644 node/.npmignore create mode 100644 node/Cargo.toml create mode 100644 node/build.rs create mode 100644 node/index.d.ts create mode 100644 node/index.js rename {js => node}/jest.config.cjs (100%) create mode 100644 node/justfile delete mode 100755 node/node.darwin-arm64.node delete mode 100755 node/node.node create mode 100644 node/npm/android-arm-eabi/README.md create mode 100644 node/npm/android-arm-eabi/package.json create mode 100644 node/npm/android-arm64/README.md create mode 100644 node/npm/android-arm64/package.json create mode 100644 node/npm/darwin-arm64/README.md create mode 100644 node/npm/darwin-arm64/package.json create mode 100644 node/npm/darwin-universal/README.md create mode 100644 node/npm/darwin-universal/package.json create mode 100644 node/npm/darwin-x64/README.md create mode 100644 node/npm/darwin-x64/package.json create mode 100644 node/npm/freebsd-x64/README.md create mode 100644 node/npm/freebsd-x64/package.json create mode 100644 node/npm/linux-arm-gnueabihf/README.md create mode 100644 node/npm/linux-arm-gnueabihf/package.json create mode 100644 node/npm/linux-arm64-gnu/README.md create mode 100644 node/npm/linux-arm64-gnu/package.json create mode 100644 node/npm/linux-arm64-musl/README.md create mode 100644 node/npm/linux-arm64-musl/package.json create mode 100644 node/npm/linux-riscv64-gnu/README.md create mode 100644 node/npm/linux-riscv64-gnu/package.json create mode 100644 node/npm/linux-x64-gnu/README.md create mode 100644 node/npm/linux-x64-gnu/package.json create mode 100644 node/npm/linux-x64-musl/README.md create mode 100644 node/npm/linux-x64-musl/package.json create mode 100644 node/npm/win32-arm64-msvc/README.md create mode 100644 node/npm/win32-arm64-msvc/package.json create mode 100644 node/npm/win32-ia32-msvc/README.md create mode 100644 node/npm/win32-ia32-msvc/package.json create mode 100644 node/npm/win32-x64-msvc/README.md create mode 100644 node/npm/win32-x64-msvc/package.json create mode 100644 node/package.json create mode 100644 node/pnpm-lock.yaml create mode 100644 node/rustfmt.toml create mode 100644 node/src/dictionary.rs create mode 100644 node/src/lib.rs create mode 100644 node/src/types/definition.rs create mode 100644 node/src/types/dictionary.rs create mode 100644 node/src/types/entry.rs create mode 100644 node/src/types/etymology.rs create mode 100644 node/src/types/example.rs create mode 100644 node/src/types/group.rs create mode 100644 node/src/types/index.rs create mode 100644 node/src/types/lookup.rs create mode 100644 node/src/types/mdstring.rs create mode 100644 node/src/types/mod.rs create mode 100644 node/src/types/note.rs create mode 100644 node/src/types/search.rs create mode 100644 node/src/types/sense.rs create mode 100644 node/src/types/split.rs create mode 100644 node/src/utils.rs create mode 100644 node/tests/__snapshots__/dictionary.spec.ts.snap create mode 100644 node/tests/dictionary.spec.ts rename {js => node}/tsconfig.json (94%) diff --git a/.gitattributes b/.gitattributes index 097f9f98..14146d1a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,9 +1 @@ -# -# https://help.github.com/articles/dealing-with-line-endings/ -# -# Linux start script should use lf -/gradlew text eol=lf - -# These are Windows script files and should use crlf -*.bat text eol=crlf - +*.xml filter=lfs diff=lfs merge=lfs -text diff --git a/.github/workflows/napi.yml b/.github/workflows/napi.yml new file mode 100644 index 00000000..7bea585c --- /dev/null +++ b/.github/workflows/napi.yml @@ -0,0 +1,481 @@ +name: Node + +env: + DEBUG: napi:* + APP_NAME: node + MACOSX_DEPLOYMENT_TARGET: "10.13" + +defaults: + run: + working-directory: ./node + +permissions: + contents: write + id-token: write + +on: + push: + tags: + - "node-*" + +jobs: + build: + strategy: + fail-fast: false + matrix: + settings: + - host: macos-latest + target: x86_64-apple-darwin + build: pnpm build + - host: windows-latest + build: pnpm build + target: x86_64-pc-windows-msvc + - host: windows-latest + build: | + pnpm build --target i686-pc-windows-msvc + pnpm test + target: i686-pc-windows-msvc + - host: ubuntu-latest + target: x86_64-unknown-linux-gnu + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian + build: pnpm build --target x86_64-unknown-linux-gnu + - host: ubuntu-latest + target: x86_64-unknown-linux-musl + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + build: pnpm build + - host: macos-latest + target: aarch64-apple-darwin + build: pnpm build --target aarch64-apple-darwin + - host: ubuntu-latest + target: aarch64-unknown-linux-gnu + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 + build: pnpm build --target aarch64-unknown-linux-gnu + - host: ubuntu-latest + target: armv7-unknown-linux-gnueabihf + setup: | + sudo apt-get update + sudo apt-get install gcc-arm-linux-gnueabihf -y + build: pnpm build --target armv7-unknown-linux-gnueabihf + - 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 + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + build: |- + set -e && + rustup target add aarch64-unknown-linux-musl && + pnpm build --target aarch64-unknown-linux-musl + - host: windows-latest + target: aarch64-pc-windows-msvc + build: pnpm build --target aarch64-pc-windows-msvc + - host: ubuntu-latest + target: riscv64gc-unknown-linux-gnu + setup: | + sudo apt-get update + sudo apt-get install gcc-riscv64-linux-gnu -y + build: pnpm build --target riscv64gc-unknown-linux-gnu + name: stable - ${{ matrix.settings.target }} - node@20 + runs-on: ${{ matrix.settings.host }} + steps: + - uses: actions/checkout@v4 + - name: Setup PNPM + run: corepack enable pnpm + - name: Setup node + uses: actions/setup-node@v4 + if: ${{ !matrix.settings.docker }} + with: + node-version: 20 + cache: pnpm + - name: Install + uses: dtolnay/rust-toolchain@stable + if: ${{ !matrix.settings.docker }} + with: + toolchain: stable + targets: ${{ matrix.settings.target }} + - name: Cache cargo + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + .cargo-cache + target/ + key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} + - uses: goto-bus-stop/setup-zig@v2 + if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }} + with: + version: 0.11.0 + - name: Setup toolchain + run: ${{ matrix.settings.setup }} + if: ${{ matrix.settings.setup }} + shell: bash + - name: Setup node x86 + if: matrix.settings.target == 'i686-pc-windows-msvc' + run: pnpm config set supportedArchitectures.cpu "ia32" + shell: bash + - name: Install dependencies + run: pnpm install + - name: Setup node x86 + uses: actions/setup-node@v4 + if: matrix.settings.target == 'i686-pc-windows-msvc' + with: + node-version: 20 + 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: ${{ matrix.settings.build }} + - name: Build + run: ${{ matrix.settings.build }} + if: ${{ !matrix.settings.docker }} + shell: bash + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: bindings-${{ matrix.settings.target }} + path: ${{ env.APP_NAME }}.*.node + if-no-files-found: error + build-freebsd: + runs-on: macos-12 + name: Build FreeBSD + steps: + - uses: actions/checkout@v4 + - name: Build + id: build + uses: cross-platform-actions/action@v0.22.0 + env: + DEBUG: napi:* + RUSTUP_IO_THREADS: 1 + with: + operating_system: freebsd + version: "13.2" + 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 pnpm --ignore-scripts + curl https://sh.rustup.rs -sSf --output rustup.sh + sh rustup.sh -y --profile minimal --default-toolchain stable + 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 + pnpm test + rm -rf node_modules + rm -rf target + rm -rf .pnpm/cache + - 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: macos-latest + target: x86_64-apple-darwin + - host: windows-latest + target: x86_64-pc-windows-msvc + node: + - "18" + - "20" + runs-on: ${{ matrix.settings.host }} + steps: + - uses: actions/checkout@v4 + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + cache: pnpm + - name: Install dependencies + run: pnpm install + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: bindings-${{ matrix.settings.target }} + path: . + - name: List packages + run: ls -R . + shell: bash + - name: Test bindings + run: pnpm test + test-linux-x64-gnu-binding: + name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }} + needs: + - build + strategy: + fail-fast: false + matrix: + node: + - "18" + - "20" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + cache: pnpm + - name: Install dependencies + run: pnpm install + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: bindings-x86_64-unknown-linux-gnu + path: . + - name: List packages + run: ls -R . + shell: bash + - name: Test bindings + run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim pnpm test + test-linux-x64-musl-binding: + name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }} + needs: + - build + strategy: + fail-fast: false + matrix: + node: + - "18" + - "20" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + cache: pnpm + - name: Install dependencies + run: | + pnpm config set supportedArchitectures.libc "musl" + pnpm install + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: bindings-x86_64-unknown-linux-musl + path: . + - name: List packages + run: ls -R . + shell: bash + - name: Test bindings + run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-alpine pnpm test + test-linux-aarch64-gnu-binding: + name: Test bindings on aarch64-unknown-linux-gnu - node@${{ matrix.node }} + needs: + - build + strategy: + fail-fast: false + matrix: + node: + - "18" + - "20" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: bindings-aarch64-unknown-linux-gnu + path: . + - name: List packages + run: ls -R . + shell: bash + - name: Install dependencies + run: | + pnpm config set supportedArchitectures.cpu "arm64" + pnpm config set supportedArchitectures.libc "glibc" + pnpm install + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - name: Setup and run tests + uses: addnab/docker-run-action@v3 + with: + image: node:${{ matrix.node }}-slim + options: "--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build" + run: | + set -e + pnpm test + ls -la + test-linux-aarch64-musl-binding: + name: Test bindings on aarch64-unknown-linux-musl - node@${{ matrix.node }} + needs: + - build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: bindings-aarch64-unknown-linux-musl + path: . + - name: List packages + run: ls -R . + shell: bash + - name: Install dependencies + run: | + pnpm config set supportedArchitectures.cpu "arm64" + pnpm config set supportedArchitectures.libc "musl" + pnpm install + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - name: Setup and run tests + uses: addnab/docker-run-action@v3 + with: + image: node:lts-alpine + options: "--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build" + run: | + set -e + pnpm test + test-linux-arm-gnueabihf-binding: + name: Test bindings on armv7-unknown-linux-gnueabihf - node@${{ matrix.node }} + needs: + - build + strategy: + fail-fast: false + matrix: + node: + - "18" + - "20" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: bindings-armv7-unknown-linux-gnueabihf + path: . + - name: List packages + run: ls -R . + shell: bash + - name: Install dependencies + run: | + pnpm config set supportedArchitectures.cpu "arm" + pnpm install + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: arm + - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - name: Setup and run tests + uses: addnab/docker-run-action@v3 + with: + image: node:${{ matrix.node }}-bullseye-slim + options: "--platform linux/arm/v7 -v ${{ github.workspace }}:/build -w /build" + run: | + set -e + pnpm test + ls -la + universal-macOS: + name: Build universal macOS binary + needs: + - build + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + - name: Install dependencies + run: pnpm install + - name: Download macOS x64 artifact + uses: actions/download-artifact@v4 + with: + name: bindings-x86_64-apple-darwin + path: artifacts + - name: Download macOS arm64 artifact + uses: actions/download-artifact@v4 + with: + name: bindings-aarch64-apple-darwin + path: artifacts + - name: Combine binaries + run: pnpm universal + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: bindings-universal-apple-darwin + path: ${{ env.APP_NAME }}.*.node + if-no-files-found: error + publish: + name: Publish + runs-on: ubuntu-latest + needs: + - build-freebsd + - test-macOS-windows-binding + - test-linux-x64-gnu-binding + - test-linux-x64-musl-binding + - test-linux-aarch64-gnu-binding + - test-linux-aarch64-musl-binding + - test-linux-arm-gnueabihf-binding + - universal-macOS + steps: + - uses: actions/checkout@v4 + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + - name: Install dependencies + run: pnpm install + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + - name: Move 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]\+$"; + 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]\+"; + then + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc + npm publish --tag next --access public + else + echo "Not a release, skipping publish" + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release.yml similarity index 90% rename from .github/workflows/release-please.yml rename to .github/workflows/release.yml index 08e814c9..bdf293b6 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release.yml @@ -1,10 +1,10 @@ -name: Release Please +name: Release Please on: - push: - branches: - - main - + push: + branches: + - main + permissions: contents: write pull-requests: write @@ -16,7 +16,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v4 with: fetch-depth: 0 - id: release @@ -24,6 +24,7 @@ jobs: uses: google-github-actions/release-please-action@v3.7.6 with: command: manifest + release-type: manifest token: ${{ secrets.GITHUB_TOKEN }} monorepo-tags: true bump-patch-for-minor-pre-major: true @@ -40,12 +41,12 @@ jobs: ${{ runner.os }}-asdf- - name: Install dependencies in .tool-versions uses: asdf-vm/actions/install@v2 - - name: Fetch tags + - name: Fetch tags run: git fetch --force --tags - name: Publish CLI uses: goreleaser/goreleaser-action@v5 if: steps.release.outputs.release_created - env: + env: HOMEBREW_GH_TOKEN: ${{ secrets.HOMEBREW_GH_TOKEN }} with: args: release --clean @@ -63,4 +64,4 @@ jobs: if: steps.release.outputs.python--release_created env: POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }} - run: just python publish \ No newline at end of file + run: just python publish diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0f80005a..c0ab9366 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,11 +1,10 @@ -name: Build & Test +name: Run Tests on: push: - # TODO: update this so it runs on main again - branches: [main_] + branches: [v2] pull_request: - branches: [main_] + branches: [v2] jobs: test: @@ -14,32 +13,13 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - - name: Setup asdf - uses: asdf-vm/actions/setup@v2 - - name: Cache asdf - id: cache-asdf - uses: actions/cache@v3 with: - path: | - /home/runner/.asdf - key: ${{ runner.os }}-asdf-${{ hashFiles('**/.tool-versions') }} - restore-keys: | - ${{ runner.os }}-asdf- - - name: Cache Poetry dependencies - uses: actions/cache@v3 - with: - path: | - /home/runner/.venv - key: ${{ runner.os }}-poetry-${{ hashFiles('**/python/poetry.lock') }} - restore-keys: | - ${{ runner.os }}-poetry- - - name: Install dependencies in .tool-versions - uses: asdf-vm/actions/install@v2 - - name: Run build - run: just build-all --snapshot + lfs: true + - name: Setup Mise + uses: jdx/mise-action@v2 + - name: Setup dependencies + run: just deps - name: Run tests - env: - POETRY_VIRTUALENVS_IN_PROJECT: true run: just test - uses: actions/upload-artifact@v4 if: ${{ failure() }} diff --git a/.github/workflows/test2.yml b/.github/workflows/test2.yml deleted file mode 100644 index c0abe6ad..00000000 --- a/.github/workflows/test2.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Run Tests - -on: - push: - branches: [v2] - pull_request: - branches: [v2] - -jobs: - test: - name: Test - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Setup Mise - uses: jdx/mise-action@v2 - - name: Run tests - run: just test - - uses: actions/upload-artifact@v4 - if: ${{ failure() }} - with: - name: code - path: /home/runner/work/odict diff --git a/.gitignore b/.gitignore index 290a6f30..d302df1e 100644 --- a/.gitignore +++ b/.gitignore @@ -755,4 +755,7 @@ TSWLatexianTemp* *.wasm # WASM preview -.preview \ No newline at end of file +.preview + +# Node bindings +*.node \ No newline at end of file diff --git a/.goreleaser.yaml b/.goreleaser.yaml deleted file mode 100644 index b8b9f439..00000000 --- a/.goreleaser.yaml +++ /dev/null @@ -1,48 +0,0 @@ -before: - hooks: - - go work sync - -dist: bin - -project_name: odict - -git: - ignore_tags: - - js-* - - python-* - - jvm-* - - wasm-* - -builds: - - id: odict - main: ./odict.go - ldflags: - - -X 'github.com/TheOpenDictionary/odict/cli.version={{.Version}}' - goos: - - linux - - darwin - - windows - env: - - CGO_ENABLED=0 - - id: single - main: ./odict.go - binary: odict - ldflags: - - -X 'github.com/TheOpenDictionary/odict/cli.version={{.Version}}' - no_unique_dist_dir: true - env: - - CGO_ENABLED=0 - -archives: - - builds: - - odict - -brews: - - name: odict - homepage: "https://odict.org/" - description: "A lightning-fast dictionary compiler and toolchain" - folder: Formula - repository: - owner: TheOpenDictionary - name: homebrew-odict - token: "{{ .Env.HOMEBREW_GH_TOKEN }}" \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.tool-versions b/.tool-versions index 52e865b2..14f89077 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,7 +1,6 @@ python 3.12.3 gradle 7.5.1 kotlin 1.9.23 -java adoptopenjdk-21.0.3+9.0.LTS +java adoptopenjdk-21.0.3+9.0.LTS nodejs 20.12.2 -just 1.24.0 -rust 1.78.0 \ No newline at end of file +just latest diff --git a/.vscode/settings.json b/.vscode/settings.json index 0ca4d0be..2d87260f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "java.compile.nullAnalysis.mode": "automatic" + "java.compile.nullAnalysis.mode": "automatic", + "rust-analyzer.procMacro.ignored": { "napi-derive": ["napi"] } } \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index a423f0bc..e6984cc2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "bytes", "futures-core", "futures-sink", @@ -29,9 +29,9 @@ dependencies = [ "actix-rt", "actix-service", "actix-utils", - "ahash 0.8.9", - "base64", - "bitflags 2.4.2", + "ahash 0.8.11", + "base64 0.21.7", + "bitflags 2.5.0", "brotli", "bytes", "bytestring", @@ -55,7 +55,7 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "zstd 0.13.0", + "zstd", ] [[package]] @@ -65,7 +65,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -144,7 +144,7 @@ dependencies = [ "actix-service", "actix-utils", "actix-web-codegen", - "ahash 0.8.9", + "ahash 0.8.11", "bytes", "bytestring", "cfg-if", @@ -178,7 +178,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -209,9 +209,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "getrandom", @@ -222,9 +222,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -246,53 +246,60 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -300,38 +307,38 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" +checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" [[package]] name = "arc-swap" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -348,6 +355,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bincode" version = "1.3.3" @@ -365,15 +378,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bitpacking" -version = "0.8.4" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c7d2ac73c167c06af4a5f37e6e59d84148d57ccbe4480b76f0273eefea82d7" +checksum = "4c1d3e2bfd8d06048a179f7b17afc3188effa10385e7b00dc65af6aae732ea92" dependencies = [ "crunchy", ] @@ -422,9 +435,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.3" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytecheck" @@ -456,9 +469,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "bytestring" @@ -469,13 +482,21 @@ dependencies = [ "bytes", ] +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + [[package]] name = "cc" -version = "1.0.88" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" +checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4" dependencies = [ + "jobserver", "libc", + "once_cell", ] [[package]] @@ -524,6 +545,33 @@ dependencies = [ "zerovec", ] +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + [[package]] name = "clap" version = "4.5.4" @@ -555,7 +603,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -582,9 +630,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "console" @@ -605,6 +653,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "cookie" version = "0.16.2" @@ -640,11 +697,47 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + [[package]] name = "crossbeam-channel" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" dependencies = [ "crossbeam-utils", ] @@ -711,6 +804,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "ctor" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" +dependencies = [ + "quote", + "syn 2.0.60", +] + [[package]] name = "deranged" version = "0.3.11" @@ -727,7 +830,7 @@ version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ - "convert_case", + "convert_case 0.4.0", "proc-macro2", "quote", "rustc_version", @@ -736,9 +839,9 @@ dependencies = [ [[package]] name = "deunicode" -version = "1.4.3" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6e854126756c496b8c81dec88f9a706b15b875c5849d4097a3854476b9fdf94" +checksum = "322ef0094744e63628e6f0eb2295517f79276a5b342a4c2ff3042566ca181d4e" [[package]] name = "digest" @@ -773,15 +876,15 @@ dependencies = [ [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "either" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" [[package]] name = "encode_unicode" @@ -855,9 +958,9 @@ checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -912,15 +1015,15 @@ dependencies = [ [[package]] name = "fastdivide" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25c7df09945d65ea8d70b3321547ed414bbc540aad5bac6883d021b970f35b04" +checksum = "59668941c55e5c186b8b58c391629af56774ec768f73c08bbcd56f09348eb00b" [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "filetime" @@ -930,7 +1033,7 @@ checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.4.1", "windows-sys 0.52.0", ] @@ -942,9 +1045,9 @@ checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "miniz_oxide", @@ -967,12 +1070,12 @@ dependencies = [ [[package]] name = "fs4" -version = "0.6.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" +checksum = "21dabded2e32cd57ded879041205c60a4a4c4bab47bd0fd2fa8b01f30849f02b" dependencies = [ "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1060,9 +1163,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -1083,9 +1186,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "h2" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -1100,6 +1203,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1111,11 +1224,11 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", "allocator-api2", ] @@ -1133,9 +1246,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "htmlescape" @@ -1145,9 +1258,9 @@ checksum = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163" [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -1184,12 +1297,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -1213,7 +1326,7 @@ checksum = "0122b7114117e64a63ac49f752a5ca4624d534c7b1c7de796ac196381cd2d947" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -1251,20 +1364,46 @@ dependencies = [ "serde", ] +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + [[package]] name = "itertools" -version = "0.11.0" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jieba-rs" @@ -1274,18 +1413,27 @@ checksum = "93f0c1347cd3ac8d7c6e3a2dc33ac496d365cf09fc0831aa61111e1a6738983e" dependencies = [ "cedarwood", "fxhash", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "lazy_static", "phf", "phf_codegen", "regex", ] +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -1319,19 +1467,34 @@ checksum = "0c2cdeb66e45e9f36bfad5bbdb4d2384e70936afbee843c6f6543f0c551ebb25" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.154" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" + +[[package]] +name = "libloading" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "libc", - "redox_syscall", ] [[package]] @@ -1699,9 +1862,9 @@ checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -1729,11 +1892,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.11.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" dependencies = [ - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -1762,9 +1925,9 @@ dependencies = [ [[package]] name = "measure_time" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56220900f1a0923789ecd6bf25fbae8af3b2f1ff3e9e297fc9b6b8674dd4d852" +checksum = "dbefd235b0aadd181626f281e1d684e116972988c14c264e42069d5e8a5775cc" dependencies = [ "instant", "log", @@ -1772,19 +1935,41 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memmap2" -version = "0.7.1" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" dependencies = [ "libc", ] +[[package]] +name = "merge" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10bbef93abb1da61525bbc45eeaff6473a41907d19f8f9aa5168d214e10693e9" +dependencies = [ + "merge_derive", + "num-traits", +] + +[[package]] +name = "merge_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "209d075476da2e63b4b29e72a2ef627b840589588e71400a25e3565c4f849d07" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "mime" version = "0.3.17" @@ -1808,9 +1993,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "log", @@ -1824,6 +2009,63 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2195bf6aa996a481483b29d62a7663eed3fe39600c460e323f8ff41e90bdd89b" +[[package]] +name = "napi" +version = "2.16.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24a2b3b82a9815e80bf1619efcf5d83ca0e223b964af1dbcbabf317dd9d2622f" +dependencies = [ + "bitflags 2.5.0", + "ctor", + "napi-derive", + "napi-sys", + "once_cell", +] + +[[package]] +name = "napi-build" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1c0f5d67ee408a4685b61f5ab7e58605c8ae3f2b4189f0127d804ff13d5560a" + +[[package]] +name = "napi-derive" +version = "2.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bb613535cde46cff231e53cd819c1694a32d48946bc2dda6b41174ace52ac08" +dependencies = [ + "cfg-if", + "convert_case 0.6.0", + "napi-derive-backend", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "napi-derive-backend" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da041b19246ab4240998774e987fd9a7d92cc7406b91b5eddb6691e81feac044" +dependencies = [ + "convert_case 0.6.0", + "once_cell", + "proc-macro2", + "quote", + "regex", + "semver", + "syn 2.0.60", +] + +[[package]] +name = "napi-sys" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3" +dependencies = [ + "libloading", +] + [[package]] name = "nom" version = "7.1.3" @@ -1850,6 +2092,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + [[package]] name = "num_cpus" version = "1.16.0" @@ -1881,6 +2133,7 @@ version = "0.1.0" dependencies = [ "byteorder", "charabia", + "criterion", "dirs", "insta", "lz4_flex", @@ -1895,11 +2148,22 @@ dependencies = [ "serde", "serde_json", "tantivy", - "tantivy-tokenizer-api", "uuid", "validation", ] +[[package]] +name = "odict_node" +version = "0.0.0" +dependencies = [ + "merge", + "napi", + "napi-build", + "napi-derive", + "odict", + "once_cell", +] + [[package]] name = "once_cell" version = "1.19.0" @@ -1915,6 +2179,12 @@ dependencies = [ "loom", ] +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + [[package]] name = "option-ext" version = "0.2.0" @@ -1929,18 +2199,18 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "ownedbytes" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e8a72b918ae8198abb3a18c190288123e1d442b6b9a7d709305fd194688b4b7" +checksum = "c3a059efb063b8f425b948e042e6b9bd85edfe60e913630ed727b23e2dfcc558" dependencies = [ "stable_deref_trait", ] [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" dependencies = [ "lock_api", "parking_lot_core", @@ -1948,15 +2218,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.1", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] @@ -2011,9 +2281,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -2027,6 +2297,34 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +[[package]] +name = "plotters" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" + +[[package]] +name = "plotters-svg" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +dependencies = [ + "plotters-backend", +] + [[package]] name = "portable-atomic" version = "1.6.0" @@ -2045,11 +2343,35 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" dependencies = [ "unicode-ident", ] @@ -2080,7 +2402,7 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76979bea66e7875e7509c4ec5300112b316af87fa7a252ca91c448b32dfe3993" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "getopts", "memchr", "pulldown-cmark-escape", @@ -2089,9 +2411,9 @@ dependencies = [ [[package]] name = "pulldown-cmark-escape" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d8f9aa0e3cbcfaf8bf00300004ee3b72f74770f9cbac93f6928771f613276b" +checksum = "bd348ff538bc9caeda7ee8cad2d1d48236a1f443c1fa3913c6a02fe0043b1dd3" [[package]] name = "quick-xml" @@ -2105,9 +2427,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -2148,6 +2470,16 @@ dependencies = [ "getrandom", ] +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + [[package]] name = "rayon" version = "1.10.0" @@ -2177,11 +2509,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", @@ -2196,8 +2537,8 @@ checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", ] [[package]] @@ -2211,13 +2552,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -2228,9 +2569,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "rend" @@ -2318,11 +2659,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", @@ -2331,9 +2672,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.2" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ "log", "ring", @@ -2345,15 +2686,15 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" +checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54" [[package]] name = "rustls-webpki" -version = "0.102.2" +version = "0.102.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf" dependencies = [ "ring", "rustls-pki-types", @@ -2362,9 +2703,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" [[package]] name = "ryu" @@ -2372,6 +2713,15 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -2403,7 +2753,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", "thiserror", ] @@ -2436,7 +2786,7 @@ checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -2484,9 +2834,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -2499,9 +2849,9 @@ checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" [[package]] name = "similar" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21" +checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" [[package]] name = "siphasher" @@ -2535,15 +2885,15 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2569,9 +2919,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" @@ -2592,7 +2942,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -2614,9 +2964,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.50" +version = "2.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" dependencies = [ "proc-macro2", "quote", @@ -2625,14 +2975,13 @@ dependencies = [ [[package]] name = "tantivy" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6083cd777fa94271b8ce0fe4533772cb8110c3044bab048d20f70108329a1f2" +checksum = "f8d0582f186c0a6d55655d24543f15e43607299425c5ad8352c242b914b31856" dependencies = [ "aho-corasick", "arc-swap", - "async-trait", - "base64", + "base64 0.22.1", "bitpacking", "byteorder", "census", @@ -2640,16 +2989,16 @@ dependencies = [ "crossbeam-channel", "downcast-rs", "fastdivide", + "fnv", "fs4", "htmlescape", - "itertools", + "itertools 0.12.1", "levenshtein_automata", "log", "lru", "lz4_flex", "measure_time", "memmap2", - "murmurhash32", "num_cpus", "once_cell", "oneshot", @@ -2677,22 +3026,22 @@ dependencies = [ [[package]] name = "tantivy-bitpacker" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecb164321482301f514dd582264fa67f70da2d7eb01872ccd71e35e0d96655a" +checksum = "284899c2325d6832203ac6ff5891b297fc5239c3dc754c5bc1977855b23c10df" dependencies = [ "bitpacking", ] [[package]] name = "tantivy-columnar" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d85f8019af9a78b3118c11298b36ffd21c2314bd76bbcd9d12e00124cbb7e70" +checksum = "12722224ffbe346c7fec3275c699e508fd0d4710e629e933d5736ec524a1f44e" dependencies = [ + "downcast-rs", "fastdivide", - "fnv", - "itertools", + "itertools 0.12.1", "serde", "tantivy-bitpacker", "tantivy-common", @@ -2702,9 +3051,9 @@ dependencies = [ [[package]] name = "tantivy-common" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4a3a975e604a2aba6b1106a04505e1e7a025e6def477fab6e410b4126471e1" +checksum = "8019e3cabcfd20a1380b491e13ff42f57bb38bf97c3d5fa5c07e50816e0621f4" dependencies = [ "async-trait", "byteorder", @@ -2715,50 +3064,52 @@ dependencies = [ [[package]] name = "tantivy-fst" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc3c506b1a8443a3a65352df6382a1fb6a7afe1a02e871cee0d25e2c3d5f3944" +checksum = "d60769b80ad7953d8a7b2c70cdfe722bbcdcac6bccc8ac934c40c034d866fc18" dependencies = [ "byteorder", - "regex-syntax 0.6.29", + "regex-syntax 0.8.3", "utf8-ranges", ] [[package]] name = "tantivy-query-grammar" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d39c5a03100ac10c96e0c8b07538e2ab8b17da56434ab348309b31f23fada77" +checksum = "847434d4af57b32e309f4ab1b4f1707a6c566656264caa427ff4285c4d9d0b82" dependencies = [ "nom", ] [[package]] name = "tantivy-sstable" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0c1bb43e5e8b8e05eb8009610344dbf285f06066c844032fbb3e546b3c71df" +checksum = "c69578242e8e9fc989119f522ba5b49a38ac20f576fc778035b96cc94f41f98e" dependencies = [ + "tantivy-bitpacker", "tantivy-common", "tantivy-fst", - "zstd 0.12.4", + "zstd", ] [[package]] name = "tantivy-stacker" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2c078595413f13f218cf6f97b23dcfd48936838f1d3d13a1016e05acd64ed6c" +checksum = "c56d6ff5591fc332739b3ce7035b57995a3ce29a93ffd6012660e0949c956ea8" dependencies = [ "murmurhash32", + "rand_distr", "tantivy-common", ] [[package]] name = "tantivy-tokenizer-api" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "347b6fb212b26d3505d224f438e3c4b827ab8bd847fe9953ad5ac6b8f9443b66" +checksum = "2a0dcade25819a89cfe6f17d932c9cedff11989936bf6dd4f336d50392053b04" dependencies = [ "serde", ] @@ -2809,7 +3160,7 @@ checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -2824,9 +3175,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -2845,14 +3196,24 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", ] +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -2870,9 +3231,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -2887,16 +3248,15 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -2919,7 +3279,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -3021,9 +3381,9 @@ checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" [[package]] name = "untrusted" @@ -3033,11 +3393,11 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.9.6" +version = "2.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35" +checksum = "d11a831e3c0b56e438a28308e7c810799e3c118417f342d30ecec080105395cd" dependencies = [ - "base64", + "base64 0.22.1", "log", "once_cell", "rustls", @@ -3090,7 +3450,7 @@ checksum = "9881bea7cbe687e36c9ab3b778c36cd0487402e270304e8b1296d5085303c1a2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -3111,6 +3471,16 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3119,9 +3489,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3129,24 +3499,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3154,28 +3524,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -3196,7 +3566,7 @@ version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "471d1c1645d361eb782a1650b1786a8fb58dd625e681a04c09f5ff7c8764a7b0" dependencies = [ - "hashbrown 0.14.3", + "hashbrown 0.14.5", "once_cell", ] @@ -3216,6 +3586,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -3246,7 +3625,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.5", ] [[package]] @@ -3266,17 +3645,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.3", - "windows_aarch64_msvc 0.52.3", - "windows_i686_gnu 0.52.3", - "windows_i686_msvc 0.52.3", - "windows_x86_64_gnu 0.52.3", - "windows_x86_64_gnullvm 0.52.3", - "windows_x86_64_msvc 0.52.3", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -3287,9 +3667,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -3299,9 +3679,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -3311,9 +3691,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -3323,9 +3709,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -3335,9 +3721,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -3347,9 +3733,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -3359,9 +3745,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "wyz" @@ -3391,22 +3777,22 @@ checksum = "aed111bd9e48a802518765906cbdadf0b45afb72b9c81ab049a3b86252adffdd" [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "087eca3c1eaf8c47b94d02790dd086cd594b912d2043d4de4bfdd466b3befb7c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "6f4b6c273f496d8fd4eaf18853e6b448760225dc030ff2c485a786859aea6393" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.60", ] [[package]] @@ -3432,46 +3818,27 @@ dependencies = [ [[package]] name = "zstd" -version = "0.12.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" dependencies = [ - "zstd-safe 6.0.6", -] - -[[package]] -name = "zstd" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110" -dependencies = [ - "zstd-safe 7.0.0", -] - -[[package]] -name = "zstd-safe" -version = "6.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" -dependencies = [ - "libc", - "zstd-sys", + "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.0.0" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e" +checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.10+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 81529498..1b47995c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,14 +2,13 @@ resolver = "2" -members = ["cli", "lib"] +members = ["cli", "lib", "node"] [profile.release] -strip = true codegen-units = 1 lto = true panic = "abort" +strip = "symbols" [profile.dev.package] insta.opt-level = 3 -similar.opt-level = 3 diff --git a/cli/src/compile.rs b/cli/src/compile.rs index 089b323c..6b5fc22c 100644 --- a/cli/src/compile.rs +++ b/cli/src/compile.rs @@ -1,7 +1,7 @@ -use std::{error::Error, fs::read_to_string, path::PathBuf}; +use std::{error::Error, path::PathBuf}; use clap::{arg, command, Args}; -use odict::Dictionary; +use odict::fs::infer_path; use crate::CLIContext; @@ -18,35 +18,13 @@ pub struct CompileArgs { pub fn compile(ctx: &CLIContext, args: &CompileArgs) -> Result<(), Box> { let CompileArgs { input, output } = args; + let out = output.to_owned().unwrap_or_else(|| infer_path(&input)); - let mut out = output.to_owned(); - - if out.is_none() { - let name = input - .file_stem() - .and_then(|s| s.to_str()) - .unwrap_or_default(); - - let directory = input.parent().and_then(|s| s.to_str()).unwrap_or_default(); - - out = Some( - PathBuf::new() - .join(directory) - .join(format!("{}.odict", name)), - ); - } - - let contents = read_to_string(input).unwrap(); - let xml = contents.as_str(); - - match Dictionary::from(xml) { - Ok(dict) => { - ctx.writer.write_to_path(&dict, &out.unwrap())?; - } - Err(e) => { - return Err(format!("\nAn error occurred parsing your XML: \n\n{}", e).into()); - } - } + let _ = ctx + .writer + .compile_xml(&input, &out) + .map(|_| ()) + .map_err(|e| format!("An error occurred compiling your XML: {}", e))?; Ok(()) } diff --git a/cli/src/dump.rs b/cli/src/dump.rs index 533b1c2d..aa0840d3 100644 --- a/cli/src/dump.rs +++ b/cli/src/dump.rs @@ -1,7 +1,10 @@ use std::{error::Error, fs}; use clap::{arg, command, Args}; -use odict::{SQLDialect, ToSQL, ToXML}; +use odict::{ + sql::{SQLDialect, ToSQL}, + xml::ToXML, +}; use crate::{enums::DumpFormat, CLIContext}; diff --git a/cli/src/lookup.rs b/cli/src/lookup.rs index 726a6119..6fcab7b9 100644 --- a/cli/src/lookup.rs +++ b/cli/src/lookup.rs @@ -4,7 +4,7 @@ use crate::deserialize_nested_entries; use crate::enums::PrintFormat; use crate::{context::CLIContext, print_entries}; use clap::{arg, command, Args}; -use odict::LookupOptions; +use odict::lookup::LookupOptions; #[derive(Debug, Args)] #[command(args_conflicts_with_subcommands = true)] diff --git a/cli/src/print/print.rs b/cli/src/print/print.rs index 62569d98..c87d5c3f 100644 --- a/cli/src/print/print.rs +++ b/cli/src/print/print.rs @@ -1,6 +1,6 @@ use std::error::Error; -use odict::{Entry, ToJSON, ToXML}; +use odict::{json::ToJSON, xml::ToXML, Entry}; use super::pprint::pretty_print; use crate::{enums::PrintFormat, CLIContext}; diff --git a/cli/src/serve/lookup.rs b/cli/src/serve/lookup.rs index 89765ab9..93e7214d 100644 --- a/cli/src/serve/lookup.rs +++ b/cli/src/serve/lookup.rs @@ -7,7 +7,7 @@ use actix_web::{ HttpResponse, Responder, ResponseError, }; use derive_more::{Display, Error}; -use odict::{DictionaryFile, LookupOptions, ToJSON}; +use odict::{json::ToJSON, lookup::LookupOptions, DictionaryFile}; use serde::Deserialize; #[derive(Debug, Deserialize)] diff --git a/cli/src/serve/search.rs b/cli/src/serve/search.rs index 37fcfa11..e6f0eacb 100644 --- a/cli/src/serve/search.rs +++ b/cli/src/serve/search.rs @@ -7,7 +7,7 @@ use actix_web::{ HttpResponse, Responder, ResponseError, }; use derive_more::{Display, Error}; -use odict::{search::SearchOptions, DictionaryFile, ToJSON}; +use odict::{json::ToJSON, search::SearchOptions, DictionaryFile}; use serde::Deserialize; #[derive(Debug, Deserialize)] diff --git a/examples/dictionary.xml b/examples/dictionary.xml index ff107e01..84695dee 100644 --- a/examples/dictionary.xml +++ b/examples/dictionary.xml @@ -1,19 +1,3 @@ - - - - - - I'll look up “love” in the dictionary - The website gives access to an online dictionary - The dictionary definition of “smile” - - - A dictionary of quotations - - - The worm attempts to crack account passwords using a built-in dictionary - - - - - +version https://git-lfs.github.com/spec/v1 +oid sha256:e2c137c18a08d850f644faacfa6c3a68b294b915c2e76de536684a898f4b7e59 +size 1006 diff --git a/examples/empty.xml b/examples/empty.xml index d0570cdf..92509636 100644 --- a/examples/empty.xml +++ b/examples/empty.xml @@ -1 +1,3 @@ - +version https://git-lfs.github.com/spec/v1 +oid sha256:5602e11530ce11ada8edfcbf8facc8afbd010e7113e8ce4ddce935bdadeffeb0 +size 43 diff --git a/examples/example1.xml b/examples/example1.xml index bf390f0f..27d4e376 100644 --- a/examples/example1.xml +++ b/examples/example1.xml @@ -1,61 +1,3 @@ - - - - - - - - The dog runs after the cat. - The horse ran away. - - - - - - - - - - - The dog runs after the cat. - The horse ran away. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - There goes a cat! - - Some example - - - - - - +version https://git-lfs.github.com/spec/v1 +oid sha256:223ebd8f8f64fdf706435a8b7df36f3a293d1957d9aacf9d696773d7dd6c1e36 +size 2432 diff --git a/examples/example2.xml b/examples/example2.xml index 15d3eb73..8c5bbb18 100644 --- a/examples/example2.xml +++ b/examples/example2.xml @@ -1,17 +1,3 @@ - - - - - - - - - - - - - - - - - +version https://git-lfs.github.com/spec/v1 +oid sha256:640d64e56adf958930b333d27a8e351455b92f25caa27cd2ce39032ebc53b202 +size 450 diff --git a/examples/wiktionary.xml b/examples/wiktionary.xml new file mode 100644 index 00000000..a31153be --- /dev/null +++ b/examples/wiktionary.xml @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4954c388a7d38f98e96a09593361d938019f76ccb0069f443c62a92b4f4c16d +size 361056407 diff --git a/js/.eslintrc.json b/js/.eslintrc.json deleted file mode 100644 index fcfd1994..00000000 --- a/js/.eslintrc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "env": { - "browser": true, - "es2021": true - }, - "extends": ["standard-with-typescript", "eslint-config-prettier"], - "overrides": [], - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module" - }, - "ignorePatterns": ["dist"], - "rules": { - "semi": ["error", "always"] - } -} diff --git a/js/.npmrc b/js/.npmrc deleted file mode 100644 index bd3327ab..00000000 --- a/js/.npmrc +++ /dev/null @@ -1 +0,0 @@ -//registry.npmjs.org/:_authToken=${NPM_TOKEN} \ No newline at end of file diff --git a/js/CHANGELOG.md b/js/CHANGELOG.md deleted file mode 100644 index 4b17c348..00000000 --- a/js/CHANGELOG.md +++ /dev/null @@ -1,205 +0,0 @@ -# Changelog - -## [0.12.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.11.0...js-v0.12.0) (2024-01-21) - - -### Features - -* Allow args for wasm and js publish commands ([c86d052](https://github.com/TheOpenDictionary/odict/commit/c86d0526f1a18338b678b4aa01831890ef9b9aef)) - -## [0.11.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.10.0...js-v0.11.0) (2024-01-15) - - -### Features - -* Add basic WASM support ([#394](https://github.com/TheOpenDictionary/odict/issues/394)) ([8df4e85](https://github.com/TheOpenDictionary/odict/commit/8df4e851c175dc5677d9580a29e9d38927f796a6)) - -## [0.10.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.9.0...js-v0.10.0) (2023-09-28) - - -### Features - -* Add option to output Markdown as plain-text ([#470](https://github.com/TheOpenDictionary/odict/issues/470)) ([71ca0d5](https://github.com/TheOpenDictionary/odict/commit/71ca0d5c6f22c660fdd51e098a66e2e1f4acf47c)) - -## [0.9.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.8.1...js-v0.9.0) (2023-09-26) - - -### Features - -* Add Markdown support to description and value attributes ([#462](https://github.com/TheOpenDictionary/odict/issues/462)) ([5a2111f](https://github.com/TheOpenDictionary/odict/commit/5a2111f6aa2f4817028e2fa9c8fec0314569f360)) -* Prebuild binaries ([#463](https://github.com/TheOpenDictionary/odict/issues/463)) ([123bfd7](https://github.com/TheOpenDictionary/odict/commit/123bfd7102be53438f74b7eb9a8542ebb2e2137b)) - -## [0.8.1](https://github.com/TheOpenDictionary/odict/compare/js-v0.8.0...js-v0.8.1) (2023-09-23) - - -### Bug Fixes - -* **js:** Add ready check for service ([#458](https://github.com/TheOpenDictionary/odict/issues/458)) ([ed984ba](https://github.com/TheOpenDictionary/odict/commit/ed984bad21af2c57f8e8c421a8ffe81c1b3fb8fe)) -* **js:** Make notes optional ([ee72c66](https://github.com/TheOpenDictionary/odict/commit/ee72c6666cfc37f740946b801dc68190a46b22e4)) - -## [0.8.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.7.0...js-v0.8.0) (2023-09-17) - - -### Features - -* **core:** add DefinitionNote type ([#450](https://github.com/TheOpenDictionary/odict/issues/450)) ([08bcac4](https://github.com/TheOpenDictionary/odict/commit/08bcac4b0710112166d6a43429fbb2f0c784c241)) -* **js:** remove detectOpenHandles from test run ([2eed906](https://github.com/TheOpenDictionary/odict/commit/2eed906830a569a89b9f74d4a5058f71fde8dd10)) - -## [0.7.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.6.1...js-v0.7.0) (2023-06-28) - - -### Features - -* add `serve` command ([#393](https://github.com/TheOpenDictionary/odict/issues/393)) ([cc7ef5c](https://github.com/TheOpenDictionary/odict/commit/cc7ef5c69811a4554e3b62bf492090de65ae86ea)) -* add support for dictionary aliasing ([#391](https://github.com/TheOpenDictionary/odict/issues/391)) ([c6f1a04](https://github.com/TheOpenDictionary/odict/commit/c6f1a0495136817065007acc4414194f4e8445ad)) - -## [0.6.1](https://github.com/TheOpenDictionary/odict/compare/js-v0.6.0...js-v0.6.1) (2023-05-31) - - -### Bug Fixes - -* **js:** fixed PartOfSpeech map types ([725bba4](https://github.com/TheOpenDictionary/odict/commit/725bba46a5f31580ed3207b7bea2e302680b49fb)) - -## [0.6.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.5.1...js-v0.6.0) (2023-05-31) - - -### Features - -* **js:** add PartOfSpeech type ([8ee6e9a](https://github.com/TheOpenDictionary/odict/commit/8ee6e9a119445807af7e5fe4017e54e2fde0474a)) - -## [0.5.1](https://github.com/TheOpenDictionary/odict/compare/js-v0.5.0...js-v0.5.1) (2023-05-29) - - -### Bug Fixes - -* attempt to fix tests ([eda588a](https://github.com/TheOpenDictionary/odict/commit/eda588ae0e6b9c971df3bee4c2d598d9a95a22e8)) -* **js:** fix test ([0487c39](https://github.com/TheOpenDictionary/odict/commit/0487c39c173fdd52c35c5f959ddc4c2d23cd40af)) -* **js:** restart process if there are unexpected exits ([388176c](https://github.com/TheOpenDictionary/odict/commit/388176c60145ba1ba02ca4dc3a54c8fb3a688b68)) - -## [0.5.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.4.1...js-v0.5.0) (2023-05-28) - - -### Features - -* use IPC library for inter-process communication ([#344](https://github.com/TheOpenDictionary/odict/issues/344)) ([fc23307](https://github.com/TheOpenDictionary/odict/commit/fc2330771dcdbfe6358fa09f15f1cdf86bd4b9ab)) - -## [0.4.1](https://github.com/TheOpenDictionary/odict/compare/js-v0.4.0...js-v0.4.1) (2023-05-28) - - -### Bug Fixes - -* **js:** remove log statements ([810e6f7](https://github.com/TheOpenDictionary/odict/commit/810e6f7b0a772cc0d58797f02ff4c962a9e98bcc)) - -## [0.4.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.3.2...js-v0.4.0) (2023-05-28) - - -### Features - -* **js:** add part of speech enum to js package ([0fdd9bc](https://github.com/TheOpenDictionary/odict/commit/0fdd9bc073a20769a6bb80939290a8981d526920)) - - -### Bug Fixes - -* **deps:** update dependency flatbuffers to v23.5.26 ([60b6baf](https://github.com/TheOpenDictionary/odict/commit/60b6baf51caaf8d835a5bc8d2c1c052926224364)) - -## [0.3.2](https://github.com/TheOpenDictionary/odict/compare/js-v0.3.1...js-v0.3.2) (2023-05-20) - - -### Bug Fixes - -* **js:** bug fixes with service implementation ([#325](https://github.com/TheOpenDictionary/odict/issues/325)) ([e76cb1c](https://github.com/TheOpenDictionary/odict/commit/e76cb1c1ba1724528d7113c924d2b582494eb11b)) - -## [0.3.1](https://github.com/TheOpenDictionary/odict/compare/js-v0.3.0...js-v0.3.1) (2023-05-19) - - -### Bug Fixes - -* **js:** compile FlatBuffer files ([1b2f9a2](https://github.com/TheOpenDictionary/odict/commit/1b2f9a25def93b954ada35d31db0dc4367fc4d4d)) -* **js:** remove service upon exit/disconnect ([42669ce](https://github.com/TheOpenDictionary/odict/commit/42669ce4e7478d5acd69342dac70d9cebcbc4c4a)) - -## [0.3.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.2.0...js-v0.3.0) (2023-05-19) - - -### Features - -* **js:** communicate to CLI via long-running process ([#316](https://github.com/TheOpenDictionary/odict/issues/316)) ([1547d40](https://github.com/TheOpenDictionary/odict/commit/1547d409af52763dac16ab7cb3e11b7cb89609e2)) -* modularize Justfiles ([#187](https://github.com/TheOpenDictionary/odict/issues/187)) ([5b02037](https://github.com/TheOpenDictionary/odict/commit/5b0203772975518cb2428b36a7dbb7c050179937)) - - -### Bug Fixes - -* **dump:** remove unnecessary ODict dependencies ([a93c14c](https://github.com/TheOpenDictionary/odict/commit/a93c14cd108764c86ad2fa3b4c8fc721aaace0c7)) -* remove commented code and print statement ([777a668](https://github.com/TheOpenDictionary/odict/commit/777a6686179bc0b5cdd294b2bcc9cf7e81364587)) - -## [0.2.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.1.1...js-v0.2.0) (2023-04-04) - - -### Features - -* add lexicon() method to all SDKs ([#181](https://github.com/TheOpenDictionary/odict/issues/181)) ([bc6450f](https://github.com/TheOpenDictionary/odict/commit/bc6450fdbc2e9848e1376a6433aa6b759219ff1f)) - -## [0.1.1](https://github.com/TheOpenDictionary/odict/compare/js-v0.1.0...js-v0.1.1) (2023-02-13) - - -### Bug Fixes - -* **js:** update TypeScript types ([dde8af5](https://github.com/TheOpenDictionary/odict/commit/dde8af56457e44ac1bee808f02ba18a640bb86ac)) - -## [0.1.0](https://github.com/TheOpenDictionary/odict/compare/js-v0.0.5...js-v0.1.0) (2023-02-01) - - -### Features - -* add support for pretty-printing entries ([#62](https://github.com/TheOpenDictionary/odict/issues/62)) ([24d82bc](https://github.com/TheOpenDictionary/odict/commit/24d82bcf44b896347f4c9e9210cfe72bea82d978)) -* add TypeScript library ([#33](https://github.com/TheOpenDictionary/odict/issues/33)) ([24e2a39](https://github.com/TheOpenDictionary/odict/commit/24e2a397931ed6d9fcbf71b7cc347f5c8bc9f52d)) -* **js:** added repository link ([a1c77e4](https://github.com/TheOpenDictionary/odict/commit/a1c77e48a1387afdbafdade58009627950095b45)) - - -### Bug Fixes - -* fixes splitting and return 2D array from CI ([#35](https://github.com/TheOpenDictionary/odict/issues/35)) ([4e80729](https://github.com/TheOpenDictionary/odict/commit/4e80729de3a96059774753b89ec336b66f1d729f)) -* JavaScript fixes ([6fbd152](https://github.com/TheOpenDictionary/odict/commit/6fbd1528f63a55f6b2aded8f39b3ab155f62bb80)) -* JavaScript fixes ([16ce875](https://github.com/TheOpenDictionary/odict/commit/16ce87517509c08c7081d5d24f0e82fcd3631793)) -* **js:** disable term splitting by default ([f739ef0](https://github.com/TheOpenDictionary/odict/commit/f739ef0bc8ef4709b3fea52cc8b00486c547366d)) -* **js:** fix prepublish ([73955ed](https://github.com/TheOpenDictionary/odict/commit/73955edf1cd85730661465c6d1859abc1a495db3)) -* **js:** update Node configuration ([b0f3850](https://github.com/TheOpenDictionary/odict/commit/b0f385060cc45460d8ca38c699b00ad0cac9aa9e)) -* **js:** update types ([0670089](https://github.com/TheOpenDictionary/odict/commit/0670089449ccc1601a8e6a08c41c8faffd981814)) - -## [0.0.5](https://github.com/TheOpenDictionary/odict/compare/theopendictionary-v0.0.4...theopendictionary-v0.0.5) (2023-01-05) - - -### Bug Fixes - -* **js:** update types ([0670089](https://github.com/TheOpenDictionary/odict/commit/0670089449ccc1601a8e6a08c41c8faffd981814)) - -## [0.0.4](https://github.com/TheOpenDictionary/odict/compare/theopendictionary-v0.0.3...theopendictionary-v0.0.4) (2022-12-11) - - -### Features - -* add support for pretty-printing entries ([#62](https://github.com/TheOpenDictionary/odict/issues/62)) ([24d82bc](https://github.com/TheOpenDictionary/odict/commit/24d82bcf44b896347f4c9e9210cfe72bea82d978)) - -## [0.0.3](https://github.com/TheOpenDictionary/odict/compare/theopendictionary-v0.0.2...theopendictionary-v0.0.3) (2022-11-12) - - -### Bug Fixes - -* **js:** disable term splitting by default ([f739ef0](https://github.com/TheOpenDictionary/odict/commit/f739ef0bc8ef4709b3fea52cc8b00486c547366d)) -* **js:** update Node configuration ([b0f3850](https://github.com/TheOpenDictionary/odict/commit/b0f385060cc45460d8ca38c699b00ad0cac9aa9e)) - -## [0.0.2](https://github.com/TheOpenDictionary/odict/compare/theopendictionary-v0.0.1...theopendictionary-v0.0.2) (2022-11-06) - - -### Features - -* add TypeScript library ([#33](https://github.com/TheOpenDictionary/odict/issues/33)) ([24e2a39](https://github.com/TheOpenDictionary/odict/commit/24e2a397931ed6d9fcbf71b7cc347f5c8bc9f52d)) -* **js:** added repository link ([a1c77e4](https://github.com/TheOpenDictionary/odict/commit/a1c77e48a1387afdbafdade58009627950095b45)) - - -### Bug Fixes - -* fixes splitting and return 2D array from CI ([#35](https://github.com/TheOpenDictionary/odict/issues/35)) ([4e80729](https://github.com/TheOpenDictionary/odict/commit/4e80729de3a96059774753b89ec336b66f1d729f)) -* JavaScript fixes ([6fbd152](https://github.com/TheOpenDictionary/odict/commit/6fbd1528f63a55f6b2aded8f39b3ab155f62bb80)) -* JavaScript fixes ([16ce875](https://github.com/TheOpenDictionary/odict/commit/16ce87517509c08c7081d5d24f0e82fcd3631793)) -* **js:** fix prepublish ([73955ed](https://github.com/TheOpenDictionary/odict/commit/73955edf1cd85730661465c6d1859abc1a495db3)) -* **js:** update Node configuration ([b0f3850](https://github.com/TheOpenDictionary/odict/commit/b0f385060cc45460d8ca38c699b00ad0cac9aa9e)) diff --git a/js/justfile b/js/justfile deleted file mode 100644 index cd6c6254..00000000 --- a/js/justfile +++ /dev/null @@ -1,29 +0,0 @@ -@install: - npm install - -@add +args: - npm install {{args}} - -@clean: - rm -rf coverage dist ../**/*.odict ../**/*.log - -@schema: - flatc --ts -o ./src/__generated__ ../flatbuffers/service.fbs ../flatbuffers/enums.fbs - -@check +args="": - npx biome check {{args}} . - -@format +args="": - npx biome format {{args}} . - -@build: install - npx swc -d dist ./src/*.ts ./src/**/*.ts & \ - npx tsc - -@test +args="": install && clean - just ../build - npx tsc - RUNTIME_ENV=test npx jest {{args}} - -@publish +args="": build - npm publish {{args}} diff --git a/js/package-lock.json b/js/package-lock.json deleted file mode 100644 index e4c4f089..00000000 --- a/js/package-lock.json +++ /dev/null @@ -1,5855 +0,0 @@ -{ - "name": "theopendictionary", - "version": "0.12.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "theopendictionary", - "version": "0.12.0", - "license": "ISC", - "dependencies": { - "flatbuffers": "^23.5.9", - "uuid": "^9.0.0" - }, - "devDependencies": { - "@biomejs/biome": "^1.5.1", - "@swc/cli": "^0.3.0", - "@swc/core": "^1.3.24", - "@swc/jest": "^0.2.24", - "@types/jest": "^29.2.4", - "@types/node": "^20.0.0", - "@types/uuid": "^9.0.1", - "concurrently": "^8.0.0", - "find-process": "^1.4.7", - "jest": "^29.3.1", - "prettier": "^3.0.0", - "rimraf": "^5.0.0", - "typescript": "^5.0.0" - }, - "engines": { - "node": ">=16.13.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz", - "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@biomejs/biome": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.7.3.tgz", - "integrity": "sha512-ogFQI+fpXftr+tiahA6bIXwZ7CSikygASdqMtH07J2cUzrpjyTMVc9Y97v23c7/tL1xCZhM+W9k4hYIBm7Q6cQ==", - "dev": true, - "hasInstallScript": true, - "bin": { - "biome": "bin/biome" - }, - "engines": { - "node": ">=14.21.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/biome" - }, - "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "1.7.3", - "@biomejs/cli-darwin-x64": "1.7.3", - "@biomejs/cli-linux-arm64": "1.7.3", - "@biomejs/cli-linux-arm64-musl": "1.7.3", - "@biomejs/cli-linux-x64": "1.7.3", - "@biomejs/cli-linux-x64-musl": "1.7.3", - "@biomejs/cli-win32-arm64": "1.7.3", - "@biomejs/cli-win32-x64": "1.7.3" - } - }, - "node_modules/@biomejs/cli-darwin-arm64": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.7.3.tgz", - "integrity": "sha512-eDvLQWmGRqrPIRY7AIrkPHkQ3visEItJKkPYSHCscSDdGvKzYjmBJwG1Gu8+QC5ed6R7eiU63LEC0APFBobmfQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-darwin-x64": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.7.3.tgz", - "integrity": "sha512-JXCaIseKRER7dIURsVlAJacnm8SG5I0RpxZ4ya3dudASYUc68WGl4+FEN03ABY3KMIq7hcK1tzsJiWlmXyosZg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-arm64": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.7.3.tgz", - "integrity": "sha512-phNTBpo7joDFastnmZsFjYcDYobLTx4qR4oPvc9tJ486Bd1SfEVPHEvJdNJrMwUQK56T+TRClOQd/8X1nnjA9w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.7.3.tgz", - "integrity": "sha512-c8AlO45PNFZ1BYcwaKzdt46kYbuP6xPGuGQ6h4j3XiEDpyseRRUy/h+6gxj07XovmyxKnSX9GSZ6nVbZvcVUAw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-x64": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.7.3.tgz", - "integrity": "sha512-vnedYcd5p4keT3iD48oSKjOIRPYcjSNNbd8MO1bKo9ajg3GwQXZLAH+0Cvlr+eMsO67/HddWmscSQwTFrC/uPA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.7.3.tgz", - "integrity": "sha512-UdEHKtYGWEX3eDmVWvQeT+z05T9/Sdt2+F/7zmMOFQ7boANeX8pcO6EkJPK3wxMudrApsNEKT26rzqK6sZRTRA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-win32-arm64": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.7.3.tgz", - "integrity": "sha512-unNCDqUKjujYkkSxs7gFIfdasttbDC4+z0kYmcqzRk6yWVoQBL4dNLcCbdnJS+qvVDNdI9rHp2NwpQ0WAdla4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-win32-x64": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.7.3.tgz", - "integrity": "sha512-ZmByhbrnmz/UUFYB622CECwhKIPjJLLPr5zr3edhu04LzbfcOrz16VYeNq5dpO1ADG70FORhAJkaIGdaVBG00w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/create-cache-key-function": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", - "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", - "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@mole-inc/bin-wrapper": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@mole-inc/bin-wrapper/-/bin-wrapper-8.0.1.tgz", - "integrity": "sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==", - "dev": true, - "dependencies": { - "bin-check": "^4.1.0", - "bin-version-check": "^5.0.0", - "content-disposition": "^0.5.4", - "ext-name": "^5.0.0", - "file-type": "^17.1.6", - "filenamify": "^5.0.2", - "got": "^11.8.5", - "os-filter-obj": "^2.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@swc/cli": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.3.12.tgz", - "integrity": "sha512-h7bvxT+4+UDrLWJLFHt6V+vNAcUNii2G4aGSSotKz1ECEk4MyEh5CWxmeSscwuz5K3i+4DWTgm4+4EyMCQKn+g==", - "dev": true, - "dependencies": { - "@mole-inc/bin-wrapper": "^8.0.1", - "@swc/counter": "^0.1.3", - "commander": "^8.3.0", - "fast-glob": "^3.2.5", - "minimatch": "^9.0.3", - "piscina": "^4.3.0", - "semver": "^7.3.8", - "slash": "3.0.0", - "source-map": "^0.7.3" - }, - "bin": { - "spack": "bin/spack.js", - "swc": "bin/swc.js", - "swcx": "bin/swcx.js" - }, - "engines": { - "node": ">= 16.14.0" - }, - "peerDependencies": { - "@swc/core": "^1.2.66", - "chokidar": "^3.5.1" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@swc/cli/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@swc/cli/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@swc/core": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.3.tgz", - "integrity": "sha512-pSEglypnBGLHBoBcv3aYS7IM2t2LRinubYMyP88UoFIcD2pear2CeB15CbjJ2IzuvERD0ZL/bthM7cDSR9g+aQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.5.3", - "@swc/core-darwin-x64": "1.5.3", - "@swc/core-linux-arm-gnueabihf": "1.5.3", - "@swc/core-linux-arm64-gnu": "1.5.3", - "@swc/core-linux-arm64-musl": "1.5.3", - "@swc/core-linux-x64-gnu": "1.5.3", - "@swc/core-linux-x64-musl": "1.5.3", - "@swc/core-win32-arm64-msvc": "1.5.3", - "@swc/core-win32-ia32-msvc": "1.5.3", - "@swc/core-win32-x64-msvc": "1.5.3" - }, - "peerDependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.3.tgz", - "integrity": "sha512-kRmmV2XqWegzGXvJfVVOj10OXhLgaVOOBjaX3p3Aqg7Do5ksg+bY5wi1gAN/Eul7B08Oqf7GG7WJevjDQGWPOg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.3.tgz", - "integrity": "sha512-EYs0+ovaRw6ZN9GBr2nIeC7gUXWA0q4RYR+Og3Vo0Qgv2Mt/XudF44A2lPK9X7M3JIfu6JjnxnTuvsK1Lqojfw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.3.tgz", - "integrity": "sha512-RBVUTidSf4wgPdv98VrgJ4rMzMDN/3LBWdT7l+R7mNFH+mtID7ZAhTON0o/m1HkECgAgi1xcbTOVAw1xgd5KLA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.3.tgz", - "integrity": "sha512-DCC6El3MiTYfv98CShxz/g2s4Pxn6tV0mldCQ0UdRqaN2ApUn7E+zTrqaj5bk7yII3A43WhE9Mr6wNPbXUeVyg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.3.tgz", - "integrity": "sha512-p04ysjYXEyaCGpJvwHm0T0nkPawXtdKBTThWnlh8M5jYULVNVA1YmC9azG2Avs1GDaLgBPVUgodmFYpdSupOYA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.3.tgz", - "integrity": "sha512-/l4KJu0xwYm6tcVSOvF8RbXrIeIHJAhWnKvuX4ZnYKFkON968kB8Ghx+1yqBQcZf36tMzSuZUC5xBUA9u66lGA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.3.tgz", - "integrity": "sha512-54DmSnrTXq4fYEKNR0nFAImG3+FxsHlQ6Tol/v3l+rxmg2K0FeeDOpH7wTXeWhMGhFlGrLIyLSnA+SzabfoDIA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.3.tgz", - "integrity": "sha512-piUMqoHNwDXChBfaaFIMzYgoxepfd8Ci1uXXNVEnuiRKz3FiIcNLmvXaBD7lKUwKcnGgVziH/CrndX6SldKQNQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.3.tgz", - "integrity": "sha512-zV5utPYBUzYhBOomCByAjKAvfVBcOCJtnszx7Zlfz7SAv/cGm8D1QzPDCvv6jDhIlUtLj6KyL8JXeFr+f95Fjw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.3.tgz", - "integrity": "sha512-QmUiXiPIV5gBADfDh8e2jKynEhyRC+dcKP/zF9y5KqDUErYzlhocLd68uYS4uIegP6AylYlmigHgcaktGEE9VQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true - }, - "node_modules/@swc/jest": { - "version": "0.2.36", - "resolved": "https://registry.npmjs.org/@swc/jest/-/jest-0.2.36.tgz", - "integrity": "sha512-8X80dp81ugxs4a11z1ka43FPhP+/e+mJNXJSxiNYk8gIX/jPBtY4gQTrKu/KIoco8bzKuPI5lUxjfLiGsfvnlw==", - "dev": true, - "dependencies": { - "@jest/create-cache-key-function": "^29.7.0", - "@swc/counter": "^0.1.3", - "jsonc-parser": "^3.2.0" - }, - "engines": { - "npm": ">= 7.0.0" - }, - "peerDependencies": { - "@swc/core": "*" - } - }, - "node_modules/@swc/types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", - "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", - "dev": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", - "dev": true, - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "20.12.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz", - "integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/bin-check": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", - "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", - "dev": true, - "dependencies": { - "execa": "^0.7.0", - "executable": "^4.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/bin-version": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-6.0.0.tgz", - "integrity": "sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "find-versions": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bin-version-check": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-5.1.0.tgz", - "integrity": "sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==", - "dev": true, - "dependencies": { - "bin-version": "^6.0.0", - "semver": "^7.5.3", - "semver-truncate": "^3.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bin-version/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/bin-version/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/bin-version/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bin-version/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bin-version/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bin-version/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bin-version/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bin-version/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bin-version/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001576", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", - "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concurrently": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", - "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.2", - "date-fns": "^2.30.0", - "lodash": "^4.17.21", - "rxjs": "^7.8.1", - "shell-quote": "^1.8.1", - "spawn-command": "0.0.2", - "supports-color": "^8.1.1", - "tree-kill": "^1.2.2", - "yargs": "^17.7.2" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": "^14.13.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.629", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.629.tgz", - "integrity": "sha512-5UUkr3k3CZ/k+9Sw7vaaIMyOzMC0XbPyprKI3n0tbKDqkzTDOjK4izm7DxlkueRMim6ZZQ1ja9F7hoFVplHihA==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", - "dev": true, - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "dev": true, - "dependencies": { - "pify": "^2.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "dev": true, - "dependencies": { - "mime-db": "^1.28.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", - "dev": true, - "dependencies": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-type": { - "version": "17.1.6", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-17.1.6.tgz", - "integrity": "sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw==", - "dev": true, - "dependencies": { - "readable-web-to-node-stream": "^3.0.2", - "strtok3": "^7.0.0-alpha.9", - "token-types": "^5.0.0-alpha.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/filename-reserved-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", - "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/filenamify": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz", - "integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==", - "dev": true, - "dependencies": { - "filename-reserved-regex": "^3.0.0", - "strip-outer": "^2.0.0", - "trim-repeated": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-process": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz", - "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "commander": "^5.1.0", - "debug": "^4.1.1" - }, - "bin": { - "find-process": "bin/find-process.js" - } - }, - "node_modules/find-process/node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-versions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", - "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==", - "dev": true, - "dependencies": { - "semver-regex": "^4.0.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flatbuffers": { - "version": "23.5.26", - "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-23.5.26.tgz", - "integrity": "sha512-vE+SI9vrJDwi1oETtTIFldC/o9GsVKRM+s6EL0nQgxXlYV1Vc4Tk30hj4xGICftInKQKj1F3up2n8UbIVobISQ==" - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/foreground-child/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-changed-files/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-changed-files/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/jest-changed-files/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/nice-napi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "!win32" - ], - "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" - } - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "dev": true, - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-filter-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", - "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", - "dev": true, - "dependencies": { - "arch": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/peek-readable": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", - "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/piscina": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.3.0.tgz", - "integrity": "sha512-vTQszGZj78p0BHFNO/cSvpzPUYa4tLXRe30aIYyQjqRS3fK/kPqdxvkTfGXQlEpWOI+mOOkda0iEY6NaanLWJA==", - "dev": true, - "optionalDependencies": { - "nice-napi": "^1.0.2" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dev": true, - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dev": true, - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-regex": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", - "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver-truncate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-3.0.0.tgz", - "integrity": "sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", - "dev": true, - "dependencies": { - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spawn-command": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-outer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz", - "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strtok3": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", - "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", - "dev": true, - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^5.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/token-types": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", - "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", - "dev": true, - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/trim-repeated": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", - "integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/trim-repeated/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "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.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/js/package.json b/js/package.json deleted file mode 100644 index f2feb770..00000000 --- a/js/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "theopendictionary", - "version": "0.12.0", - "description": "A JavaScript wrapper around the Open Dictionary compiler", - "type": "module", - "main": "dist/index.js", - "repository": "https://github.com/TheOpenDictionary/odict", - "typings": "dist/index.d.ts", - "engines": { - "node": ">=16.13.0" - }, - "scripts": { - "postpublish": "rimraf dist && git push --follow-tags" - }, - "files": [ - "dist" - ], - "author": "", - "license": "ISC", - "devDependencies": { - "@biomejs/biome": "^1.5.1", - "@swc/cli": "^0.3.0", - "@swc/core": "^1.3.24", - "@swc/jest": "^0.2.24", - "@types/jest": "^29.2.4", - "@types/node": "^20.0.0", - "@types/uuid": "^9.0.1", - "concurrently": "^8.0.0", - "find-process": "^1.4.7", - "jest": "^29.3.1", - "prettier": "^3.0.0", - "rimraf": "^5.0.0", - "typescript": "^5.0.0" - }, - "dependencies": { - "flatbuffers": "^23.5.9", - "uuid": "^9.0.0" - } -} diff --git a/js/rome.json b/js/rome.json deleted file mode 100644 index ca402666..00000000 --- a/js/rome.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "files": { - "ignore": ["src/__generated__/*.ts", "dist/**/*", "coverage/**/*"] - } -} diff --git a/js/src/__generated__/compile-payload.ts b/js/src/__generated__/compile-payload.ts deleted file mode 100644 index 7e71b4c6..00000000 --- a/js/src/__generated__/compile-payload.ts +++ /dev/null @@ -1,60 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -export class CompilePayload { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):CompilePayload { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsCompilePayload(bb:flatbuffers.ByteBuffer, obj?:CompilePayload):CompilePayload { - return (obj || new CompilePayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsCompilePayload(bb:flatbuffers.ByteBuffer, obj?:CompilePayload):CompilePayload { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new CompilePayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -path():string|null -path(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -path(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -out():string|null -out(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -out(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -static startCompilePayload(builder:flatbuffers.Builder) { - builder.startObject(2); -} - -static addPath(builder:flatbuffers.Builder, pathOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, pathOffset, 0); -} - -static addOut(builder:flatbuffers.Builder, outOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, outOffset, 0); -} - -static endCompilePayload(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createCompilePayload(builder:flatbuffers.Builder, pathOffset:flatbuffers.Offset, outOffset:flatbuffers.Offset):flatbuffers.Offset { - CompilePayload.startCompilePayload(builder); - CompilePayload.addPath(builder, pathOffset); - CompilePayload.addOut(builder, outOffset); - return CompilePayload.endCompilePayload(builder); -} -} diff --git a/js/src/__generated__/enums.ts b/js/src/__generated__/enums.ts deleted file mode 100644 index 47cdc4ea..00000000 --- a/js/src/__generated__/enums.ts +++ /dev/null @@ -1,3 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export { POS } from './pos.js'; diff --git a/js/src/__generated__/index.ts b/js/src/__generated__/index.ts deleted file mode 100644 index 6de756fc..00000000 --- a/js/src/__generated__/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./service"; -export * from "./enums"; diff --git a/js/src/__generated__/lookup-payload.ts b/js/src/__generated__/lookup-payload.ts deleted file mode 100644 index 17a1a7e8..00000000 --- a/js/src/__generated__/lookup-payload.ts +++ /dev/null @@ -1,98 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { MarkdownStrategy } from './markdown-strategy.js'; - - -export class LookupPayload { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):LookupPayload { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsLookupPayload(bb:flatbuffers.ByteBuffer, obj?:LookupPayload):LookupPayload { - return (obj || new LookupPayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsLookupPayload(bb:flatbuffers.ByteBuffer, obj?:LookupPayload):LookupPayload { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new LookupPayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -follow():boolean { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -split():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -markdown():MarkdownStrategy { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : MarkdownStrategy.Disable; -} - -queries(index: number):string -queries(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -queries(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -queriesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -static startLookupPayload(builder:flatbuffers.Builder) { - builder.startObject(4); -} - -static addFollow(builder:flatbuffers.Builder, follow:boolean) { - builder.addFieldInt8(0, +follow, +false); -} - -static addSplit(builder:flatbuffers.Builder, split:number) { - builder.addFieldInt32(1, split, 0); -} - -static addMarkdown(builder:flatbuffers.Builder, markdown:MarkdownStrategy) { - builder.addFieldInt16(2, markdown, MarkdownStrategy.Disable); -} - -static addQueries(builder:flatbuffers.Builder, queriesOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, queriesOffset, 0); -} - -static createQueriesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startQueriesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static endLookupPayload(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createLookupPayload(builder:flatbuffers.Builder, follow:boolean, split:number, markdown:MarkdownStrategy, queriesOffset:flatbuffers.Offset):flatbuffers.Offset { - LookupPayload.startLookupPayload(builder); - LookupPayload.addFollow(builder, follow); - LookupPayload.addSplit(builder, split); - LookupPayload.addMarkdown(builder, markdown); - LookupPayload.addQueries(builder, queriesOffset); - return LookupPayload.endLookupPayload(builder); -} -} diff --git a/js/src/__generated__/markdown-strategy.ts b/js/src/__generated__/markdown-strategy.ts deleted file mode 100644 index 81581221..00000000 --- a/js/src/__generated__/markdown-strategy.ts +++ /dev/null @@ -1,7 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export enum MarkdownStrategy { - Disable = 0, - Text = 1, - HTML = 2 -} diff --git a/js/src/__generated__/method.ts b/js/src/__generated__/method.ts deleted file mode 100644 index 4f13f469..00000000 --- a/js/src/__generated__/method.ts +++ /dev/null @@ -1,11 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export enum Method { - Lookup = 1, - Split = 2, - Index = 3, - Search = 4, - Compile = 5, - Write = 6, - Lexicon = 7 -} diff --git a/js/src/__generated__/odict-method.ts b/js/src/__generated__/odict-method.ts deleted file mode 100644 index e265987f..00000000 --- a/js/src/__generated__/odict-method.ts +++ /dev/null @@ -1,12 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export enum ODictMethod { - Lookup = 1, - Split = 2, - Index = 3, - Search = 4, - Compile = 5, - Write = 6, - Lexicon = 7, - Ready = 8 -} diff --git a/js/src/__generated__/pos.ts b/js/src/__generated__/pos.ts deleted file mode 100644 index e012f257..00000000 --- a/js/src/__generated__/pos.ts +++ /dev/null @@ -1,118 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export enum POS { - un = 0, - adj = 1, - adv = 2, - art = 3, - conj = 4, - intj = 5, - n = 6, - part = 7, - pref = 8, - prep = 9, - postp = 10, - pron = 11, - suff = 12, - v = 13, - abv = 14, - adf = 15, - aff = 16, - aux_adj = 17, - aux_v = 18, - aux = 19, - chr = 20, - conj_c = 21, - conj_s = 22, - cop = 23, - cf = 24, - ctr = 25, - det = 26, - expr = 27, - inf = 28, - intf = 29, - name = 30, - num = 31, - phr_adv = 32, - phr_adj = 33, - phr_prep = 34, - phr = 35, - propn = 36, - prov = 37, - punc = 38, - sym = 39, - vi = 40, - vt = 41, - adj_f = 42, - adj_ix = 43, - adj_kari = 44, - adj_ku = 45, - adj_na = 46, - adj_nari = 47, - adj_no = 48, - adj_pn = 49, - adj_shiku = 50, - adj_t = 51, - adv_to = 52, - n_adv = 53, - n_pref = 54, - n_suf = 55, - n_t = 56, - v_unspec = 57, - v1_s = 58, - v1 = 59, - v2a_s = 60, - v2b_k = 61, - v2b_s = 62, - v2d_k = 63, - v2d_s = 64, - v2g_k = 65, - v2g_s = 66, - v2h_k = 67, - v2h_s = 68, - v2k_k = 69, - v2k_s = 70, - v2m_k = 71, - v2m_s = 72, - v2n_s = 73, - v2r_k = 74, - v2r_s = 75, - v2s_s = 76, - v2t_k = 77, - v2t_s = 78, - v2w_s = 79, - v2y_k = 80, - v2y_s = 81, - v2z_s = 82, - v4b = 83, - v4g = 84, - v4h = 85, - v4k = 86, - v4m = 87, - v4n = 88, - v4r = 89, - v4s = 90, - v4t = 91, - v5aru = 92, - v5b = 93, - v5g = 94, - v5k_s = 95, - v5k = 96, - v5m = 97, - v5n = 98, - v5r_i = 99, - v5r = 100, - v5s = 101, - v5t = 102, - v5u_s = 103, - v5u = 104, - v5uru = 105, - vk = 106, - vn = 107, - vr = 108, - vs_c = 109, - vs_i = 110, - vs_s = 111, - vs = 112, - vz = 113 -} diff --git a/js/src/__generated__/search-payload.ts b/js/src/__generated__/search-payload.ts deleted file mode 100644 index 7a8d4542..00000000 --- a/js/src/__generated__/search-payload.ts +++ /dev/null @@ -1,68 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -export class SearchPayload { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):SearchPayload { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsSearchPayload(bb:flatbuffers.ByteBuffer, obj?:SearchPayload):SearchPayload { - return (obj || new SearchPayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsSearchPayload(bb:flatbuffers.ByteBuffer, obj?:SearchPayload):SearchPayload { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new SearchPayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -force():boolean { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -exact():boolean { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -query():string|null -query(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -query(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -static startSearchPayload(builder:flatbuffers.Builder) { - builder.startObject(3); -} - -static addForce(builder:flatbuffers.Builder, force:boolean) { - builder.addFieldInt8(0, +force, +false); -} - -static addExact(builder:flatbuffers.Builder, exact:boolean) { - builder.addFieldInt8(1, +exact, +false); -} - -static addQuery(builder:flatbuffers.Builder, queryOffset:flatbuffers.Offset) { - builder.addFieldOffset(2, queryOffset, 0); -} - -static endSearchPayload(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createSearchPayload(builder:flatbuffers.Builder, force:boolean, exact:boolean, queryOffset:flatbuffers.Offset):flatbuffers.Offset { - SearchPayload.startSearchPayload(builder); - SearchPayload.addForce(builder, force); - SearchPayload.addExact(builder, exact); - SearchPayload.addQuery(builder, queryOffset); - return SearchPayload.endSearchPayload(builder); -} -} diff --git a/js/src/__generated__/service.ts b/js/src/__generated__/service.ts deleted file mode 100644 index 773a90ed..00000000 --- a/js/src/__generated__/service.ts +++ /dev/null @@ -1,9 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export { CompilePayload } from './compile-payload.js'; -export { LookupPayload } from './lookup-payload.js'; -export { MarkdownStrategy } from './markdown-strategy.js'; -export { ODictMethod } from './odict-method.js'; -export { SearchPayload } from './search-payload.js'; -export { SplitPayload } from './split-payload.js'; -export { WritePayload } from './write-payload.js'; diff --git a/js/src/__generated__/split-payload.ts b/js/src/__generated__/split-payload.ts deleted file mode 100644 index cb36aa3b..00000000 --- a/js/src/__generated__/split-payload.ts +++ /dev/null @@ -1,58 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -export class SplitPayload { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):SplitPayload { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsSplitPayload(bb:flatbuffers.ByteBuffer, obj?:SplitPayload):SplitPayload { - return (obj || new SplitPayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsSplitPayload(bb:flatbuffers.ByteBuffer, obj?:SplitPayload):SplitPayload { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new SplitPayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -threshold():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -query():string|null -query(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -query(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -static startSplitPayload(builder:flatbuffers.Builder) { - builder.startObject(2); -} - -static addThreshold(builder:flatbuffers.Builder, threshold:number) { - builder.addFieldInt32(0, threshold, 0); -} - -static addQuery(builder:flatbuffers.Builder, queryOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, queryOffset, 0); -} - -static endSplitPayload(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createSplitPayload(builder:flatbuffers.Builder, threshold:number, queryOffset:flatbuffers.Offset):flatbuffers.Offset { - SplitPayload.startSplitPayload(builder); - SplitPayload.addThreshold(builder, threshold); - SplitPayload.addQuery(builder, queryOffset); - return SplitPayload.endSplitPayload(builder); -} -} diff --git a/js/src/__generated__/write-payload.ts b/js/src/__generated__/write-payload.ts deleted file mode 100644 index 1eb85eba..00000000 --- a/js/src/__generated__/write-payload.ts +++ /dev/null @@ -1,60 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -export class WritePayload { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):WritePayload { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsWritePayload(bb:flatbuffers.ByteBuffer, obj?:WritePayload):WritePayload { - return (obj || new WritePayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsWritePayload(bb:flatbuffers.ByteBuffer, obj?:WritePayload):WritePayload { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new WritePayload()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -xml():string|null -xml(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -xml(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -out():string|null -out(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -out(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -static startWritePayload(builder:flatbuffers.Builder) { - builder.startObject(2); -} - -static addXml(builder:flatbuffers.Builder, xmlOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, xmlOffset, 0); -} - -static addOut(builder:flatbuffers.Builder, outOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, outOffset, 0); -} - -static endWritePayload(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createWritePayload(builder:flatbuffers.Builder, xmlOffset:flatbuffers.Offset, outOffset:flatbuffers.Offset):flatbuffers.Offset { - WritePayload.startWritePayload(builder); - WritePayload.addXml(builder, xmlOffset); - WritePayload.addOut(builder, outOffset); - return WritePayload.endWritePayload(builder); -} -} diff --git a/js/src/dictionary.ts b/js/src/dictionary.ts deleted file mode 100644 index 47a90898..00000000 --- a/js/src/dictionary.ts +++ /dev/null @@ -1,221 +0,0 @@ -import { Builder } from "flatbuffers"; - -import { CompilePayload } from "./__generated__/compile-payload.js"; -import { - LookupPayload, - MarkdownStrategy, - SearchPayload, - SplitPayload, - WritePayload, -} from "./__generated__/index.js"; -import { ODictMethod } from "./__generated__/odict-method.js"; -import { startService } from "./service.js"; -import type { - DictionaryOptions, - Entry, - LookupOptions, - Query, - SearchOptions, -} from "./types.js"; -import { generateOutputPath, queryToString } from "./utils.js"; - -function createBuilder() { - return new Builder(1024); -} - -class Dictionary { - private readonly options: DictionaryOptions; - - constructor( - public readonly path: string, - options: Partial = {}, - ) { - this.options = options; - } - - /** - * Compiles an ODXML file to a compiled dictionary - * - * @param xmlPath The path to the XML file to compile - * @param outPath The destination path (autogenerated if omitted) - * @returns A pointer to the compiled Dictionary - */ - static async compile(xmlPath: string, outPath?: string): Promise { - const service = await startService(); - const out = outPath ?? generateOutputPath(xmlPath); - const builder = createBuilder(); - - const pathS = builder.createString(xmlPath); - const outS = builder.createString(out); - - CompilePayload.startCompilePayload(builder); - CompilePayload.addPath(builder, pathS); - CompilePayload.addOut(builder, outS); - - const payload = CompilePayload.endCompilePayload(builder); - - builder.finish(payload); - - await service.run(ODictMethod.Compile, builder.asUint8Array()); - - return new Dictionary(out); - } - - /** - * Writes an ODXML string to a compiled dictionary file - * - * @param xml The XML to compile - * @param outPath The destination path - * @returns A pointer to the compiled dictionary - */ - static async write(xml: string, outPath: string): Promise { - const service = await startService(); - const builder = createBuilder(); - const xmlS = builder.createString(xml); - const outS = builder.createString(outPath); - - WritePayload.startWritePayload(builder); - WritePayload.addXml(builder, xmlS); - WritePayload.addOut(builder, outS); - - const payload = WritePayload.endWritePayload(builder); - - builder.finish(payload); - - await service.run(ODictMethod.Write, builder.asUint8Array()); - - return new Dictionary(outPath); - } - - /** - * Indexes a compiled dictionary so it can be searched via the search() method - */ - async index() { - const service = await startService(this.path); - - await service.run(ODictMethod.Index); - } - - /** - * Searches a compiled dictionary using full-text search - * - * @param query The query (or a list of queries) to search - * @param options Search options - * @returns A nested array of entries - */ - async search( - query: Query | Query[], - options: SearchOptions = {}, - ): Promise { - const service = await startService(this.path); - const queries = Array.isArray(query) ? query : [query]; - - return Promise.all( - queries.map(queryToString).map(async (query) => { - const builder = createBuilder(); - const queryS = builder.createString(query); - - SearchPayload.startSearchPayload(builder); - SearchPayload.addQuery(builder, queryS); - SearchPayload.addExact(builder, options.exact ?? false); - SearchPayload.addForce(builder, options.force ?? false); - - const payload = SearchPayload.endSearchPayload(builder); - - builder.finish(payload); - - return service.run(ODictMethod.Search, builder.asUint8Array()); - }), - ); - } - - /** - * Returns a list of all headwords in the dictionary - * - * @returns A list of all headwords in the dictionary - */ - async lexicon(): Promise { - const service = await startService(this.path); - return service.run(ODictMethod.Lexicon); - } - - /** - * Looks up an entry in the dictionary - * - * @param query The query (or a list of queries) to lookup - * @param options Lookup options - * @returns A nested array of entries - */ - async lookup( - query: Query | Query[], - options: LookupOptions = {}, - ): Promise { - const service = await startService(this.path); - - const queries = Array.isArray(query) ? query : [query]; - - const { follow, split = this.options.defaultSplitThreshold } = options; - - const builder = createBuilder(); - - const queriesS = queries - .map(queryToString) - .map((str) => builder.createString(str)); - - const queriesV = LookupPayload.createQueriesVector(builder, queriesS); - - let markdown: MarkdownStrategy | undefined; - - if (options.markdownStrategy === "html") { - markdown = MarkdownStrategy.HTML; - } - - if (options.markdownStrategy === "disable") { - markdown = MarkdownStrategy.Disable; - } - - if (options.markdownStrategy === "text") { - markdown = MarkdownStrategy.Text; - } - - LookupPayload.startLookupPayload(builder); - LookupPayload.addQueries(builder, queriesV); - LookupPayload.addFollow(builder, follow ?? false); - LookupPayload.addSplit(builder, split ?? 0); - - if (markdown) { - LookupPayload.addMarkdown(builder, markdown); - } - - const payload = LookupPayload.endLookupPayload(builder); - - builder.finish(payload); - - return service.run(ODictMethod.Lookup, builder.asUint8Array()); - } - - /** - * Splits a query into its definable subparts - * - * @param query The query (or a list of queries) to lookup - * @param options Lookup options - * @returns A nested array of entries - */ - async split(query: string, threshold: number): Promise { - const service = await startService(this.path); - const builder = createBuilder(); - const queryS = builder.createString(query); - - SplitPayload.startSplitPayload(builder); - SplitPayload.addThreshold(builder, threshold); - SplitPayload.addQuery(builder, queryS); - - const payload = SplitPayload.endSplitPayload(builder); - - builder.finish(payload); - - return service.run(ODictMethod.Split, builder.asUint8Array()); - } -} - -export { Dictionary }; diff --git a/js/src/index.ts b/js/src/index.ts deleted file mode 100644 index 82bd1e41..00000000 --- a/js/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./dictionary.js"; -export * from "./types.js"; diff --git a/js/src/ipc.ts b/js/src/ipc.ts deleted file mode 100644 index 836935af..00000000 --- a/js/src/ipc.ts +++ /dev/null @@ -1,249 +0,0 @@ -import { appendFileSync } from "node:fs"; -import { v4 as uuid } from "uuid"; - -import { ChildProcess, spawn } from "node:child_process"; -import { EventEmitter } from "node:events"; - -export interface GoPayload { - id: string; - event: string; - data: Data; - error: Error; - SR: boolean; -} - -export type Channel = string | { event: string; id: string }; - -/** - Adapted from https://github.com/Akumzy/ipc-node/blob/master/src/index.ts - - MIT License - - Copyright (c) 2019 Akuma Isaac Akuma - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - */ -export class IPC extends EventEmitter { - go: ChildProcess | null; - - closed: boolean; - - constructor(private binPath: string) { - super(); - - this.go = null; - - this.closed = false; - - /** - * The `Golang` process will be pinging at every 20 seconds - * and will wait another 20 seconds for reply via `pong` event name - * else it will kill it's process. - */ - this.on("ping", () => this.send("pong")); - } - - /** - * Start the child process - * @param arg - */ - public init(arg: string[] = []) { - const self = this; - const go = spawn(this.binPath, arg, {}); - - this.closed = false; - this.go = go; - - go.stderr.setEncoding("utf8"); - go.stdout.setEncoding("utf8"); - - // emit the errors - go.stderr.on("error", (e) => self.emit("error", e)); - go.stderr.on("data", (e) => self.emit("log", e)); - - let outBuffer = ""; - - go.stdout.on("data", (s) => { - outBuffer += s; - - if (s.endsWith("}\\n")) { - if (process.env.ODICT_DEBUG_IPC) { - appendFileSync("ipc.log", `NODE RECEIVED: ${outBuffer}`); - } - self._processData(outBuffer); - outBuffer = ""; - } - }); - - go.once("close", (_) => { - self.closed = true; - self.emit("close"); - }); - - process.on("beforeExit", () => this.kill()); - - return this; - } - - private _processData(payload: string) { - const _data = this.parseJSON(payload); - - if (Array.isArray(_data)) { - for (const item of _data) { - const { id, error, data, event } = item; - - this.emit("data", item); - this.emit(event, data, error); - this.emit(`${event}:${id}`, data, error); - } - } - } - - /** - * Kill the child process - */ - public kill() { - try { - this.send("___EXIT___", null); - this.closed = true; - this.go?.kill(); - this.emit("killed"); - } catch (error) { - console.log(error); - } - } - - /** - * Send message to `Golang` process - * @param event - * @param data - */ - public send(event: Channel, data: Data | undefined = undefined) { - this._send(event, data, false); - } - - /** - * sendRaw gives your access to a third `boolean` argument which - * is used to determine if this is a sendAndReceive action - */ - public sendRaw(event: Channel, data: Data, isSendAndReceive = false) { - this._send(event, data, isSendAndReceive); - } - - /** - * @param event - * @param data - * @param SR this tells `Go` process if this message needs an acknowledgement - */ - private _send(event: Channel, data: Data, SR: boolean) { - try { - if (this.go && !this.closed && this.go.stdin?.writable) { - const payload = typeof data === "object" || Array.isArray(data) - ? JSON.stringify(data) - : data; - - // We are converting this to `JSON` this to preserve the - // data types - const d = JSON.stringify({ - id: typeof event === "string" ? uuid() : event.id, - event: typeof event === "string" ? event : event.event, - data: payload, - SR: !!SR, - }); - - if (this.go.stdin.writable) { - const text = d + "\n"; - - if (process.env.ODICT_DEBUG_IPC) { - appendFileSync("ipc.log", `NODE SENT: ${text}`); - } - - this.go.stdin.write(text); - } - } - } catch (error) { - this.emit("error", error); - } - } - - /** - * Send and receive an acknowledgement through - * a callback from `Go` process - * @param event - * @param data - * @param cb - */ - public sendAndReceive( - event: string, - data: any, - cb: (error: Error, data: any) => void, - ) { - const id = uuid(); - - this._send({ event, id }, data, true); - - const rc = `${event}:${id}`; - - this.once(rc, (data, error) => { - if (typeof cb === "function") { - cb(error, data); - } - }); - } - - /** - * Send and receive an acknowledgement through - * a callback from `Go` process - * @param event - * @param data - * @param cb - */ - public receive( - event: string, - data: any, - cb: (error: Error, data: any) => void, - ) { - const id = uuid(); - - this._send({ event, id }, data, true); - - const rc = `${event}:${id}`; - - this.once(rc, (data, error) => { - if (typeof cb === "function") { - cb(error, data); - } - }); - } - - private parseJSON(s: string): GoPayload[] | null { - try { - let data = s.replace(/}\\n/g, "},"); - - if (data.endsWith(",")) { - data = data.slice(0, -1).trim(); - } - - return JSON.parse(`[${data}]`); - } catch (error) { - this.emit("parse-error", error); - return null; - } - } -} diff --git a/js/src/service.ts b/js/src/service.ts deleted file mode 100644 index a36b7883..00000000 --- a/js/src/service.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { v4 as uuid } from "uuid"; - -import { join } from "node:path"; -import { fileURLToPath } from "node:url"; - -import { ODictMethod } from "./__generated__"; -import { IPC } from "./ipc"; - -type ProcessWrapper = { - run: (method: ODictMethod, buffer?: Uint8Array) => Promise; - stop: () => void; -}; - -const openDictionaries: Map = new Map(); - -export function teardownServices() { - openDictionaries.forEach((process) => process.stop()); - openDictionaries.clear(); -} - -process.on("beforeExit", () => { - teardownServices(); -}); - -function getExecutablePath() { - return process.env.RUNTIME_ENV === "test" - ? join(fileURLToPath(import.meta.url), "../../../bin/odict") - : "odict"; -} - -function getCacheKey(dictionaryPath?: string) { - return dictionaryPath ?? "shared"; -} - -function createNewProcessWrapper( - dictionaryPath?: string, -): Promise { - return new Promise((resolve, reject) => { - const cacheKey = getCacheKey(dictionaryPath); - const executable = getExecutablePath(); - const ipc = new IPC(executable); - - function stop() { - ipc.kill(); - } - - const processWrapper: ProcessWrapper = { - stop, - run(method, payload) { - return new Promise((resolve, reject) => { - ipc.sendAndReceive( - ODictMethod[method], - payload ? Buffer.from(payload).toString("base64") : "", - (err, data) => (err ? reject(err) : resolve(data)), - ); - }); - }, - }; - - ipc.on("close", () => openDictionaries.delete(cacheKey)); - - ipc.on("killed", () => openDictionaries.delete(cacheKey)); - - ipc.on(ODictMethod[ODictMethod.Ready], (data, err) => { - if (err) { - stop(); - - const msg = dictionaryPath - ? `Encountered an error starting the ODict service for path "${dictionaryPath}": ${err}` - : `Encountered an error starting the ODict service: ${err}`; - - reject(msg); - } else if (data) { - resolve(processWrapper); - } - }); - - ipc.init(["service", dictionaryPath ?? ""]); - }); -} -/** - * Executes the ODict binary - * - * @param args Arguments to pass to the executable - * @returns The raw stdout output string - */ -export async function startService( - dictionaryPath?: string, -): Promise { - const cacheKey = getCacheKey(dictionaryPath); - - if (!openDictionaries.has(cacheKey)) { - openDictionaries.set( - cacheKey, - await createNewProcessWrapper(dictionaryPath), - ); - } - - return openDictionaries.get(cacheKey) as ProcessWrapper; -} diff --git a/js/src/types.ts b/js/src/types.ts deleted file mode 100644 index 6433cd86..00000000 --- a/js/src/types.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { POS } from "./__generated__"; - -export type WordWithFallback = { word: string; fallback: string }; - -export type Query = WordWithFallback | string; - -type MarkdownStrategy = "disable" | "html" | "text"; - -export interface DictionaryOptions { - defaultSplitThreshold?: number; -} - -export interface LookupOptions { - split?: number; - markdownStrategy?: MarkdownStrategy; - follow?: boolean; -} - -export interface SearchOptions { - force?: boolean; - exact?: boolean; -} - -export interface Entry { - id?: string; - term: string; - pronunciation?: string; - etymologies: Etymology[]; -} - -export interface Etymology { - id?: string; - description?: string; - senses: Record; -} - -export interface DefinitionNote { - id?: string; - value?: string; - examples?: string[]; -} - -export interface Definition { - value?: string; - examples?: string[]; - notes?: DefinitionNote[]; -} - -export interface Sense { - id?: string; - pos: string; - description?: string; - definitions: Definition[]; - groups: Group[]; -} - -export interface Group { - id?: string; - description: string; - definitions: Definition[]; -} - -export type PartOfSpeech = keyof typeof POS; - -export const PartOfSpeech = Object.entries(POS).reduce((acc, [key, value]) => { - const t = POS[POS.det]; - - if (typeof value === "number") { - acc[key as PartOfSpeech] = key as PartOfSpeech; - } - return acc; -}, {} as Record); diff --git a/js/src/utils.ts b/js/src/utils.ts deleted file mode 100644 index cbcea1f4..00000000 --- a/js/src/utils.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { basename, dirname, extname, join } from "node:path"; - -import type { Query } from "./types.js"; - -export function generateOutputPath(xmlPath: string) { - const dir = dirname(xmlPath); - const filename = basename(xmlPath, extname(xmlPath)); - - return join(dir, [filename, ".odict"].join("")); -} - -export function queryToString(query: Query | string) { - if (typeof query === "string") { - return query; - } - - return `${query.word.trim()} (${query.fallback.trim()})`; -} diff --git a/js/test/__snapshots__/dictionary.spec.ts.snap b/js/test/__snapshots__/dictionary.spec.ts.snap deleted file mode 100644 index d35cfbe9..00000000 --- a/js/test/__snapshots__/dictionary.spec.ts.snap +++ /dev/null @@ -1,390 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Dictionary can index and search a dictionary 1`] = ` -[ - [ - { - "etymologies": null, - "see": "run", - "term": "ran", - }, - { - "etymologies": [ - { - "description": "Latin root", - "senses": { - "n": { - "definitions": [ - { - "examples": [ - "The dog runs after the cat.", - "The horse ran away.", - ], - "value": "(vertebrates) To move swiftly", - }, - { - "value": "Act or instance of hurrying (to or from a place) (not necessarily by foot); dash or errand, trip.", - }, - { - "value": "A pleasure trip.", - }, - { - "value": "Flight, instance or period of fleeing.", - }, - { - "value": "Migration (of fish).", - }, - { - "value": "A group of fish that migrate, or ascend a river for the purpose of spawning.", - }, - ], - }, - "v": { - "groups": [ - { - "definitions": [ - { - "examples": [ - "The dog runs after the cat.", - "The horse ran away.", - ], - "value": "(vertebrates) To move swiftly (figuratively)", - }, - { - "value": "(fluids) To flow.", - }, - { - "value": "(nautical, of a vessel) To sail before the wind, in distinction from reaching or sailing close-hauled.", - }, - { - "value": "(social) To carry out an activity.", - }, - { - "value": "To extend or persist, statically or dynamically, through space or time.", - }, - { - "value": "(transitive) To execute or carry out a plan, procedure or program.", - }, - ], - "description": "A number of verb senses", - }, - ], - }, - }, - }, - ], - "term": "run", - }, - ], -] -`; - -exports[`Dictionary can split terms properly 1`] = ` -[ - { - "etymologies": [ - { - "description": "Latin root", - "senses": { - "n": { - "definitions": [ - { - "examples": [ - "There goes a cat!", - ], - "notes": [ - { - "examples": [ - "Some example", - ], - "value": "Some definition note", - }, - ], - "value": "a cat", - }, - ], - }, - }, - }, - ], - "term": "cat", - }, - { - "etymologies": [ - { - "description": "Latin root", - "pronunciation": "dooooog", - "senses": { - "un": { - "definitions": [ - { - "value": "a dog", - }, - ], - }, - }, - }, - ], - "term": "dog", - }, -] -`; - -exports[`Dictionary lookup can split terms 1`] = ` -[ - [ - { - "etymologies": [ - { - "description": "Latin root", - "senses": { - "n": { - "definitions": [ - { - "examples": [ - "There goes a cat!", - ], - "notes": [ - { - "examples": [ - "Some example", - ], - "value": "Some definition note", - }, - ], - "value": "a cat", - }, - ], - }, - }, - }, - ], - "term": "cat", - }, - { - "etymologies": [ - { - "description": "Latin root", - "pronunciation": "dooooog", - "senses": { - "un": { - "definitions": [ - { - "value": "a dog", - }, - ], - }, - }, - }, - ], - "term": "dog", - }, - ], -] -`; - -exports[`Dictionary lookup considers markdown strategies correctly 1`] = ` -[ - [ - { - "etymologies": [ - { - "description": "Latin root", - "senses": { - "v": { - "definitions": [ - { - "value": "This **is** a _markdown_ test", - }, - ], - }, - }, - }, - ], - "term": "markdown", - }, - ], -] -`; - -exports[`Dictionary lookup considers markdown strategies correctly 2`] = ` -[ - [ - { - "etymologies": [ - { - "description": "Latin root", - "senses": { - "v": { - "definitions": [ - { - "value": "This is a markdown test", - }, - ], - }, - }, - }, - ], - "term": "markdown", - }, - ], -] -`; - -exports[`Dictionary lookup considers markdown strategies correctly 3`] = ` -[ - [ - { - "etymologies": [ - { - "description": "Latin root", - "senses": { - "v": { - "definitions": [ - { - "value": "This is a markdown test", - }, - ], - }, - }, - }, - ], - "term": "markdown", - }, - ], -] -`; - -exports[`Dictionary lookup looks up terms properly 1`] = ` -[ - [ - { - "etymologies": [ - { - "description": "Latin root", - "senses": { - "n": { - "definitions": [ - { - "examples": [ - "There goes a cat!", - ], - "notes": [ - { - "examples": [ - "Some example", - ], - "value": "Some definition note", - }, - ], - "value": "a cat", - }, - ], - }, - }, - }, - ], - "term": "cat", - }, - ], -] -`; - -exports[`Dictionary restarts if the process was killed 1`] = ` -[ - [ - { - "etymologies": [ - { - "description": "Latin root", - "pronunciation": "dooooog", - "senses": { - "un": { - "definitions": [ - { - "value": "a dog", - }, - ], - }, - }, - }, - ], - "term": "dog", - }, - ], -] -`; - -exports[`Dictionary restarts if the process was killed 2`] = ` -[ - [ - { - "etymologies": [ - { - "description": "Latin root", - "senses": { - "n": { - "definitions": [ - { - "examples": [ - "The dog runs after the cat.", - "The horse ran away.", - ], - "value": "(vertebrates) To move swiftly", - }, - { - "value": "Act or instance of hurrying (to or from a place) (not necessarily by foot); dash or errand, trip.", - }, - { - "value": "A pleasure trip.", - }, - { - "value": "Flight, instance or period of fleeing.", - }, - { - "value": "Migration (of fish).", - }, - { - "value": "A group of fish that migrate, or ascend a river for the purpose of spawning.", - }, - ], - }, - "v": { - "groups": [ - { - "definitions": [ - { - "examples": [ - "The dog runs after the cat.", - "The horse ran away.", - ], - "value": "(vertebrates) To move swiftly (figuratively)", - }, - { - "value": "(fluids) To flow.", - }, - { - "value": "(nautical, of a vessel) To sail before the wind, in distinction from reaching or sailing close-hauled.", - }, - { - "value": "(social) To carry out an activity.", - }, - { - "value": "To extend or persist, statically or dynamically, through space or time.", - }, - { - "value": "(transitive) To execute or carry out a plan, procedure or program.", - }, - ], - "description": "A number of verb senses", - }, - ], - }, - }, - }, - ], - "term": "run", - }, - ], -] -`; diff --git a/js/test/dictionary.spec.ts b/js/test/dictionary.spec.ts deleted file mode 100644 index 7ddf0f20..00000000 --- a/js/test/dictionary.spec.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { afterAll, beforeAll, describe, expect, it } from "@jest/globals"; -import findProcess from "find-process"; - -import { existsSync } from "node:fs"; -import { rm, stat } from "node:fs/promises"; -import { join } from "node:path"; -import { fileURLToPath } from "node:url"; - -import { Dictionary } from "../src"; -import { teardownServices } from "../src/service"; - -describe("Dictionary", () => { - let dict1: Dictionary; - let dict2: Dictionary; - - afterAll(() => { - teardownServices(); - }); - - beforeAll(async () => { - dict1 = await Dictionary.compile( - join( - fileURLToPath(new URL(import.meta.url)), - "../../../examples/example1.xml", - ), - ); - - dict2 = await Dictionary.compile( - join( - fileURLToPath(new URL(import.meta.url)), - "../../../examples/example2.xml", - ), - ); - - const stat1 = await stat(dict1.path); - const stat2 = await stat(dict2.path); - - expect(stat1.isFile).toBeTruthy(); - expect(stat2.isFile).toBeTruthy(); - }); - - it("restarts if the process was killed", async () => { - const result1 = await dict1.lookup({ - word: "dog", - fallback: "dog", - }); - - expect(result1).toMatchSnapshot(); - - const processes = await findProcess("name", "odict", true); - - processes.forEach((p) => process.kill(p.pid)); - - await new Promise((r) => setTimeout(r, 0)); // Not sure why this is needed... - - const result2 = await dict1.lookup({ - word: "run", - fallback: "run", - }); - - expect(result2).toMatchSnapshot(); - }); - - describe("lookup", () => { - it("looks up terms properly", async () => { - const result = await dict1.lookup({ word: "cat", fallback: "cat" }); - expect(result).toMatchSnapshot(); - }); - - it("doesn't split unless specified", async () => { - const result = await dict1.lookup("catdog"); - expect(result[0].length).toBe(0); - }); - - it("can split terms", async () => { - const result = await dict1.lookup("catdog", { split: 3 }); - expect(result).toMatchSnapshot(); - }); - - it("considers markdown strategies correctly", async () => { - const result1 = await dict2.lookup("markdown", { - markdownStrategy: "disable", - }); - - const result2 = await dict2.lookup("markdown", { - markdownStrategy: "text", - }); - - const result3 = await dict2.lookup("markdown", { - markdownStrategy: "html", - }); - - expect(result1).toMatchSnapshot(); - expect(result2).toMatchSnapshot(); - expect(result3).toMatchSnapshot(); - }); - }); - - it("can return the lexicon", async () => { - const result = await dict1.lexicon(); - expect(result).toStrictEqual(["cat", "dog", "poo", "ran", "run"]); - }); - - it("can write raw XML", async () => { - await Dictionary.write( - 'hello worldhello world" )', - "test.odict", - ); - - expect(existsSync("test.odict")).toBeTruthy(); - - await rm("test.odict"); - }); - - it("can split terms properly", async () => { - const result = await dict1.split("catdog", 2); - expect(result).toMatchSnapshot(); - }); - - it("can index and search a dictionary", async () => { - await dict1.index(); - - const results = await dict1.search("run"); - - expect(results).toMatchSnapshot(); - }); - - it("throws errors inside JavaScript", async () => { - try { - const dict = new Dictionary("fake-alias"); - await dict.lookup("dog"); - } catch (e) { - expect(e as Error).toEqual( - 'Encountered an error starting the ODict service for path "fake-alias": open : no such file or directory', - ); - } - }); -}); diff --git a/js/test/pos.spec.ts b/js/test/pos.spec.ts deleted file mode 100644 index 1b886938..00000000 --- a/js/test/pos.spec.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { describe, expect, it } from "@jest/globals"; - -import { PartOfSpeech } from "../src"; - -describe("Part Of Speech", () => { - it("generated value map properly", async () => { - expect(PartOfSpeech.abv).toBe("abv"); - }); -}); diff --git a/js/test/utils.spec.ts b/js/test/utils.spec.ts deleted file mode 100644 index 2da3435f..00000000 --- a/js/test/utils.spec.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Dictionary } from "../src"; -import { generateOutputPath } from "../src/utils"; - -describe("Utilities", () => { - describe("generateOutputPath", () => { - it("generates path properly", () => { - const output = generateOutputPath("/some/fake/path/mydict.xml"); - expect(output).toBe("/some/fake/path/mydict.odict"); - }); - }); -}); diff --git a/justfile b/justfile index 3003c368..e8623be9 100644 --- a/justfile +++ b/justfile @@ -2,20 +2,19 @@ # Global # # ---------------------------------------------------------------------------- # -@deps: +@deps: && (node "deps") mise install - corepack enable - corepack install -g pnpm - just python deps + corepack enable -@build +args="": deps - cargo build {{args}} +@bench +args="": + cargo bench {{args}} + +build +args="": + cargo build -p cli {{args}} # @build-all +args="": deps (cli "schema") sync # goreleaser build --id odict --clean {{args}} -@schema: (cli "schema") (js "schema") - @insta +args="": cargo insta {{args}} @@ -25,12 +24,12 @@ @run +args="": cargo run {{args}} -@test: +test: && (node "test") cargo test rm -rf **/.odict # deps xsd (go "test") (jvm "test") (python "test") (js "test") (wasm "test") clean -@clean: (python "clean") (jvm "clean") (js "clean") +@clean: (python "clean") (jvm "clean") # @publish +args="--auto-snapshot --clean": # goreleaser release {{args}} @@ -48,8 +47,8 @@ @jvm +command: just jvm/{{command}} -@js +command: - just js/{{command}} +@node +command: + just node/{{command}} @python +command: just python/{{command}} diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 682215cf..65c2adac 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -8,9 +8,12 @@ json = ["dep:serde_json"] sql = ["dep:sea-query"] config = ["dep:dirs"] charabia = ["dep:charabia"] -search = ["dep:tantivy", "dep:tantivy-tokenizer-api"] +search = ["dep:tantivy"] default = ["json", "sql", "config"] +[[bench]] +name = "lib" +harness = false [dependencies] lz4_flex = { version = "0.11.3", default-features = false, features = [ @@ -29,15 +32,20 @@ rkyv = { version = "0.7.44", features = [ serde = { version = "1.0.200", features = ["serde_derive"] } uuid = { version = "1.8.0", features = ["v4", "fast-rng", "macro-diagnostics"] } pulldown-cmark = "0.10.3" -dirs = { version = "5.0.1", optional = true } once_cell = "1.19.0" -serde_json = { version = "1.0.116", optional = true } validation = "0.0.1" -tantivy = { version = "0.21.1", optional = true } +# feature=json +serde_json = { version = "1.0.116", optional = true } +# feature=charabia charabia = { version = "0.8.10", optional = true } -tantivy-tokenizer-api = { version = "0.2.0", optional = true } +# feature=search +tantivy = { version = "0.22.0", optional = true } +# feature=config +dirs = { version = "5.0.1", optional = true } +# feature=sql sea-query = { version = "0.30.7", optional = true } [dev-dependencies] insta = "1.38.0" map-macro = "0.3.0" +criterion = { version = "0.5.1", features = ["html_reports"] } diff --git a/lib/benches/helpers.rs b/lib/benches/helpers.rs new file mode 100644 index 00000000..d42bac0b --- /dev/null +++ b/lib/benches/helpers.rs @@ -0,0 +1,17 @@ +use once_cell::sync::Lazy; +use std::error::Error; + +use odict::{DictionaryFile, DictionaryReader, DictionaryWriter}; + +pub fn create_archive_dict(name: &str) -> Result> { + let reader = DictionaryReader::default(); + let writer = DictionaryWriter::default(); + let input = format!("../examples/{}.xml", name); + let output = format!("../examples/{}.odict", name); + + writer.compile_xml(&input, &output)?; + reader.read_from_path(&output) +} + +pub static EXAMPLE_DICTIONARY_1: Lazy = + Lazy::new(|| create_archive_dict("wiktionary").unwrap()); diff --git a/lib/benches/lib.rs b/lib/benches/lib.rs new file mode 100644 index 00000000..b3fc48da --- /dev/null +++ b/lib/benches/lib.rs @@ -0,0 +1,48 @@ +use std::fs::read_to_string; + +use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use odict::{lookup::LookupOptions, Dictionary, DictionaryWriter}; + +mod helpers; + +use helpers::EXAMPLE_DICTIONARY_1; + +fn bench_lookup(c: &mut Criterion) { + let dict = EXAMPLE_DICTIONARY_1.to_archive().unwrap(); + + c.bench_function("lookup", |b| { + b.iter(|| { + dict.lookup(black_box(&vec!["run"]), black_box(LookupOptions::default())) + .unwrap() + }); + }); +} + +fn bench_compile(c: &mut Criterion) { + let name = "wiktionary"; + let writer = DictionaryWriter::default(); + let input = format!("../examples/{}.xml", name); + let xml = read_to_string(input).unwrap(); + let dict = Dictionary::from(black_box(&xml)).unwrap(); + + c.bench_function("compile", |b| { + b.iter(|| { + writer.write_to_bytes(&dict).unwrap(); + }); + }); +} + +fn bench_parse(c: &mut Criterion) { + let name = "wiktionary"; + let input = format!("../examples/{}.xml", name); + let xml = read_to_string(input).unwrap(); + + c.bench_function("parse", |b| { + b.iter(|| { + Dictionary::from(black_box(&xml)).unwrap(); + }); + }); +} + +criterion_group!(benches, bench_parse, bench_compile, bench_lookup); +criterion_main!(benches); diff --git a/lib/src/core/lookup.rs b/lib/src/core/lookup.rs index 3689fddb..89d81243 100644 --- a/lib/src/core/lookup.rs +++ b/lib/src/core/lookup.rs @@ -1,6 +1,6 @@ use std::error::Error; -use crate::{ArchivedDictionary, ArchivedEntry, Dictionary, Entry, SplitOptions}; +use crate::{split::SplitOptions, ArchivedDictionary, ArchivedEntry, Dictionary, Entry}; use once_cell::sync::Lazy; use rayon::prelude::*; @@ -14,9 +14,10 @@ use regex::Regex; /* ----------------------------- Lookup Options ----------------------------- */ +#[derive(Debug, Clone)] pub struct LookupOptions { - follow: bool, - split: usize, + pub follow: bool, + pub split: usize, } impl AsRef for LookupOptions { @@ -46,29 +47,59 @@ impl LookupOptions { /* --------------------------------- Queries -------------------------------- */ -struct LookupQuery { - term: String, - fallback: String, +#[derive(Debug, Clone)] +pub struct LookupQuery { + pub term: String, + pub fallback: String, +} + +impl LookupQuery { + pub fn new(term: &str) -> Self { + Self { + term: term.to_string(), + fallback: term.to_string(), + } + } + + pub fn with_fallback(mut self, fallback: &str) -> Self { + self.fallback = fallback.to_string(); + self + } +} + +impl AsRef for LookupQuery { + fn as_ref(&self) -> &Self { + self + } } const PARENTHETICAL_REGEX: Lazy = Lazy::new(|| Regex::new(r"\((.+)\)$").unwrap()); -fn parse_query(query: &str) -> LookupQuery { - let term: String; +impl From<&LookupQuery> for LookupQuery { + fn from(query: &LookupQuery) -> Self { + query.to_owned() + } +} - let fallback = match PARENTHETICAL_REGEX.captures(&query) { - Some(caps) => { - let fallback = &caps[1]; - term = query.replace(&caps[0], ""); - fallback.to_string() - } - None => { - term = query.to_string(); - "".to_string() - } - }; +impl> From for LookupQuery { + fn from(query: S) -> Self { + let term: String; + let q = query.as_ref(); - LookupQuery { term, fallback } + let fallback = match PARENTHETICAL_REGEX.captures(q) { + Some(caps) => { + let fallback = &caps[1]; + term = q.replace(&caps[0], ""); + fallback.to_string() + } + None => { + term = q.to_string(); + "".to_string() + } + }; + + LookupQuery { term, fallback } + } } /* -------------------------------------------------------------------------- */ @@ -109,25 +140,30 @@ macro_rules! lookup { } else { entries.push(entry); } - } else if *split > 0 { - let split = self.split(term, &SplitOptions::default().threshold(*split))?; - entries.extend_from_slice(&split); } else { entries.push(entry); } + } else if *split > 0 { + let split = self.split(term, &SplitOptions::default().threshold(*split))?; + entries.extend_from_slice(&split); } Ok(entries) } - pub fn lookup + Send + Sync>( + pub fn lookup<'a, Query, Options>( &self, - queries: &Vec, + queries: &'a Vec, options: Options, - ) -> Result>, Box> { + ) -> Result>, Box> + where + Query: Into + Send + Sync, + Options: AsRef + Send + Sync, + LookupQuery: From<&'a Query>, + { queries .par_iter() - .map(|query| self.lookup_(&parse_query(query), &options)) + .map(|query| self.lookup_(&query.into(), &options)) .collect() } } diff --git a/lib/src/core/mod.rs b/lib/src/core/mod.rs index af0108e4..1b311555 100644 --- a/lib/src/core/mod.rs +++ b/lib/src/core/mod.rs @@ -1,14 +1,11 @@ -mod constants; -mod lexicon; -mod lookup; -mod merge; -mod preview; -mod read; -mod split; -mod write; +pub mod constants; +pub mod lexicon; +pub mod lookup; +pub mod merge; +pub mod preview; +pub mod read; +pub mod split; +pub mod write; -pub use self::lookup::*; -pub use self::preview::*; -pub use self::read::*; -pub use self::split::*; -pub use self::write::*; +pub use read::{DictionaryFile, DictionaryReader}; +pub use write::DictionaryWriter; diff --git a/lib/src/core/read.rs b/lib/src/core/read.rs index defc73a9..c42ec7c0 100644 --- a/lib/src/core/read.rs +++ b/lib/src/core/read.rs @@ -40,16 +40,18 @@ impl DictionaryFile { pub struct DictionaryReader {} +impl Default for DictionaryReader { + fn default() -> Self { + Self::new() + } +} + impl DictionaryReader { pub fn new() -> Self { // TODO: maybe add a config? Self {} } - pub fn default() -> Self { - Self::new() - } - pub fn read_from_bytes(&self, data: &[u8]) -> Result> { let mut reader = Cursor::new(data); let mut sig_bytes = [0; 5]; diff --git a/lib/src/core/split.rs b/lib/src/core/split.rs index 8f52523b..53edd6c3 100644 --- a/lib/src/core/split.rs +++ b/lib/src/core/split.rs @@ -10,6 +10,12 @@ pub struct SplitOptions { threshold: usize, } +impl AsRef for SplitOptions { + fn as_ref(&self) -> &SplitOptions { + self + } +} + impl SplitOptions { pub fn default() -> Self { Self { threshold: 0 } @@ -28,16 +34,16 @@ impl SplitOptions { macro_rules! split { ($t:ident, $r:ident) => { impl $t { - pub fn split( + pub fn split>( &self, query: &str, - options: &SplitOptions, + options: Options, ) -> Result, Box> { let mut entries: Vec<&$r> = Vec::new(); let mut start = 0; let mut end = query.len(); - let SplitOptions { threshold } = options; + let SplitOptions { threshold } = options.as_ref(); while start < end { let substr = &query[start..end]; diff --git a/lib/src/core/write.rs b/lib/src/core/write.rs index 6ff488a3..f19b0dcf 100644 --- a/lib/src/core/write.rs +++ b/lib/src/core/write.rs @@ -9,12 +9,14 @@ use super::constants::*; pub struct DictionaryWriter {} -impl DictionaryWriter { - pub fn new() -> Self { - Self {} +impl Default for DictionaryWriter { + fn default() -> Self { + Self::new() } +} - pub fn default() -> Self { +impl DictionaryWriter { + pub fn new() -> Self { Self {} } @@ -85,10 +87,10 @@ impl DictionaryWriter { /// writer.compile_xml("path/to/input.xml", "path/to/output.odict"); /// ``` /// - pub fn compile_xml>( + pub fn compile_xml, O: AsRef>( &self, - input_path: P, - output_path: P, + input_path: I, + output_path: O, ) -> Result<(), Box> { let dict = read_to_string(input_path)?.to_dictionary()?; self.write_to_path(&dict, output_path)?; diff --git a/lib/src/dump/mod.rs b/lib/src/dump/mod.rs deleted file mode 100644 index 22c4ff67..00000000 --- a/lib/src/dump/mod.rs +++ /dev/null @@ -1,15 +0,0 @@ -#[cfg(feature = "json")] -mod json; - -#[cfg(feature = "json")] -pub use self::json::*; - -#[cfg(feature = "sql")] -mod sql; - -#[cfg(feature = "sql")] -pub use self::sql::*; - -mod xml; - -pub use self::xml::*; diff --git a/lib/src/fs.rs b/lib/src/fs.rs new file mode 100644 index 00000000..a60c2711 --- /dev/null +++ b/lib/src/fs.rs @@ -0,0 +1,11 @@ +use std::{ffi::OsStr, path::PathBuf}; + +pub fn infer_path + AsRef>(path: P) -> PathBuf { + let pb: PathBuf = path.into(); + let name = pb.file_stem().and_then(|s| s.to_str()).unwrap_or_default(); + let directory = pb.parent().and_then(|s| s.to_str()).unwrap_or_default(); + + PathBuf::new() + .join(directory) + .join(format!("{}.odict", name)) +} diff --git a/lib/src/dump/json/definition.rs b/lib/src/json/definition.rs similarity index 100% rename from lib/src/dump/json/definition.rs rename to lib/src/json/definition.rs diff --git a/lib/src/dump/json/dictionary.rs b/lib/src/json/dictionary.rs similarity index 100% rename from lib/src/dump/json/dictionary.rs rename to lib/src/json/dictionary.rs diff --git a/lib/src/dump/json/entry.rs b/lib/src/json/entry.rs similarity index 100% rename from lib/src/dump/json/entry.rs rename to lib/src/json/entry.rs diff --git a/lib/src/dump/json/etymology.rs b/lib/src/json/etymology.rs similarity index 100% rename from lib/src/dump/json/etymology.rs rename to lib/src/json/etymology.rs diff --git a/lib/src/dump/json/group.rs b/lib/src/json/group.rs similarity index 100% rename from lib/src/dump/json/group.rs rename to lib/src/json/group.rs diff --git a/lib/src/dump/json/json.rs b/lib/src/json/json.rs similarity index 100% rename from lib/src/dump/json/json.rs rename to lib/src/json/json.rs diff --git a/lib/src/dump/json/mod.rs b/lib/src/json/mod.rs similarity index 100% rename from lib/src/dump/json/mod.rs rename to lib/src/json/mod.rs diff --git a/lib/src/dump/json/note.rs b/lib/src/json/note.rs similarity index 100% rename from lib/src/dump/json/note.rs rename to lib/src/json/note.rs diff --git a/lib/src/dump/json/sense.rs b/lib/src/json/sense.rs similarity index 100% rename from lib/src/dump/json/sense.rs rename to lib/src/json/sense.rs diff --git a/lib/src/dump/json/utils.rs b/lib/src/json/utils.rs similarity index 100% rename from lib/src/dump/json/utils.rs rename to lib/src/json/utils.rs diff --git a/lib/src/lib.rs b/lib/src/lib.rs index b8202c78..ef098d6e 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -5,14 +5,21 @@ pub mod config; #[cfg(feature = "search")] pub mod search; +#[cfg(feature = "json")] +pub mod json; + +#[cfg(feature = "sql")] +pub mod sql; + mod core; -mod dump; mod ext; mod lz4; mod md; mod models; +pub mod fs; +pub mod xml; + pub use self::core::*; -pub use self::dump::*; pub use self::ext::*; pub use self::models::*; diff --git a/lib/src/models/mdstring.rs b/lib/src/models/mdstring.rs index 6c7139fe..6549fd50 100644 --- a/lib/src/models/mdstring.rs +++ b/lib/src/models/mdstring.rs @@ -2,10 +2,9 @@ use once_cell::sync::Lazy; use regex::Regex; use serde::{Deserialize, Serialize, Serializer}; -use crate::{ - md::{to_html, to_text}, - serializable_custom, -}; +use crate::md::{to_html, to_text}; + +use crate::serializable_custom; pub enum MarkdownStrategy { HTML, @@ -63,6 +62,10 @@ const PARENTHETICAL_REGEX: Lazy = Lazy::new(|| Regex::new(r"^(\(.+?\))"). macro_rules! parse { ($t:ident) => { impl $t { + pub fn value(&self) -> &str { + &self.value + } + pub fn parse>(&self, strategy: S) -> String { let repl = PARENTHETICAL_REGEX .replace_all(&self.value, "*${1}*") diff --git a/lib/src/models/pos.rs b/lib/src/models/pos.rs index 10a428f0..06aee953 100644 --- a/lib/src/models/pos.rs +++ b/lib/src/models/pos.rs @@ -1,3 +1,5 @@ +use std::fmt; + use crate::serializable; macro_rules! create_pos { @@ -17,6 +19,12 @@ macro_rules! create_pos { } } +impl fmt::Display for PartOfSpeech { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "{:?}", self) + } +} + create_pos!({ /* -------------------------------------------------------------------------- */ /* Japanese-specific POS */ @@ -111,6 +119,7 @@ create_pos!({ chr, cf, cls, + contr, conj, conj_c, cop, @@ -248,6 +257,7 @@ impl PartOfSpeech { PartOfSpeech::cls => "classifier", PartOfSpeech::conj => "conjunction", PartOfSpeech::conj_c => "coordinating conjunction", + PartOfSpeech::contr => "contraction", PartOfSpeech::cop => "copula", PartOfSpeech::ctr => "counter", PartOfSpeech::det => "determiner", diff --git a/lib/src/search/charabia.rs b/lib/src/search/charabia.rs index 711ffc90..0244b287 100644 --- a/lib/src/search/charabia.rs +++ b/lib/src/search/charabia.rs @@ -1,7 +1,7 @@ #![forbid(unsafe_code)] use charabia::Tokenize; -use tantivy_tokenizer_api::{Token, TokenStream, Tokenizer}; +use tantivy::tokenizer::{Token, TokenStream, Tokenizer}; #[derive(Clone)] pub struct CharabiaTokenizer; diff --git a/lib/src/search/constants.rs b/lib/src/search/constants.rs index a799ef43..91c5277c 100644 --- a/lib/src/search/constants.rs +++ b/lib/src/search/constants.rs @@ -9,6 +9,7 @@ use tantivy::tokenizer::{LowerCaser, RemoveLongFilter, SimpleTokenizer}; pub const CUSTOM_TOKENIZER: &str = "CUSTOM_TOKENIZER"; +#[cfg(feature = "charabia")] pub const DEFAULT_TOKENIZER: Lazy = Lazy::new(|| { #[cfg(not(feature = "charabia"))] return TextAnalyzer::builder(SimpleTokenizer::default()) diff --git a/lib/src/search/index.rs b/lib/src/search/index.rs index 0b10ebe1..880a5437 100644 --- a/lib/src/search/index.rs +++ b/lib/src/search/index.rs @@ -2,7 +2,7 @@ use std::{error::Error, ffi::OsStr, fs::create_dir_all, fs::remove_dir_all, path use tantivy::{doc, tokenizer::TextAnalyzer, Index}; use crate::{ - config::get_config_dir, ArchivedDictionary, ArchivedEntry, Dictionary, PreviewOptions, + config::get_config_dir, preview::PreviewOptions, ArchivedDictionary, ArchivedEntry, Dictionary, }; use super::constants::{CUSTOM_TOKENIZER, DEFAULT_TOKENIZER}; diff --git a/lib/src/search/search.rs b/lib/src/search/search.rs index f16ef77e..85bfada2 100644 --- a/lib/src/search/search.rs +++ b/lib/src/search/search.rs @@ -2,6 +2,8 @@ use std::{error::Error, ffi::OsStr, path::PathBuf}; use rayon::iter::{IntoParallelRefIterator, ParallelIterator}; use rkyv::archived_root; +use tantivy::schema::Value; +use tantivy::TantivyDocument; use tantivy::{ collector::TopDocs, query::QueryParser, tokenizer::TextAnalyzer, Index, ReloadPolicy, }; @@ -95,7 +97,7 @@ macro_rules! search { let reader = index .reader_builder() - .reload_policy(ReloadPolicy::OnCommit) + .reload_policy(ReloadPolicy::OnCommitWithDelay) .try_into()?; let searcher = reader.searcher(); @@ -107,7 +109,7 @@ macro_rules! search { .par_iter() .filter(|(score, _)| score >= &(opts.threshold as f32)) .map(|(_, doc_address)| -> Entry { - let retrieved_doc = searcher.doc(*doc_address).unwrap(); + let retrieved_doc: TantivyDocument = searcher.doc(*doc_address).unwrap(); let bytes = retrieved_doc .get_first(*FIELD_BUFFER) diff --git a/lib/src/dump/sql/definitions.rs b/lib/src/sql/definitions.rs similarity index 97% rename from lib/src/dump/sql/definitions.rs rename to lib/src/sql/definitions.rs index f50fec3d..0820303b 100644 --- a/lib/src/dump/sql/definitions.rs +++ b/lib/src/sql/definitions.rs @@ -97,7 +97,7 @@ mod test { #[test] fn test_null() { - let builder = &mut SQLBuilder::new(crate::SQLDialect::Postgres); + let builder = &mut SQLBuilder::new(crate::sql::SQLDialect::Postgres); let definition = Definition { id: None, diff --git a/lib/src/dump/sql/dictionaries.rs b/lib/src/sql/dictionaries.rs similarity index 100% rename from lib/src/dump/sql/dictionaries.rs rename to lib/src/sql/dictionaries.rs diff --git a/lib/src/dump/sql/entries.rs b/lib/src/sql/entries.rs similarity index 100% rename from lib/src/dump/sql/entries.rs rename to lib/src/sql/entries.rs diff --git a/lib/src/dump/sql/etymologies.rs b/lib/src/sql/etymologies.rs similarity index 100% rename from lib/src/dump/sql/etymologies.rs rename to lib/src/sql/etymologies.rs diff --git a/lib/src/dump/sql/examples.rs b/lib/src/sql/examples.rs similarity index 97% rename from lib/src/dump/sql/examples.rs rename to lib/src/sql/examples.rs index 638c9c09..a87e8355 100644 --- a/lib/src/dump/sql/examples.rs +++ b/lib/src/sql/examples.rs @@ -80,7 +80,7 @@ mod test { #[test] fn test_null() { - let builder = &mut SQLBuilder::new(crate::SQLDialect::Postgres); + let builder = &mut SQLBuilder::new(crate::sql::SQLDialect::Postgres); let example = Example { value: MDString::from("test"), diff --git a/lib/src/dump/sql/groups.rs b/lib/src/sql/groups.rs similarity index 100% rename from lib/src/dump/sql/groups.rs rename to lib/src/sql/groups.rs diff --git a/lib/src/dump/sql/mod.rs b/lib/src/sql/mod.rs similarity index 100% rename from lib/src/dump/sql/mod.rs rename to lib/src/sql/mod.rs diff --git a/lib/src/dump/sql/notes.rs b/lib/src/sql/notes.rs similarity index 100% rename from lib/src/dump/sql/notes.rs rename to lib/src/sql/notes.rs diff --git a/lib/src/dump/sql/senses.rs b/lib/src/sql/senses.rs similarity index 100% rename from lib/src/dump/sql/senses.rs rename to lib/src/sql/senses.rs diff --git a/lib/src/dump/sql/sql.rs b/lib/src/sql/sql.rs similarity index 95% rename from lib/src/dump/sql/sql.rs rename to lib/src/sql/sql.rs index 66ace9a5..23c1bc3d 100644 --- a/lib/src/dump/sql/sql.rs +++ b/lib/src/sql/sql.rs @@ -1,6 +1,6 @@ use std::error::Error; -use crate::{Dictionary, SQLDialect}; +use crate::{sql::SQLDialect, Dictionary}; use super::{ definitions::create_definitions, diff --git a/lib/src/dump/sql/utils.rs b/lib/src/sql/utils.rs similarity index 100% rename from lib/src/dump/sql/utils.rs rename to lib/src/sql/utils.rs diff --git a/lib/src/dump/xml.rs b/lib/src/xml.rs similarity index 100% rename from lib/src/dump/xml.rs rename to lib/src/xml.rs diff --git a/lib/tests/dump.rs b/lib/tests/dump.rs index e3058a9f..f12ff368 100644 --- a/lib/tests/dump.rs +++ b/lib/tests/dump.rs @@ -4,7 +4,7 @@ mod dump_tests { use insta::assert_snapshot; - use odict::{Dictionary, ToJSON, ToXML, ID}; + use odict::{json::ToJSON, xml::ToXML, Dictionary, ID}; use crate::helpers::EXAMPLE_DICTIONARY_1; diff --git a/lib/tests/helpers.rs b/lib/tests/helpers.rs index ff877c2e..25b1ca1c 100644 --- a/lib/tests/helpers.rs +++ b/lib/tests/helpers.rs @@ -15,3 +15,6 @@ pub fn create_archive_dict(name: &str) -> Result> pub static EXAMPLE_DICTIONARY_1: Lazy = Lazy::new(|| create_archive_dict("example1").unwrap()); + +pub static EXAMPLE_DICTIONARY_2: Lazy = + Lazy::new(|| create_archive_dict("example2").unwrap()); diff --git a/lib/tests/lookup.rs b/lib/tests/lookup.rs new file mode 100644 index 00000000..ad793947 --- /dev/null +++ b/lib/tests/lookup.rs @@ -0,0 +1,82 @@ +mod helpers; + +#[cfg(test)] +mod lookup_tests { + use insta::assert_snapshot; + use odict::json::ToJSON; + use odict::lookup::LookupOptions; + + use crate::helpers::{EXAMPLE_DICTIONARY_1, EXAMPLE_DICTIONARY_2}; + + #[test] + fn test_lookup() { + let dict = EXAMPLE_DICTIONARY_1.to_archive().unwrap(); + let result = dict + .lookup(&vec!["dog", "cat"], LookupOptions::default()) + .unwrap(); + + assert_snapshot!(result.to_json(true).unwrap()); + } + + #[test] + fn test_lookup_splitting() { + let dict = EXAMPLE_DICTIONARY_1.to_archive().unwrap(); + let result = dict + .lookup(&vec!["catdog"], LookupOptions::default().split(3)) + .unwrap(); + + assert_eq!(result[0][0].term, "cat"); + assert_eq!(result[0][1].term, "dog"); + } + + #[test] + fn test_lookup_fallback() { + let dict = EXAMPLE_DICTIONARY_1.to_archive().unwrap(); + let result1 = dict + .lookup(&vec!["catdog(run)"], LookupOptions::default()) + .unwrap(); + + assert_eq!(result1[0][0].term, "run"); + + let result2 = dict + .lookup(&vec!["(run)"], LookupOptions::default()) + .unwrap(); + + assert_eq!(result2[0][0].term, "run"); + } + + #[test] + fn test_lookup_follow() { + let dict = EXAMPLE_DICTIONARY_2.to_archive().unwrap(); + + let control = dict + .lookup( + &vec!["runners"], + LookupOptions::default().split(2).follow(false), + ) + .unwrap(); + + assert_eq!(control.len(), 1); + assert_eq!(control[0][0].term, "runners"); + + let basic = dict + .lookup( + &vec!["runners"], + LookupOptions::default().split(2).follow(true), + ) + .unwrap(); + + assert_eq!(basic.len(), 1); + assert_eq!(basic[0][0].term, "runner"); + + let fallback = dict + .lookup( + &vec!["unfindable (runners)"], + LookupOptions::default().split(2).follow(true), + ) + .unwrap(); + + assert_eq!(fallback.len(), 1); + assert_eq!(fallback[0][0].term, "runner"); + } +} diff --git a/lib/tests/search.rs b/lib/tests/search.rs index e3d16aae..e10d92cd 100644 --- a/lib/tests/search.rs +++ b/lib/tests/search.rs @@ -5,7 +5,7 @@ mod index_tests { use super::helpers::EXAMPLE_DICTIONARY_1; use insta::assert_snapshot; - use odict::ToJSON; + use odict::json::ToJSON; use odict::search::{IndexOptions, SearchOptions}; #[test] diff --git a/lib/tests/snapshots/lookup__lookup_tests__lookup.snap b/lib/tests/snapshots/lookup__lookup_tests__lookup.snap new file mode 100644 index 00000000..9e2b67bf --- /dev/null +++ b/lib/tests/snapshots/lookup__lookup_tests__lookup.snap @@ -0,0 +1,60 @@ +--- +source: lib/tests/lookup.rs +expression: result.to_json(true).unwrap() +--- +[ + [ + { + "term": "dog", + "etymologies": [ + { + "pronunciation": "dooooog", + "description": "Latin root", + "senses": { + "un": { + "pos": "un", + "definitions": [ + { + "type": "definition", + "value": "a dog" + } + ] + } + } + } + ] + } + ], + [ + { + "term": "cat", + "etymologies": [ + { + "description": "Latin root", + "senses": { + "n": { + "pos": "n", + "definitions": [ + { + "type": "definition", + "value": "a cat", + "examples": [ + "There goes a cat!" + ], + "notes": [ + { + "value": "Some definition note", + "examples": [ + "Some example" + ] + } + ] + } + ] + } + } + } + ] + } + ] +] diff --git a/lib/tests/split.rs b/lib/tests/split.rs index 13a120f4..32cb5f04 100644 --- a/lib/tests/split.rs +++ b/lib/tests/split.rs @@ -2,7 +2,7 @@ mod helpers; #[cfg(test)] mod split_tests { - use odict::SplitOptions; + use odict::split::SplitOptions; use crate::helpers::EXAMPLE_DICTIONARY_1; diff --git a/lib/tests/sql.rs b/lib/tests/sql.rs index 6f4b6c61..3a47a3a9 100644 --- a/lib/tests/sql.rs +++ b/lib/tests/sql.rs @@ -4,7 +4,7 @@ mod helpers; mod index_tests { use super::helpers::EXAMPLE_DICTIONARY_1; use insta::assert_snapshot; - use odict::{SQLDialect, ToSQL}; + use odict::sql::{SQLDialect, ToSQL}; use regex::Regex; #[test] diff --git a/node/.cargo/config.toml b/node/.cargo/config.toml new file mode 100644 index 00000000..06516547 --- /dev/null +++ b/node/.cargo/config.toml @@ -0,0 +1,5 @@ +[target.aarch64-unknown-linux-musl] +linker = "aarch64-linux-musl-gcc" +rustflags = ["-C", "target-feature=-crt-static"] +[target.x86_64-pc-windows-msvc] +rustflags = ["-C", "target-feature=+crt-static"] \ No newline at end of file diff --git a/node/.gitignore b/node/.gitignore new file mode 100644 index 00000000..a2b5be15 --- /dev/null +++ b/node/.gitignore @@ -0,0 +1,197 @@ +# Created by https://www.toptal.com/developers/gitignore/api/node +# Edit at https://www.toptal.com/developers/gitignore?templates=node + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# End of https://www.toptal.com/developers/gitignore/api/node + +# Created by https://www.toptal.com/developers/gitignore/api/macos +# Edit at https://www.toptal.com/developers/gitignore?templates=macos + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### 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 diff --git a/node/.npmignore b/node/.npmignore new file mode 100644 index 00000000..ec144db2 --- /dev/null +++ b/node/.npmignore @@ -0,0 +1,13 @@ +target +Cargo.lock +.cargo +.github +npm +.eslintrc +.prettierignore +rustfmt.toml +yarn.lock +*.node +.yarn +__test__ +renovate.json diff --git a/node/Cargo.toml b/node/Cargo.toml new file mode 100644 index 00000000..8ff644bd --- /dev/null +++ b/node/Cargo.toml @@ -0,0 +1,24 @@ +[package] +edition = "2021" +name = "odict_node" +version = "0.0.0" + +[lib] +crate-type = ["cdylib"] + +[dependencies] +merge = "0.1.0" +# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix +napi = { version = "2.12.2", default-features = false, features = ["napi4"] } +napi-derive = "2.12.2" +odict = { path = "../lib", features = [ + "config", + "charabia", + "sql", + "search", + "json", +] } +once_cell = "1.19.0" + +[build-dependencies] +napi-build = "2.0.1" diff --git a/node/build.rs b/node/build.rs new file mode 100644 index 00000000..1f866b6a --- /dev/null +++ b/node/build.rs @@ -0,0 +1,5 @@ +extern crate napi_build; + +fn main() { + napi_build::setup(); +} diff --git a/node/index.d.ts b/node/index.d.ts new file mode 100644 index 00000000..d8905073 --- /dev/null +++ b/node/index.d.ts @@ -0,0 +1,12 @@ +/* tslint:disable */ +/* eslint-disable */ + +/* auto-generated by NAPI-RS */ + +export interface DictionaryOptions { + defaultSplitThreshold?: number +} +export class Dictionary { + path: string + constructor(path: string, options?: DictionaryOptions | undefined | null) +} diff --git a/node/index.js b/node/index.js new file mode 100644 index 00000000..b1883069 --- /dev/null +++ b/node/index.js @@ -0,0 +1,300 @@ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +/* auto-generated by NAPI-RS */ + +const { existsSync, readFileSync } = require('fs') +const { join } = require('path') + +const { platform, arch } = process + +let nativeBinding = null +let localFileExisted = false +let loadError = null + +function isMusl() { + // For Node 10 + if (!process.report || typeof process.report.getReport !== 'function') { + try { + const lddPath = require('child_process').execSync('which ldd').toString().trim() + return readFileSync(lddPath, 'utf8').includes('musl') + } catch (e) { + return true + } + } else { + const { glibcVersionRuntime } = process.report.getReport().header + return !glibcVersionRuntime + } +} + +switch (platform) { + case 'android': + switch (arch) { + case 'arm64': + localFileExisted = existsSync(join(__dirname, 'node.android-arm64.node')) + try { + if (localFileExisted) { + nativeBinding = require('./node.android-arm64.node') + } else { + nativeBinding = require('@odict/node-android-arm64') + } + } catch (e) { + loadError = e + } + break + case 'arm': + localFileExisted = existsSync(join(__dirname, 'node.android-arm-eabi.node')) + try { + if (localFileExisted) { + nativeBinding = require('./node.android-arm-eabi.node') + } else { + nativeBinding = require('@odict/node-android-arm-eabi') + } + } catch (e) { + loadError = e + } + break + default: + throw new Error(`Unsupported architecture on Android ${arch}`) + } + break + case 'win32': + switch (arch) { + case 'x64': + localFileExisted = existsSync( + join(__dirname, 'node.win32-x64-msvc.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.win32-x64-msvc.node') + } else { + nativeBinding = require('@odict/node-win32-x64-msvc') + } + } catch (e) { + loadError = e + } + break + case 'ia32': + localFileExisted = existsSync( + join(__dirname, 'node.win32-ia32-msvc.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.win32-ia32-msvc.node') + } else { + nativeBinding = require('@odict/node-win32-ia32-msvc') + } + } catch (e) { + loadError = e + } + break + case 'arm64': + localFileExisted = existsSync( + join(__dirname, 'node.win32-arm64-msvc.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.win32-arm64-msvc.node') + } else { + nativeBinding = require('@odict/node-win32-arm64-msvc') + } + } catch (e) { + loadError = e + } + break + default: + throw new Error(`Unsupported architecture on Windows: ${arch}`) + } + break + case 'darwin': + localFileExisted = existsSync(join(__dirname, 'node.darwin-universal.node')) + try { + if (localFileExisted) { + nativeBinding = require('./node.darwin-universal.node') + } else { + nativeBinding = require('@odict/node-darwin-universal') + } + break + } catch {} + switch (arch) { + case 'x64': + localFileExisted = existsSync(join(__dirname, 'node.darwin-x64.node')) + try { + if (localFileExisted) { + nativeBinding = require('./node.darwin-x64.node') + } else { + nativeBinding = require('@odict/node-darwin-x64') + } + } catch (e) { + loadError = e + } + break + case 'arm64': + localFileExisted = existsSync( + join(__dirname, 'node.darwin-arm64.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.darwin-arm64.node') + } else { + nativeBinding = require('@odict/node-darwin-arm64') + } + } catch (e) { + loadError = e + } + break + default: + throw new Error(`Unsupported architecture on macOS: ${arch}`) + } + break + case 'freebsd': + if (arch !== 'x64') { + throw new Error(`Unsupported architecture on FreeBSD: ${arch}`) + } + localFileExisted = existsSync(join(__dirname, 'node.freebsd-x64.node')) + try { + if (localFileExisted) { + nativeBinding = require('./node.freebsd-x64.node') + } else { + nativeBinding = require('@odict/node-freebsd-x64') + } + } catch (e) { + loadError = e + } + break + case 'linux': + switch (arch) { + case 'x64': + if (isMusl()) { + localFileExisted = existsSync( + join(__dirname, 'node.linux-x64-musl.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.linux-x64-musl.node') + } else { + nativeBinding = require('@odict/node-linux-x64-musl') + } + } catch (e) { + loadError = e + } + } else { + localFileExisted = existsSync( + join(__dirname, 'node.linux-x64-gnu.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.linux-x64-gnu.node') + } else { + nativeBinding = require('@odict/node-linux-x64-gnu') + } + } catch (e) { + loadError = e + } + } + break + case 'arm64': + if (isMusl()) { + localFileExisted = existsSync( + join(__dirname, 'node.linux-arm64-musl.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.linux-arm64-musl.node') + } else { + nativeBinding = require('@odict/node-linux-arm64-musl') + } + } catch (e) { + loadError = e + } + } else { + localFileExisted = existsSync( + join(__dirname, 'node.linux-arm64-gnu.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.linux-arm64-gnu.node') + } else { + nativeBinding = require('@odict/node-linux-arm64-gnu') + } + } catch (e) { + loadError = e + } + } + break + case 'arm': + localFileExisted = existsSync( + join(__dirname, 'node.linux-arm-gnueabihf.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.linux-arm-gnueabihf.node') + } else { + nativeBinding = require('@odict/node-linux-arm-gnueabihf') + } + } catch (e) { + loadError = e + } + break + case 'riscv64': + if (isMusl()) { + localFileExisted = existsSync( + join(__dirname, 'node.linux-riscv64-musl.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.linux-riscv64-musl.node') + } else { + nativeBinding = require('@odict/node-linux-riscv64-musl') + } + } catch (e) { + loadError = e + } + } else { + localFileExisted = existsSync( + join(__dirname, 'node.linux-riscv64-gnu.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.linux-riscv64-gnu.node') + } else { + nativeBinding = require('@odict/node-linux-riscv64-gnu') + } + } catch (e) { + loadError = e + } + } + break + case 's390x': + localFileExisted = existsSync( + join(__dirname, 'node.linux-s390x-gnu.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./node.linux-s390x-gnu.node') + } else { + nativeBinding = require('@odict/node-linux-s390x-gnu') + } + } catch (e) { + loadError = e + } + break + default: + throw new Error(`Unsupported architecture on Linux: ${arch}`) + } + break + default: + throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`) +} + +if (!nativeBinding) { + if (loadError) { + throw loadError + } + throw new Error(`Failed to load native binding`) +} + +const { Dictionary } = nativeBinding + +module.exports.Dictionary = Dictionary diff --git a/js/jest.config.cjs b/node/jest.config.cjs similarity index 100% rename from js/jest.config.cjs rename to node/jest.config.cjs diff --git a/node/justfile b/node/justfile new file mode 100644 index 00000000..5c33547b --- /dev/null +++ b/node/justfile @@ -0,0 +1,28 @@ +@deps: install + +@install: + pnpm install --no-frozen-lockfile + +@add +args: + pnpm add {{args}} + +@npm +args: + pnpm npm {{args}} + +@clean: + rm -rf coverage ../**/*.odict ../**/*.log + +@build: + pnpm build + +@universal: + pnpm universal + +@version: + pnpm version + +@test: build && clean + pnpm test + +@publish +args="": + just npm publish {{args}} \ No newline at end of file diff --git a/node/node.darwin-arm64.node b/node/node.darwin-arm64.node deleted file mode 100755 index eafaf4fe8c85891ba45d5affa09720866161abd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387056 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%0DjHil#&UH-GD%6G6e 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�HU-H%a$0PXaef7e= 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 l9z%jj<# z=r7S@tfP@$nbY4k2mOW3V&f?X{q?b>0Y~eI{^AVl&h*#E_5*yJ!H3xn?&BPEF-Jy& zadzza9ME9WbNFyNj5D}69md(gh)3r%e-8RfGRH;W@?U|+blxsoI^!zNpSPakG&qRU z;9j7?PN*O0Fm#}u@j@>d{q+O=^{H%br@yhb@6nziAx?Jx;tx8l<1|=THzEXnA>{23 z|E7nJf(~B+9ky^fY|oG6B;?8IuvTHGg|Tj_l?Sdnt!pNq*4T%|>9I6M8e(XS__dFb z8|iW9Zw`7)b)m8u6V?b+1gC389 zZ%8{mejoc7$qups_wMwwfsk{%)6deHa3a=($v?o@v8#?O>u1H9$p;rg#@c->lW&CO zz};jQ&xU}<9y^*N>2CEXbE=EBp*tVT_YAS?Zx0Zkk^Bb;zq5uuR*F+`6P>3KIN|AR zUq62u_TRt9bNXQYyaKd5FrE1LZs?mh&9gMOJ+y`nFsKe_-&D*OWI; z#&cqA9-!q1uJ>6tA9yIbLB5g3(=XBg-}9V$$Ta^6*xkqkvV$0UL$faj#E@eH10 zQsWssCtZ(c@EnsK&)_-fu6PE|F}dOyJSV*;p22fWJ@E{lL$LQ^^Aj$^l1nNEqD%n_iynL^s9r9>;jL-(R);SW4+M9M*_R>kxh`} z{|F!X2!12eZ^B0&z&8u=5tMsTH+-ZBe55N6xgT-90{^&(beXoe55z{ z$b(m#&WP5NoR0){@DbFHPmp{fk!VGraF&y{bqpK$>MXQ$f(qLYJb@W#^4P#Rsviv=eX%EWml1P@n zkIVA+aakUHEXneJ;j%pR@}2CGNS05APHr{o`^}%QOZoMW!&kL}womsb+uan!?&wc8* zU|qZ4&JXH?7Jpv-I@*@}fRkSDQ@~T8*DHn3CDP$t&MA3oE%;L_&gx2p|89p~kMg5@ zDSyh>5r_18#J6ak?}$TsyH@z-Yt30O|F;W|9Zd-OvL+V&_={NjS{w4E@0alXOioGs zC44_)__PLkNxs*+2r|hmyxSkJzh=Lvv61eA^m-Q|i$RywUeA44qo=x-NOd)%{x9G= z)${rHKd9dfJ(ZW}(eNVldapyTSBkyYq}L;R0cxw`WJ4geSGJVKJjl{}U&i`BYzy|_ z`#$K;iqJk3m+ST5Z~LgE*Lz*k>tQb;KbPnYwAY&`_h$j0)x3>*ej{pHE=R7fDH6SH zF;UOfyn%1W1CG}m7om5-w^@N}Y64G+u(i_IM#G-K(SKC0&9E7pC9Bsa*hXwdy}m`c zPFwa@|6kfXSYY!&_FyW^LCu(}ehWVcG*?w)u1fF{wCxh$yd^KIJ={L5^^C?`bqjQM zTcERB;yjv%S(^84{ArnunG$I_Y$TRIucs0e4U3tg0sRcT_FY~|HfE=B&X%H|ZLzna za%o;xJlU)~0lnTnd?y`kd0xNx-56&($;J%$OzUe=8CX;liMJPcqSX93an{%vO(%J zSH!+g_zJ6Y?QX88N}S==9e-cIZIHZVHb}jA_=}*Sf7h`ctzR-L%@eO;9hdYj zbZ!LG%)Bb+?OvE8Ud4Nw|5!nXVg#=)b41U|WwJS9vv-GnuEHCBH6TY3Kc9m6;HCEY zpq-!7d=TmL`CzT2m!tWh*2lX+d1A75u!1=w5#w zb1&+X8`twZVZ$n0&ogwa=QZN&wKCayUf|uX>r(KY*7E`;xvlGW&260$c5kF-sbjGB z(i-O&7`wI$SDmG9c!08Qgu!ANzFUdsiljNal<=+XoIJ-+Au zZ05|Os`AATk8<0)qu_b-L``M(?tS%p!B1a6n4?%bqBW!~2wNnrA-&PQhU8KCcWG_N z%-4pnMkcKx%|bpDcdxWQ#NVSFdwDo19@5{BFlH%?Bdv}#B$SJJ@HHfhw1z}y5Ek8H z4at&cUqhmBw1zYVyru}Wq=>H}P2p=u)mTHiDC0F<*N~#x*N{Bg*N}qF+1HTvq5rC- zHKfbnHOH}rbR4#-ORqu3=t7Pz=yJ;PX)s3jbIUj~4w4PKq0{z^IK5pHmr8Qs62-xfV zX`V!UNDF*-%s)+}$8@#NKTFVN$FPpHTQ>hB``BbW{}J9a1mhiZ>TdLyp0;=3E7H(| z?O4#w+%t;vCR#_rzBg$diNX`D2-)RYbuVm8FSangz8!-#B=R%BmQKIg^jT*eCY=@T zBdsM}+$>o8pq|*5@7atz;{+cWucGxNIjL$8&3PQzrgY|UJ~o_1-G#^XAs%-q*hOq5 zTNGMr$_?(|amhG8f%Jac+j*RQ-wgO0&amiFwJez(zBA#E@wkt`&u+@&z~5GY&pq|t zht&n(ZO?$WO$2Xy1-$KJ!L5A{O%KS;4%>UOyYFrfO?sC-H0LlsUD>loWrVwy@1NNv zu=->{s7wK$q5Unim&S;FGg;Wzl8L=Ew8w?^&!l6YjQHUmY5$C}^8au9XJ`+L0J{N8 zo{7ts9s6el+5Q>9_TSw|4bd^Oosh@0pJw^_Tw4AFKEq6-lw#ug72q5IQqWq-{2d~Eq1#DEqDR( zka=exJ?h{W8JOS5=Q1Zd<}!ym&1E{-9eCO{!q?gcH}H!a><&C_q4mij#BrMgAJ`nET|L3|lmT2%=^^ont3h@jxwO8Hb?L)Vg2yfRL=1d3 z26Nj3SAF!uSd;ocHK9D2vfoa4CJYZ*lGBrwe1_98|{X2Ys z>e4MA_?-?@ze`n?kmkZcUL!-v!#u`$rm zUVZQYZ`^-xp3|FL@{EvnS-`|5Puz0(F<` zC7XkitfZF=hV2IALCyo3<2!hO*w4-b2IHH3o+IfcGyZqGCA~q?hOg`!kRBdY(busIF_I zx;}yW@5gtlC(VaGz#J$RagIVic^vx5ouW6_Pws<$lG^GQ#CNpUlTsRMnNQ_+FGB|i zTf1-Z{S4-2ucLh^F6k#rVRv{5`pL_%J3KDwCu#mo{q!01lb@s9tpT6cd@1Q+<6w9A zI_fnqYE8{&`1T8Qm%oT!IIr8I_JD_dK>de$ zWn&IVbs*jBERqAz=S$HJ*?4}w4tmvh_uyFr{U)BNEuiltJU9jUU@66s!kyybq<9EN zde1#l7)M%5wti5(7~wK4`=B3G*JsJ}j%v&WvoU8pjr{|ppVVLs5KQ)vTX;A#=k*ls z4D^#@FlXEc{p3FAC$~6{;bET0J01U>Y|cnJPlpb33-ps}LD}#;Q#PQVf!Dsv*Mo-# zL8thwqQ7kk#>x|U=J-sEwHLv|&*1wRjJ3si{o_wztbIfJN$8^u&;^u{J^*?E3oh6Y zUMs^D06l;OmqCkXTmf1<=fKA?mWkifc%CTDA)#YvEz`1A3wXco-{Adx z&IlUfm@}3^2FOu+RC-BkmZZ--*+m8*nLwH|c9sFU=rcFK&l~22-Od?@;F}R^mfh(y zX}!`DcB>t8#$GlG{|or)BgFr4{wj@iT2Jc(eoN;DvnOYEk^#IS19+fbSHb6Kz49Pv zSFGSI<%x#XqN}bCr}Rb zmC>H}(TJ}-3WJ%PJZ9d?H=!AIX8nHMU1+hqcG z+`F@L`EUAycpm3_HQ^kLCYc>e0LI_%`GQy@#ml*cEsIHEw`KYA{QrJEPLBEa>Tyhp zcdL4YN%gQ&Jr;MIw@Z6$f=NdpaGz3E6XflH4XP@v{~X$4QFq#F)BghED!Myw0DH<1 zUVFl=is`VIYO%2GB=%7;RT9n*WZOgb z*n?%nUD!rvnQp}QI)28003VQ+$r}joaF*N&d?VZBr|`_wpfPx^228xL`ue2)gMW7xqMx->4hU48RzlETBvoXq$nc8L7xmTLz!O@VjF`nb`-PRhg(? zrXjd03vIQePG7ZYGdpa84Z%>fiSHkYV{mGZGX!zy{Po|>$I=nUfH(&1H6uSXwD;`i z*==jduCNmC9q)d^J8F-KQoWO;`}?Rr(bOk!FO`Kq#lw5pa1IM^C-_?9;b3FEx` z>4ov{p0;^-FW+mGLwz3L*l!0KgSMjmQjUF^9GB9gI1VLtk9X~RyX<%uOn7&0i@~`Q z-aUD9tsa5VX$6*f`1$#i4J_JI0v!0E^J>&PB36|ybnhucFQMml&8KS=Akvk45B>Qy0Y z2MgMv5$({oOFQ(J!X7{y@G_d5syqY+d-74Rfg~Gr`@TMEi%PTw)vv3Mb@JT>8iBFN zs-_`*&~fr_3?B-1KXK4QP5l|`b%ei90{@6!&{$`<;Ey!n9+ZpLaCR73-VuO=P!g1-wcKZ4fNd6IsOZEIhL{D$*OU!}RO7P4WpXjwIH zfOg#_gyG*XC)y2pp+fY=nUls=3v_CF$bbT5!7}LImcus#$$=yf+S7*bY~Y^~X&=Y@ z9%-LH0RQIQ;Zz3jGP$uo=o#$`@UZoze%aIE134JyML2w%42F-BL8!y{OQowSP>+yk zp+4lcvGqen>*}q7({ef!+i0<17-35 zY<9{29X_^YxuQJ_s2%JDDg8;H*A#+-}O;Pig&ye{)>+uDwIM89yp1m4MgZxFw8 zLb+(1)B;C@3E61gGAP@Zfozmk}S^DY&*I<4nij<83Y| z1C`4e^843ivIZr=`b5>041pI-5&gNAS#bq?6hy=vtPcj%oN#b?l2eHlvR8oPj>3c)M{Q zhwxO-yAbDTsg8jtD?J<0-}J5w_au~K0?J{*{VCjsNOim&b^IQ@bv@FfI@Y6(^0PY7 zr`wZ_1JKWU^r_a?{3GvYoS{wcbo|}7j(0qq&erI7=3%t9uN==@HqzSuiRbR-2M#`+ zcmQXJqt4_@m1H#9Yg!IGAUsb+JJ37&M(+bL&K&%1gTc=4$Yx}@C~#jiG(R#zX1a4} z(v=XbiTM4xV`lbsdcGz|Z#Zfe7D~-)=(K#@p=t z^gkJE|B#Kf3xFw~lfLi=CXHdj2O7tO`&4Jb7x|dqgEqh<31h&+M!soD9@&j&9pYOj z>(+&AWL0^@XX$Jz@GYtv@lbhNP@cp?9kK%PH?7ZqPDhr=>PGdXe27ootZpcGr@Ez} zZnV$7ySl(u=?~R~blJ5%{`0!rEvrj~RF_RSGw#pSCFdq}*?_a*{z$)wpl_)-v(l00 zzf0fy%IY#rs!KA)i6h;vIM-dj#N4DVM$9GtNL@A|T+@GnSG9cA!M_7h7vfbS%0_gd zyLs9-9XxD%vW$nl_Jc&*_&Ylf+lF`D(W*)MM7JtGx-o($#uJaICld17@*swa*(d3=^^mx9Lygyqv88gwXHD-feFvQtf0pa0rl3p?T|sw!yAti(19sF*^gqsF@}uv7!2{c2oUPCfW6xtd z3?A7I)A_BAxHwC;9S)Si17z?Z85}BuBV}-`3?3?jN6O%289YV?kCVX@WbkAee2)x% zKnBm0!5K0*TL$OJ;CvZeD1+z8;Ds{yaT#1LgP)MW%VqG>GI*5?UL%8RWbkt`c#{l% zK?d7o@XIpzH5vSd41Pxjzb}J#%iw)7xLyW-EQ628;Nvp*3mN<`8GKR(e#m%(Rc z@C6xsSqA?qgRjeAF{uMr)iPKwgI#5CPZ{hjgMDRiUl|-Ig9pgqK{7a021m-^SQ$K2 z29K1%$ufA13?3(gC&=K*GWZ@lTm?E1v0Gnt?v9<-xkMAx_V$?shuy7^*BO2UUk2P; zf-eG&li+iJ$4l^!fU)kv!+#HWg#@1gY?I(`0fXQ0Fed>2OM+?s2Rk|b{!75%R~-H) zVCcU%Oy~Q?NHCqTe76LD0=Pti;ZxM-X$d|Ec%uaG1N@2v?*aUt1e5*qhZ6iA;4dVY z&O~aF;5Pv)!Stye=q#iG5={O^QYH9hz&R595@6T>@$j{P7fbLKz^f#96W}cpydLll z3H~c!=#Y8b{{f6M5I9U{$Tvzb?Fslvf>#1=li;TS!?8OLzZ|fi1V0IQkOVIQJYIs! z0MC-(#{n;u;6;F;8{_HB2mG!C!>6dvXA)cp80YozFa?0U;Ov^(ht72xA;GzT@0H+e zz$Fq4|5!fjB{&`MTN3;r;6oDp0N`^Hd@o>kEK*YX@crd;y9D12c%lSP06a&6?*zPD zf>Qz8BpCY(ecqE`%+Y*~OK>9K?tfU&;G%Mb;4lmv$Zo+`mZ z06!$bg8)PR;^7AZhV2`N`vHcYpThxwzmnj-fN^difA0tQHjN$b1vpWHy#UXY;GTdV zm0&l(H4;qz(BG0^vgg?=!D_&tNig{wJ0rpHd+CESK6$>^uDAL0lHgwf4+I>Z!I<$8 zcqPQxl>Z#hJ*AiXQm?hmjJVe3?|H55r0QB5s=^?PGJh|FXyu}eOcvMioN9tRa((}Y84wyhY+CW#@e!z7B z7p03TF=WRaWdg`BG&=o^$*^LT{ZK{zbCfGy_KiTGApeC&L`Fr&#Ky%Zm@+c6%-N=* zB6DGJZb7~weYQEf*kCBkot0CZZpb#}&NgQaH58iiXPFJ={47ImewKN@A;j=Vjyc~@ zG&?slH-DBPJ*8mI+(L6v5mFdkSXfYaZ(%|Hth-FJax*8C%*ikpj?JHEnw^`KJi8$C zp|Sbd1!GF`Gby{#^XHl~i_KY+kTen+JwMYtm)@v<#fC}d!a2FTI-|__x#p~-tgONb1;t78&>oZ? z)4O^0?i(;*aCpqn#8G1>Ou6sDj9IfERxnquK0$*b;uFW*HFbJM?%YQnU%H~YW{}kC zU2fyLJWG$mu@$!mbLqi)NI$i>Nv8`RpZ6R4iZd^aJfdX0}5B4DyE#xV_t6?RY1L%H`V4N+s|6r-`UUXdG<0p&DOK`SPeVOeqsvY zIBR6r+3}mCIdV|6-(52j9_pX%ZMfGx%sItWk~(?rSAQyW^G!mhMvv@&Z+1#a*j&RP zlV5`OT@RH`p0SXNZ#TyHbFZQD?C$5)-OJ9zR~F(XNZO7_ePm%}AWWjV`!%tN0{s!i z$4NOb;M%DfpryZ9yoq6Bm;Kus%xAu4RoxfL0znD0+I>GTEzYn8_5mQDhSjyeZ8{Yji_yt9w>69++ z>==Gt5iyJn#KTei?x2VJ@o)sc3_Ju0I2DQMJcqK-$k?GHlSYrd>+WgyKWH-N&YoL5 z|53}5iWMtY|K+b6p0C}yeaBnx)_rh*`KM;?V#P#u9=DX+DbC7OtJnOc=C99f*!27h zwYIGV0nS1xr zdo#U%Fk|zD&!xW_-0L{}f%K-3-=737SlB~i1uptqg0>pW`ioJx=r0VF-|D<|>sBob z**R?I&Ye-L=ggp)GiUm}hXagGAapQB_(f`C;Tz_Jql4HAGpKzs`%p0+7yW_aY7|b? zN1E%v zC~jrr#B?!Vw1{sbA1_uS{=0uxMm#!8yxHH4-)?-Qoo#&0*i=^B?p+$_}nU2?LA>-fJTZr2pLK6lOak3KUt4W&z9Q&>K$ zV5`_x)PEYAEKJ8mf7y7R&gKXvT=X{^BdEoxrKQE2v32Y{VIwa3+seeR`ET^s0RaJD ze?9(dm&tgZ{1Fk+^@f$#~yP@aQXV{C3su8>TCQ@e}6%VSQLT} z`I>+I`s?-fxGzXa(2Z^LOQieX`2!`6NcKG5W(Vp&4Ei{T{RI?nDO-mBj~&yfG@l&f z4=T+{jfSa?s+Qrt?AX%PjIN66vuDq4Vmr>B^}!$gd<b{I-_;WB(_U zr`?Cn7(a0`x(L6`3`fD>qCaTS*&FN?;ayzxx1Xu>ZaAPyq1IuxWQUoyhbJWCAg1o= z)w5^M0c_esbBdO5zCgTzej^{U-|>HD|8Y<+cl(>o0^`R-+?AfevRLB1_p=Atpoz2D z-HZ*2HN?ioMj}!qGqUk)Cd*}oz^j#zonBzCvUgZmr@v46Q*Zu%4{*R{+1KmLRqz#p z1t#iyDwvC#yN8!gZ@=681A_Vw3>iEmEFvlXfPS3=3q*eWf)(8*oG<6jEv`K$SNtMsboQ+!IWKW zE;MABi;4?N_?#}Ru%xIsGb}R3oSk5f%8HN4N{EWih>Xih$TDS_BC`{+vSK1LBC;}L zqcSqWqr+zBW)zwV7laiRXN46NW`-5>T*EN=G|dhzEDD>3$!<|tabA9I=0kuA^20(+ zMOoQlx%oxKs8tcqFDxQ7E-o}Otk66w7bQVzNQuvWLo*9a#h8cY77U5aj)=>OjLgU| zMZ|=MM`VXl8x4sJjff2m=MgdxW0pBTt*`_$);Z=dC?ZE;h_9ESQVg_X5Ks zxy3n#>|FEgEJOPLWg+v5(s-W~h4EV&Fb0K2+Z2}+q5sfeb4&{|%xQ(DM>=YPDfm3p zLWV>@OW-E;ogK&0C-S-d@TnuyN##&7yLign*}27p6Gb@%v$IC!^4>@VBH?L(&b<;g}5R6AJRp>2_i? z*Te@Z3RG;kAy4~9R0ajI>!u1yiixsiP-7GgH5BKV4N&qJa*GUx41A(zdqBM5v8lz- zEDpj}oP&HM!i7>HtSpp+DuGN%1S@m4*_2;0cf^R!Iy1cixn>s+HR$c{36S0x7U^%- z8x|QtLk*7w>u;zLwPJqB9MmTqBqcmDJSsdoJSIFgJT5#wJRu@HA|fI(A}S&}A|@g> zA}%66A|Wz7G9ofEGAc4UGA1%MGA=ScG9fBFDk3T}Dk>^EDkds6DlRHMDj_;NIwCqU zIx0FkIwm?cIxadsIw2-JCIVbODkeH6CMGr}E+#%EAvQcVA~rHMDmFSc25c@aHa<2X zE<7$GE;24EE;=qIE;cSMEG{Q!BeH@!jXB>NX&Bv&PJj)cCN1u{sgMMp>Rm|!2!OHvO)SI8e6O1zTd>>=@n zBJdvvSL4H>$j;QHzRu5tigLCYqr@JZ5195ioc-BDVrZD>%!N+U&R9v?iD70anM==e zO!IT+l*}=JlP)w1|HnUxw)_V-@s>aP^seK7CH-W%-GI4hr?9!yeueqKUN${6H1xp? zu+MzM@DW^j9L!r?LIDgvE*lu2qAj!!SCIZ;2BJtsz>^|SFesWyNTC;{Ahxh`&HRjo!pY-D!sGppPS(srKx z>4A)&ueME@TC*-RY+&%TzirsK`S}-Xx4rZ32Wls0uiJ(uj=uYa7eD-HgQmA{VE>Vc zXMXspZSOv%A*la=;HdbaspG~^nlkO4`yQAvGd7v6%IpJWGjTQP)qr3iU_wp%6_`Os==yJO4mUao4Oy=NWt1@rwJ)#aXN3kw%4%H z35rauF5Fucpzu=(#(3qOsxYNqqth4-1C`FYSjAA4uSV&tnKU*o$|Xt@s@0bbn0)78 z?I3U80ew7ubQ6%lD3{(Ey*gDpP*>uVJaUkFm`bm{TP>)1C{&ipjJ~N_z2$|Ofuo)D zY8Q{8YJKeON*~MH!?UJ1r|R@$M*F2|r?`yO=q;DW=xG zKKBT2kuHnZWtTWvK3G0J(`89`5ASDe<#%j+yF5WNNI642KtBeWS&#DV)6I7(6EyBd zLW#9kv`dZ;(rr3Z7Ud?~rgl|o%T_E?KBRI{=rlc6rQe||9&Wj;FVfES8ne*T+0*%6 zU2n^iWp^l+CcAkpndGllTRt7E8W|wW9is46ie*NB_n|7G?9ia{?<~KBj92QF;$rtv z<40I_56AZUX)3>HvCQ>$WtQ_jddti4x4GP|)M-RlwWVh9Kb7tZ7sVsWG_|u*aC271 zqjJI8zzJnjoo_=~VzsUas?%5+`sXfL7%99cT1A`kCGD@`Z>nqJbw!(Q+x!KU zPi+dn_rA&%EBk!y>UQV&->!y+CC+#-?c|cDo~~MDef6Dx?A>>;{$JmoZevQ0&~ZbD zjTk%b!6i@Q`W=IPx|3+CpO6#Xo zyO(WswY;SA*OmDxdTRw`7?iadg`iPu-1U>(dTOR=6v{q&IG0gq6e0+$vr?sSQVXtL zstFoD&Al2??c+R2nW7j1^5m{|a~`U^t$&(fjxw*m<$$VuyTVspeob+|##`4*M+ldv z)~kKh_iF~L#^`TX0yh*9PPZ$4)v&(z0Cr((}$f%7~51vM&Z`oK-5z3q8s% zX#~R{HNHNjw7jqIQ@FX@lt4>_I*lY((C8b&nMpe4)SGi61!IeqaAu)OXAgR8U_E^d z{?3MU|DSH(FnCb7;r4LHlXg`y}ZgM_|*)18LubV4sB{OKtK z)nLVN?Vw(QAr29gT6C30FWx2$rRYkWYAonQUqKXc7`&(yff_BRcU^sYu9Fq~|_j0?Oyez>DH-Rab;x@4_{*0oa z(F&rIP5{CRC1Rj3PoWfbf?Dw<8Udx%P>P~ftrvxG{|IF`o>fAy&RH~|l7b>09}!V8 zR4a;qQ3x)AhB8!$`;1K319xFh3F!u=&J|$=sW*s|M36R=y|<_m){4G8U4#MJ-cF&4 zaMVo{2MQ@@c~Nvmy~2bjq$-Lk)O(Pq70yz#VJkhYtYYdYoD`l_VVO%*DT5VC0ro3c ze3_&e;}oG>B*eOfpq_d~1k%(9BNY8qf_9|fEJo`8XQt(y@Zb;Rgr>M#jHXsfxU6f2SN5j%B=U9hHK(=HAkefB%Fx-%m zG$|=%?9}`JU8PLNgg3JQQ$RlDFAB>jE;O6NXx@)Oe`D5WC{aRl%w&{cz)Y*iJUiR* zIK&WfV|eIlLNSpD4x!LlMaA|9yIv>DJhv!pR_>hHxkJK3BjY7S4b4x(Oc@!4=6NVV zs;MZ)z~w~D1iMVeWvS#KSO%uK`A8`uIyA~LkC$e_m@H-%=5nP6N&*=cSwl4jcmzZXc&xI6knvG8rvy=Hu+F`1Z1ff00T$l`n!^G@t*jmWKj55 zK5%grSKs*D-3z(dtjR`EQKQ*Jk`N^cNl;^gkt7>K3?>+eAqfhE-2@C_SN2Tt*BJ7@>o>bhdxq8i6{NCS( zNtUy7X3m+JGc#w-oSD7X%lH2~ic8CVK5q$H&hLQG_9+B+6})ipPHe~3jS{#G*B6$R zW_ZeYPE>1s;r>)!*9`@p`~#)s2RTcg8iv{6EiQu>BMg^upwQPFr{pljA$9S^dAJ0Ub`s8c*joBmKrmUsOT+MJc; zkp~$Q0L~`Qp+awYX%XBz9ynTjJhR9BpB&X*6rPjsDJojBeChIwSyknPieI{PF&uE-;v)wk+DW{uAw`n< zBF_f=AiRPJ&i|zNKZlpQya@hb?mFi>W+xx!S8Q|bNZXjR9S0d1nH#s~Y*?3;wtn4) zEi~GRXMiFH+j!z|Xu0gP4Wg$ox}ijzA%c~H+XH=pGY(2Ebt>G|LfQ(ghJ!dZ;VvJQ zB$l|Km{rXs%h2W05XX;UFm%fDFj?T}aONT+QoSX) z3FKhp?vG;6VR$^|v3$76y$5sl=gXFE;Bn`s4Ni4e?sE$%50~chNsoBTOE5>pfH)5I zgc8LmO=;df&*v|D2QJ&~a|UbuukZ-UKhI5y@F4u(@YnLOU5LXZ;c0aic)bULS?QMF zKIi)KeK^$ujXK-Hhze9DnAz>&F2LjFmg3;rE`;GeK5YJP&Z^)sjPgxO^@fuIhz0h9 zs1sdaWTKY~_Z``W3zpDeh3<7F`^7}qD3^o`t{GHpE2skB`6W#iTkrLfq*ZiXNlD%j z71=~%y)d67T3+JWK#KtR@i+2a*#_>@&pZszZE9YzyU3G~kCUw{3QKX`kY7Nld-L)S zgdwji_u#a#yr^hH5soN|_hYSxhE%1wFssyeUJcQ43gz;Y$@`r=aW5YODsd;RrY^aJ zZuM@gAh%>*k>F6e4#zHsJ?5nA4or4nG2wH752l=QUrw2q7m|a-%WzyA$Usir|LCD=BpVikg{-KsGk}Tv zfV_icb*-CMd%9++{nmY^GZrRo1s%^7I8uIDlFsMKz^}ciQ97!_uGp+v`1RHLhRy-Jp1$Vk3a;gS8qs& zUz@z}yp+#Rd?*owxj4vMy_y%BTk6CKH(B?4ai(<;r?I7l*pu)Be=kn7aNfx?UnY)b zJteum^5P?OVDW_|HzYzKa@8f~_-dS_AdV>?a=+b4c~{d?zj`$pHaTPp#ybzgJoiZL zPqV!s4-4vYe&CY8kJ9+pQs-gt6Q{?tjI1hLeqrIt6@?cj71BPfd{z1K3!(GMFHGXc zUi((A*mq&lyd0eFd;z=Ja=vxL!R$dC++eAOLUP}5>7upH1m~WsSFip;J`_8aigQs# z*gwuSPUrckIT;tu`ObaC@y<)Ij1`r7zJL=^=M9M!ON)vQ9bEeP`iL9+U!Y2w$`6&j zu>W&2kSmQU>2Y6nuxy<>4`+NOxm-ldnvDy|^hlsuTBN>_BM90gVSWOOPWmnC^naRtqEsvL!%ET7`X{_W{n=v}4` z{d2IwU|#&IEQ9;f2#%w?LxuZcEP(xH{sR@7Re?(Y|7wW=9fnyEa_#RJp=r*#3+XBc?JchNlz9K`()hXhvQq4mP~5}?lNQLeSTOln z{lbO()D{aUmi&o%z1;odoOg*c(TS`wDsrpq9dPNun_<4*fu9*cFUsp3pI5!{rVF(l z*?U)n-Mf@wi2P8K{PH5&p3%(@Y$~uJgWpSBw#wt;g*0fe{IAFtH#e5ig*%_{oSd-I z?!$Q{G%J>hUpPq*q>SKKM+(nxN~m1<(SKu-q-QlC{!prB#IawC0V+RY1^KhF|BJZM7^8LbB$#3eBJC*xT`86}|5szD)e=5(ippxec z`*22DgbSAZYN@gg;a4g|>G^bbkR0Cv@AT&LO1ZJw!FXO+Vgk>p>r0qL0GIPj}m$`l2hK;z(Dt|i(4>tXH5{6&! z$C>*eFL$x0?69}wK&S;9k|_@c157WHo5Xr>&({ry7F`RXgA*0wTP5|IOvTiV4LuHJ z4v;Il&_`=EU8Phv5Iq&7-sr-uxa}yM?t974&beVhfbcMvj$kWB%Y%#szVQ7S-4HuM zie!nm7=CZsrNQTqi(_hL@KfPne{gG{q?|6`p{nYLCU~yFEfUN( zDp?wN(75O>ekvsfJG>%T@ArF4VDd}P$hOjh7(V#@FQ2o*Gw7imp)=l#Jre)6cr_{& zesdhwtGG}WoEbu-p)M17p%zM?^D*<_w@0DICgRHqfL_XF$Wn#L-1S zTWNB+@V2e}@Y!cXpJ7&#_T$%%(WmO#Cik=kF2*X=7kbloy|*ISeFQ67@sYJ)OVV?% zT_mpak~a)jMU`|WmBI2{jHN?`P=d6gtV^@cCgD$WaX6mk6sj1a$It4_C>d2psCB;s^BP(wF|#twLdk zV1oJA33a{ITPAVh=klA2ca(Z0oeL^?Jy*%;(8%k=W$=w$6LU8$Kg$J!buOiDH9QeX&E+d$o&gH7Yc0mX-AG4!g74@p&!tX zy#D2ITtSe{5xf|1u)NGuAxgyq>K&Q2g%02?k=gq|8?+ z0$e7&K_QD%xA%zvt93r^wa}rlGi$L(mb66C;CI{;O_%$-+)UzJ3dCdXId-07hP2vjZIbtzq@luzk0*Uoj@FJsJH zlh47FelS;>gDo+iyfl2&@1WH0pH7xzO5qh$zjIRQ>UU1+_fYEhQf9xY!YinLkEQ4o z--WW=RT8S-imFFGD8B0VSn79Rs(vb;qEq};J@LDD9t;W3l2GMSeDEV+9#nmm-&f%k zKZRHIS9}#8B~R5}1(p0%y18A7Uh!A$ROOoEieB+k{8hVDy;VNNSJhX^Q{fd<@>FyR zD*lRIm7~&CJC$4%KLu4gR9yML6<%ZU=f=m+kB^T(XQ37!KgT{de&(zgM9)4e_Kexi z8S(KaArc72bX!z>v^73{T73LzmXqhj>yG&NGf$D}ag0$t=@TtKUbK<+T6n}2 z4_C`840LG=8!dTdW77t8??j#2tMdqQ{gf0t=c}u6(#Bq-#-Ey>FyJnuTZ@^r5r&DR z?g2od7jO$0Uh2y;wrxdyVC)rpXbVL)AnuFemq^|s`bkpZ@)bDwTCoaBKe@D^@SqdU z87$IH+IKjYti_Kf%i(2ld!W%37@U z+9-xcuvbU1QEMgIHKsd&sftRFw2QhmN4?JaH6W@ic6_a}IvR9VXH8_Ri+}C2x$Hg>wb_6$}Pn^=DaYmc@2fr-^C&tT)Rc&;mWpRM7Yn)v3|>@|3pt7bH6 zTD^w(ElcC&&1kgP@#w!63;oU&ayX6kLKF1Pv{%hygEQ@;Gug;Y)y^we9X;6)f9%cR z*aTPy*alb$*abN9HI4NF_5%(9b^(q7wgOgtO|v%u)_zTE1{+mg7c^m)%|32peKtGZ z$}wnD<(i{dYls$Uc+<*!JYR?5qj!_!@zxX8sOw!iYto@Cx^=x* zS5hTeoTNp!L>pbU5Zq^);WB(IEseL^NHxk>y7)eu4WQo#tVXR3{oX|yhv%8i8c<|| zrq^3oqgE%|06Cu#=jhc~nSo{cHr0vSv~?>hI8Y&*;#MY76Sg1^wv@~K5Gbz&EOd=T1_ddJ!=Rn!1%(fz7p2EXb4SgUu@ue z=i+L7?>SFz2L8M%5cen2_v+;_^>_1~4_3__fYrHk4u@tAAbk0KTuI@2%_gp<>px-WV*#i;2p>VMCQ=%*XmS8Y4dD zzf4CZx;9m5<384t+Nxt5U12nPS@jhdL2XwUU0&94#Rv*++2&|3V_n;f+A`LAr4t-F zudz2=#|Cp9_&%CjfSTtS9YEx@L8A5U%=+uth&z3xgmrl8z_+h378yqhF?QOowS!B? zff#V?J>bLy=3lFdz+|LI?=oP#=!9gL~+vD#wCsFyVtI~u)g zyx8b1(OSGlyI1S>8hu`^(HB4J)4F{$;u}j6klIs%F7=n{Ri#>IslBF5>nSDKt8sDc z4DHldy<1~*j82X9XvV0f^=YV($bf#wSjHG{uo`2SGS*ShB7Ao2h*sJ<&1j2b9Y%87 z0yb{z)p`&)$x*X_4a_o{7P6sPjp+UAGwf9h*vJ`r&jL0&*BFmuz4NLpZ424pxsHwn zZ0uZn(*jl%XRlqr>f-GEajYrM4*WozF&3xQEi@VzYE_GjmPK04B1~7MkUl%sW7U3U zP3*9a?qQ8l?bhBstYL=Hy_@-G+Pn9#&Y6y;-E7EVbnRgyj&{_e`Aoekn^m4=Z{N+D z&oWwfv!1hz&fToE3G}^Tsl96_ zt6gUF?qv1Lve0SE?5#*ltU~8jB^gb~excF0lQmuB7}>>!F4FsVvCh@T&~Dbfx(&*! za--3_i#2W3M|QKO%N(6qtbLQikJL@*qw!7l_Fb$hl{81wW=BI78{6y{-^qH?Dz(~O z%)iwb-N~xAQvJKPwps|aolun-Nh8_JpPAH=&Dt{K@qI9J4!&3JNXGZh9S(f&+hK2o zAa>Y$A)u>Lfa$!-4gvLEWgp$e2CuTCx}#Uwdv~$QopV}tvbLQ@=T2>Cr!kzZ`Lm4r zEUhZbUU`kym}PWiX`@*&_+GcmQFV>hxy$I;rB&@V8h2~8yA9y`b{m7cHUA!a%O0(5 zkI}hD>)S&)YqRa`*;;Ql@oc`Da`s%E0Q~sXj?jLcr=7*w&?^(ub7CEXCS^FaU@G@2zZ|`2lx)ty*0oYg=kZq-&{tU>WOMY9C(82A7Ueg;DOgtQzyL+G-3&u@0-fGm6#g z_6}GWy1gL^6{dxo^8HvF*W+t1XALv${#4dJ%Z~5W4trNBtDQ~X8)o-G&|~v*ds10t zoTDR^)h{*%Qd#5TT0H5ZEzw?|$_7^$eW`4CMGZA&jlF#{>rS>0rLxgW?NzDFpHc~l zR=N@!wy+*oZvEw~b>kd-@7*{D-^VvP@V)Lb2fjC7mV)oYm!ZJ%%Tj>o*knhsJ)7)p zscc}A9fglUs6W=}bGt3>8iNf)8F&-@;50j)Z#FtDrq;k4H;n;9>oYJE z0{suY6_cdbYiv~!dQj6_G_5JPjFLQN3|Z`zRyK;)Y!LrbHAjU5D@~1NG-z0ogUmhy zuTv8AB9`dJ`l#uqWY89BZdQ+a)?4j07qDKKc^6=O>SIZ)U2ns4|3=R-Mpv??x%R3g zRyEIoJY)0ibt_r_B4cy~Ylyek&85NQE%u0kDDq*#0T8-vZB?|e?hGB@QQ?DI`WoI!O6(j1q1xW__qCjug zSWzm?M7`3Y!CtAd;K6S6eH?bPY#{Z;Y%XsXV`aKu(<*{(qkc-G^=L>lYAhOz9Yuz= z%+tswNH#3Gc`#5Z34MijUVkjxv3U zm6v&5r)I!H9nu_C)7Xf`Xo`lN=(h|3M5UugqwO8htTCFlEj&N=Ir!SD#nxD$Eweao zHmpzRRILE!bDyOW)e(88rx~Ej%oOos3$%GzG1x0Kax1Y{Gpa1Gyxpjo#ptoX1P|2g zvtv87bYIMP6l>Rvz9=@V8EsH)cwQh>73xSTF9z+Z)(t4TT0IF%wQe*}@YWCop5qs8Ev;22DGWI2;r1mk#sjAH}uf$p;gMx|_XHF8vI z4s>R{mI&Oj8k$l-5jv*c2Fb@%&wy4TlYiWT88~7!`tYW9-58n9I`lYvAJnsXC$vpR z1>=z;DizqOX)$BdS^YFLp=X)_!+3OBEYQ^krc>2)JKhXeX)|hUT9?h}wP}Mkd({kW z#D>Y#Hp3X0p>@ni4h}&+u2wnFL5+}Ut?j3fSubcECulBZAc$Ly>7R#Ilt9e%N@|ffbRP(tQF9Q2i;e{ zt+U}*5C<&kwXhDrfmbc87qDT_!iE8Beh>bGI`dDnvU)(f!^%1V*@f7$y#s!$vEc$N zOSZCJK==aKAfW4ZNd8?N+QiD7fMxJ4)BwgmW@Rma&8=3}0hsl;mGuMGJ!xfQfXQuE zX8a!Y0*nJ3!;8^U0Cj8^eSlSf)qwTSV_yf@`+}AA0A{~rW%eQLjeD#t5wNQtbb#Hz zv9fHy)N#}ou)@$;BOo3^zy<+ZW^fsX@q0~|XILjbZkfE9C~EC_!N zyhiUsUUPLe2e4oP`UEg_A<6_yUJPDI0EF&&l;1&gs+#76)r&MxOrcWn`IA0UnA(XDvqJK&rQfgj%?=-PJjIiaWT5_ENd z#D5qMo~HRg&zYzBLF0UQ3CobroYz-X-~~6xdK3`z${Krw&l9T?(2sch7r+m{tRDbe z1z3xTkD&JmXmMe_GyzZZCUGgtsPvPAfLW6ZyN}rUM+y>i06I>?I-;G$OmX|M1268 z028M%>&SOe9$?&qjCBCUH-Xw<)~bh4KS1}xh(k^TEszi5t{)*b9rXZA1ss12`~ioa z0Dr)~Cm|oe+%}wb*qF8GSt7@;|Njg1MV$0c)-skc{1R48#5;N*C%~AOc|M&%FHwJ! zeriF!*j^E@1=N7o-w^pS1+>)4c*1Wv-jW1J`TBn+;&p=}e>WiU?RrPV``;D$QhzVT zRqXp>Ja+y;(DezZJBJ0`ARvNX@kfzPdJ~(CjP{QNpZJeOzW7nW$E9g(8uF)F>9GhH zzkn3)HZZ6FtEY>2_6&{BgE$9r0iOv-`4aJBbBZU#aA?UrRm3X*Y5o{^*$L&F6D#-) zLVqJzNRK-cSw`JFQSQimL1&yR%Bfo*@{^v=MLu7#$d~RF^lm`BzgMrkPT(7{4iH~j z53ozh$f^+Zv@VPwo^*rYpM9gq=L4knCHO@=84%xe{bmtQ{Gy0EZxQv6y;b1b03CSX zvF|oPKLAMO>bHyhb{GMqFZ4$xeTzuX2E;eL@kfG=)~WdA=$FTNy50+z0=@%n*nI#t z|5(rs0OGx^*2WIV%g(I+=LEjtryBDiKJ+|1r+@`N7x;ES<0Q@!Oy|0^@G3zro00@;0WLt z;fG+J&c-|&)|el#gc+AJxlAMfo{2BZJhyDsH9uLPb09kk?A9g=GOc3=5ZgJYW~%4JRZ0RKRltejKm>@i|Tr zCwrg(@+Nzr3y|yq=L(k542YnUT~LAe(D@ct2RgD3#t^SqVqraq4+2s?vKLZTvJA2p zuvN<#0gOG3SzBN?AXvzLSe3*w`Y#mm)QezeAUy^41f`Q*fel~=*%dv2WLLyrz%p`^ zEvyFl;x7^TRtd-o06TzpuLb^ejEfZT18j9!SQ}tms)daJuDZg)Qe&AlZ7ZkO$xf*N zU$Rqr0Le~?zYy()o#H$L^#!azoa~hzK(bfjFM_^=oxKmeKpVh510| z?}z*Vliq~9&qRO!7X1N8_Dluxkv-D~IEx;uTgai#>~3`vG$S z(_lfi05$=R0Q#e>EPf8NrbihIsp0lndB+Dat(u>+v>}3z)bE>417R z(gAyOtZda>tRrsNNq}`8*jIp+hfux~d=HCq8jo06D&pBUSXl#L!i@soe-j+>h$r8S z_&n76i&o|YtiJ{M0c*d6`U8@EH-P#z0y^en9fO_cT!V25n2UJL9moQh_BE6bNcNu( z>4}em@44s)z*Io82fKiu^CK(sBTjaqGnr*{19l-!_Ms1PvJZOzJD&i39NGmtG4T?X zL3W}aknF?(z?i4dex!4IaV^Urd$A6X?8PBKvKLb>#W;bzSO-Y<;s_wwi|HvC7q3`Z z1?UafjV*v=Kehl*_G9ci*hjxd{T4tjAE91=_K#tI0`>#OE@W2cpR6nk&a}e?uH_1keZQ{siR#lAYRx@+tvG5U>3Q`u#lA2QUlJ zuwst@I1EVR)}g~@Mcf&svsLFqK7bW~)zh#?0qh3s1GF2kTN9v10TFbvgHzYDjIRI>eh{4-;Rqi$@SAyLiSx*~vYCWGBbEFn?huHz6O{ z%LRz%!d^zu$!_jIob2WiK(d=xZDbi_H~Rs50Xbj5KG6FXf!`A75g2oX?*z<3+z$Ji z;$&xcfNoI4b#^`;41{u06LbbmtviB^UB2IRCJnWBE zYec;65a6YnN2FA%zKk$Hj-+=Kz`v!*o82OSYZyc}& z@^Fwe5VY&JGp*tr&0(L*oQTKb6L;e${0!TL?>uDAbl#_Zi!0zbAZWkrl6hbTi;zAu zh4S2Ot<~>|x;J_bux@WS@&2(FpV)R6XB%ItHUsiJw5 zf!YVthBa3HbL~q2-5m5q+^vExotRO8JXLuWkR&e(Xc`M?$e;Zck-viSQgF=-lLw6n zn0Il@e!IxuE=rqx+*yvIwG)ONFV}^orBU)p38}X#*BVdN6$R5=C`10%YEdry ziXymX`m#;!r1AcZ>EE;+n^AAKS%y&gY}Mpn^}YVaulrpyZ0V7(;FyLFmLS%DhbSjg z50ulPrAMV|QJXDMms_K@=uv4=QCCFcxr|ZU3~RDJlSQXSZ;rk^dP{U#^cB%tqqlKF z;s@2p2JRC4j!Jfs`!_Ybe_f$bL6{A26#VRW3x2(*D-V;*dy<3AI&KN?gxBA2&EOL{ zq+?#^J5k<#@Nd3X@Q(}1xkk&HM9@}vo97}qRLZhiG>_;#hWS&vF zgfrk>E%XxA!wtHzdO=5XSkkpjS`V8w3w)3sT9F{XR`AQbPw<1;ulOBz{8$IT(L8=Y zN%hlli6E{)@H=k5V*V&qM$^|QcqaEJ3{GDGvGt-gRE#2SaMj z^>u^aNW0*d6_iUrA6Qe+*K&O%IpR=>W&gLx-z(VgbvfLwY7XrW-jCg&8a!a;UyB&<{=iac)Sq=`sQKYM>vn=&Jr8d68y0r%1DsvSi}Z4Z7G?LDvc0#sjTS6AdUw6e+e43(AHO z9fpwP)V?@7Z1krD-;ntlRv#PLM=3PRF!)r(D2lNaj0(M527Zap2!3$yh!84YD}!v5 zghevh3(cTQc~;P2d!y(g_OGxPNcD$yGT93@D-N|MVBO$m$7Sr+p9=onLH@aunG0e* z=bBb&n+5A)E|oKYa?Giuugg$QY?mmfL9~L#cLX~b!c#g>+Q}q`R?t^SdhA6-Fzo|) zE!0K;m4OKs62kxv#w=aI7`F#vaHX~CXQFP?u21!A*CJ44)qL;qaq}~R`46?5&TAi<7Xm2YYX*22t#4-jDo)56+!>MF`ivG z2uOHU@C&hbg8G6?)bQcV+i?_hjgqc9*pCfb=tSoe3n*c}NGn9NqaE}kuZeO)?WPHG zEeP)vo25G(0ht!zV|Ty~`<38_iwh!<{)l8q@QpN*Ld`0hrJl4%I1Xdjgd)b&k4I5n z+#902Mp4=%^8jX;X&w-LJLsz%ajmYbPs~HgU&H1 z=tA0`Ztj0e74%(T7Jv|e${h!Nt)#CCmK$RKT60lom;vk}+LPf^ct@056kP8n?9+w6 zMu*6PDna>cXuKT-ALBj2rywZ*$@riu;e1G`nJ|_PprG#Hng~y!{vJko><^;6-e7x8 z>lnt`=UB%`{>i7H4Ic=8&4}|5QIBJ7R9z?aIIY)5K|dtv<4!Ec3GKHIno!_L_38!R z))7%JUr??-^SH2C8eoD11_mF<)W0z?=--b8eTaWz!nm?oYB8`N?d;I;CFTS5Z#MWO z{8{j+4z8y)mgDX#tfMr?EE9JY=Q};P?yp@2m#;Q>@E; ze%2#@`W%s;#tRRjb`pk_T2=zzkf|4RO=k-_>IWVs*axYqtXFznGlJh`_9VbL_z_*- zT*0S9;vt9h@Z|}c`SjrGMB^_LbYlwz-B^$=M6aZUXce2KEhI*Ass(+|`GUSHNFR`s zrA1X&jQ39DZ%PpP$AkGp%7Yyd&|=}`r6Iq5I`$|_1bv7-I&vKUOh0-G>A|r>mL(PK z#wQc}vX=>dI3^LnHFLmv{PEL(wE=lTd6J6{{WJk9^mjYT8DAmF!5tP=PC!oNH@9K$ z7&P_7_#Opa(uIO9CTQOcoM3!c>8QzM!d}7W-n}06&R0qdZ#C?{{ip#-ayD7nkEQ`1rK8f<8DPNZz%e z%l?Cuk7yqCQv`WqnGcmWR)}C!5K=t`!LRQF!LK98@3?x5Qv4_O~(V56YbP02CXY4~EkDef%NsgdR53UD9=LX$~r0bZJE_@v!xz&TN zVnmep@5(I>{D#4gjS7AV!SR@Ajk91!C_*Mc3|?xg|3&1(ok0;?Gh0qzw^U*vBTwY{ zN$n{D-@bD{<%%xE-y6X{V;Q3bE5tGji&BM1uI=FGS}6E+5R$?KeHJcPq8kNWx1<~5 zM4T=#uK5Zn#&mf9pM!C{NR(HGy(bSQzZ9;m%z^pbT`?TLfLbB#W%yib6F&M14T~ zI>E0`@*8$YhVcJSwvFZIiPjeMQ@D4EtPN^cj1zUt7WEsE>`=cDe@2&DSp(xE6Zz6W zmz^W%aIHoJ*G&KM=Z$69J{MUccQYU7jo{n9SMdG3dWYtFKj?Iipvw)ehYlMY&NG>) zI;jMG9{O^h$QP;)Ej=@FWe95_(nn=_$UfO=^@EKJ$$)9dmsueAgy@Y3^P4-S!X~&2 z^wprZ9}x5*=UUjK*dtwpNWcP)w4mUqMO2So@Ttxc_EZDnJU}m)_kR{FpJu-Rji;FT zSc8j1JsN`g?*#trc&NXL{%n$;8~m!gf?rdRpVMZ+O-(t1XxvpJpHU+6wew2jPuRG_ zep79DWIDCC6Li&*E@025;k;4JLmMs9%s9n}F-|p3OM_Q>L`+H743fKkF8tAViE=~M znSeeNb}RNQL3I%PF6%+{PXnJU$){K1KaW1D1YLctDBrG0LhKhT=6*jmt=^y$f262h zr#VX$RDL)3==Taf1B9diyGfn%*l6RF7~*_FGSTViq|Q1)_j&70a!&?b|1m)~h_g8! zV26ar9Tr(Y?rz9^RLPynJqr5R#|3?bqMxvyq!^*=3DLEJF6$XV*TDQiZKS7V#!X2D^LQuQ=L0>KDL(YqX^MPN?2^Tcie~V!E%X){LuN+tZ;pL1I)gS7R ziH{rn3U&(lb>@*HHz1fBggL07BjvS&IhWixrb%8>4t>19DVPuQp1tgf&jJ8K}J<`G5G0bnk<&&&<_6T zZ+^y8q9eQSaoBIpV7e!dHeCF;Ln1t zAXr{N4_F{Db-$DPw;%bP_(d><YDd2!J#<=&{>=o> zc6{_*f^V|a^Tta7zPJxLiQceTd!Z|1H14E zPvb8ev>mfWGnGAK90>3Uj6-DQa-uW+^lylAT_+J1vfdKNe}erv?WZPMkTk9asUGtF zTodOCzL!eA=1rbVCpx;bTK$5kPpXo``I64O*N}8H4>Cd5|Dm9(m-oR8tE4-@m`MYD zE$Dkb5%ei?A{cM|NC>iEl0GFTg;)!sE}s>(#Su~;{1l7Drpoh4xvm&*OMWM)56OYf zTF15u`ZTG3jAtc%q%j5>l0!D~CRYi%EYyL5@xbRRHye5DLEkwl%T@KhThgD{9?UwP zJxKEhKlx!T^8B-oDu-Zf3hF4@A?C7k0zznjz`AIEfed_?lC7i^jF$q&_hpU4*n zFQI%Q@jVJYWRs=*UC1L*$>Y%g-xjQ!6a5~?rq|<1<>YA%neFN-{6r+YZxQms3`F^K zpWF4BC_h=vhfRU$zhk{%%L3y#P!4_{V3NCy zZW{uv)GJy}^STIpj#@;0aV)^6C9?m*T93PjNK?#&2ZQR>4jzV0@Kg6-jQjw< z+zHj<2j;n<)#Bq-hmLBWA@~Hw>xKZIe`&l@d$URR*#%#U*}SjdnT-rrPDexLgq!LJo}Rwx(`1^Aty z{YPQaOw#`8SaYrueC^95-&Z~_->#D;sSSefQPuv8fPU?_UX1AN2nMY2_c4in7sV1!7CpKiliBl)TQrSVpv|0Ca*x5mQe z3BNH<{HUKY!LQ>1Q9t}Fl?UU2Aiqe>R@*sYOHJ&jY;b7?-}oO1zUm&QksshYasvNI zGR7711Z66I5+&+K^|sHzxl^m)pDhhzV@-hn3C7nP`()$54Zi8Uf-h6@*c0G;Jo}gG zJh}Y~zLot_&I?34jPnD0Pf*{^h~t*z9Ak&wZxQ<@w=VhK9pLLf!M%ez9E2fHWI5A# zqx;-((Sm=gV9!GO(KLQ5LWgX`@!JW0gVO{*b>3pE4AeKWp0y^2`AU?cO{Vt4_I73n zevPVr!FAOax?d-o$QRtM3V#;pDSlUYT<8<1Zf4wIYX40EzNYrWaTHWZ z6Z)6NV%Be-t=)ADEqzjn#5g|`CoIDCTo!UX;t)n$DCWAkLcS=2XPjf<5h z;7@nfKSu#H?#jTw?KZ(*onILrKBDZR~E-wc7n&f=q zc{d05of{-S@(EBd?hf#qI6vq*d)V{{j}kp^Klo->i+Tp^!kx$C+ZfIWBQ3NT#kU)L zlfNqXR>Ah7U@QvoJ%OHJ(;}^3G#=t`54z|c!Pl?kFeAYCIDQsv>{>MJEiBLz5#23( zyj6mKwLFIm_=jG4SdE7hoqI4SxJl1F+^GK`_{ZKa>aVN%-xT0~obd+bZXR!ty%|Mv zrhZMMd(^U=GT3MojFo|MYL35dVuB)vdDSGojo{n1S%{;Ja|PcIo0WVf`lH}54|7LR zox^rL;=E!UeEl6lF3F1TLjk_Qb1$${r(Q1PONzn%Rn|wH2N<^m=xX3s4c~|JjWE!v zadJO+6nql9MfttTKHd`G(=%azAbudQ3jK{V#Z0W+BqzGhUG$RRr~JgmngG9=i2ecb z!!I{@B0b1c-Or`=#^HW+hdkelQ{(590N+Ua-=T>6U+}4y=Wp4ny>C6F`mtk@dmHrI zZlne4MverkS3CHr^O7dSDHsn1_(d2On2)A`Kzww%KP}H)GFAJ$0X`A#qgV#QE||&w zOaq_(H-!A>C_6VJz^7%B_R+%`kQUxP>d$)cbI9|WAyu!O5Pp+wBy8MJiKuWAz;_gU z2jn?SH{ukGivoPZe&50SANQY+%5#@-_*{7YvjX{#zwZ#)d4CmwPvW~mJ_8bO90>4< z&|gO<^cT(3R`BVPe5w_nN$PK-Lyq9}I_{UG``kz0lk-H;TLbm*hyR`oV+I(}J2dh{ zpy!8$2KgL0{u~&>%jJiq>=e1^Igu3P^CVf;77vv@d5RRg-x1})1myuLh!ICKp5#XOhn^DoAC~Y*37?nn6$#Vt6#3qg z@ed>%mvH*iB0X2;J6*<|5-yj}CE+d!_exkO;b94Hk?>v#ACs^{LGj!^v_J$QHRvNl zjQg5f1zx%d0^_|=;_11f6y$S7S@Hd%{xH#a*e>I0eBtqTj8x0$QIT%uE1!2dY5IVq zQ~9zs2t{SwAow{XOp;LHQ)K)mSsz?=<>4$e_#%A!mc%cS_G9Hti!=K0XmBl0V`n&a}hiIQ53C5m)Z3Dj34|FdO|V}R6RGyVaI|DMe6M4ZA4 zruq%ki27g)!9!f5h(lHKutvtES;x%zM@;lCQ+_kOd_Lj?eM!%Sr4ZM^0c((OkK~7| z_&gNiFV*c-*$#!j02L&?Va6{7em?MPzbo3M`Xyb)DUAm?zmy!z=_NA1(sNZZ4p#yX z_sF<(Q?N&6T$T4?%=rD2;0q*v zwJcX%(CzuPsE7EAd2f=7S>L8gdbL1i$oN9u3Os*9@>BZuh)hTEJe-K%O)|fdyE*?o zGF^=W+E>$B(IW8+WI5C?w0@ZJaILcQ@wxJ0(PEM-!AyBVJi9M$EB%&+=;6>ua2 zGkza%v{s$+L&1L!zEgM<3WMg98UNTM_+>Z)p?Pl3|0vi-;{PG=amfFIELV*?59C9- z*o>#g;U)n;BJ(T#Z2ys{x1zrac}OnwoMQ?~AFBS9&pVzpot}$KLFF?xQ>(C#Y(WJG zzQF;jkWk^PWSpM2OhJ{WAU$uD!ZotKH}M!_mjOB>;4@Gh^}9Jg$%n?wWcGl3PV=Pc z^gL$@lhMoPK2Mr1pW8fX`q-O-e@1I~zkK+Zh`U8Hy9bbT(`5E3J@=Txkc9I2$E;QI z-NI8DTZsumx?wWAQQ58Zd}#_wf2w|==S@?X%x;y>t>(}5r+kyqpNRj7(kJT=`P}MB z<^6f>!*r?Vs11>VD&IU`szGOpxkF8}K?UFomKWc&`nj?ekU_-@9Zg9_4^z4=K|-+3~BmTCREU#7>% z^e1Fom6vPE|FS9nyE3lUEAx7$$p%D>pKSdzx8qK)^iOY$0n0!Mvg&QH^g_JwBrV&LaTz|R4G zc?A5~z|(j#^O-jZAIl{8?ZD5Az~@=u$*!R1%u`VEQjnfkPGPciwJxfB73pFo(esKa z$miBGdY&-_dY&-_wcbwVPoVcjP?#*8o_kM07lwAxT{Rtl)DwArX|lHrYN*?Sm&vm(QJN zlcjgc{dEkU2TwsrDG2Gg{}d+MC$)*^+B15tJq7t(d-ju`igqYJ3bDBe>A#TeTgr1Y zb_pPjCo_KaBzTf(r2Hf&npb8%Uf>o*!25tB-D1vP0^Gbw@Tn2-rNEJHH1oL;xJdk4 zfnOLQ|Kq?#D)%T1qU&+%On0snI}obcC4yNUXZ!d`r6Ej8l{fusI5<7t0G z^{_{R<1YuE#+ey^2kdr$IFcF>!U z3;s{YPyIptdhrXQT>4JIiYV3R(H8}t)*%WGFgX|SwbJTY|!OPz>p2Grkdcvb)T9w``Xge*}2i%bM};pj?vepe&clqL79B)E8#_W5BJ% z=Ljtz2sD={JdgTNzuYVFS8^<4zn5{UD+M!M9oW!1Z{E*OX1B&ld)A!)jbDiR&>W-i zj*O!jJp7Fm5kdz4%h>+_uE%Fc=2L!!$3Q^#g(lArX)IGXU4RMse~5VyhqSY0e$r_a z)ci@1c;!d`_7D~*A>ycG2>601n&o)`q`ZS zX5eWonDO@lPqv>KkJki6#M5tVBJt^*B>yv$;PF}^&L>;SP1&c)Kk_AsSN58GuMKme zt`wABr1#uVknh_G?0;5qY%rgEZw`N-Bqe=a^3Rg_7Q7_*sC9ppjAJ(J<7E3%xLd}PM3fzZz!LG@%=cZXCzO26=`Tt?7^Xb@T*lRS*eK;aU8WD1&b!R# zv*!ML@?{~9`I7#1Q~YuiOuRplc+xQxPI@Jru9|T8WJr7*WkOhHir)_$@jEQ>v_Gft zu#BgQD0>U+X^gJw73I*{K!N1F5g#+2=2@itv@fHvx$0HHN6qiOGOqgPTI8Yn-z)K? zyC|6R?E{YTJuCC6cAE2L%Y1Lkd}|S>Fz+={j|)VUw}<4R#3aa<#xuo5t;AHvJ zWxi|^yh@g<|9NB%fc(dHp*HKa!CBQpova z3D1>qnS|^vk-kdCH%NGegu5klOL(1xH%NGggbfltB4MY5JrcIb`uVj zt?B=--fKeDr^1v3rX(;Wfhh@0NnlC>Qxcexz?1~0Brqj`DG5wTU`hg05}1;}lmwpvli-^s!M99;SNAU_NuEMaNnlC>Qxcexz?1~0Brqj`DG5wTU`hg05}1;} zlmw zQxcexz?1~0Brqj`DG5wTU`hg05}1;}lmwMFO+uF`wacWUk+?{;l&z1A%`ACHNea;B(~00%Wceh+XR`$sdJ3l;)p~FPZp) zuQtOUV=A)E6wuNz3ub*|$S{?mA>|0L86$%bkX)p{Lg7{lv`0>M^Rb~`U0O4xNq4J%dz1~y8Jswc4kXhLaFCqp0B`L;>pP`@t_{WxowghrG@*8^NJ`($0Rup z=ZR)?QTo0T4`9UQ!M88kU3RUC8xY>-zuulh&jEi z0QGX0=I!%@wQ4Mo&+XY)Sd0-@V`}72~iW3{R8No#Vqe@|2YEq0|(X9;j8$p}eAU zJ|bGeGL%D8Qp@2x&weHxPOFfAa|o4V>vg{jgp%OF)gxNB5I zDw;Zq`@E%v6*Lj^il8KjO9MxXVsj3bL&N2`Js5dj(J>QK3yX#BXqlJksWd4W^-q+HpaXKauCJ09wKUYIIFx@uoNL|ootwAjY|P5c*h=(ul!~6<%b#G- zAW=o4i<>BVxTKIT2V@CqLKT)^jV>+ol;j-ry330^Ifs@rCnf8wrJJ7IGk%8_-)Ko0 z(j1)@hpxv|PHQq^Tcct+EfqalmzLUV>5d+oHlj7ek7=%Y&8X7bv{o(I5ffv?+4X9z zHL6WZZ`Zr5F%@7?t+i`LT!*D5s@FK$JI&#+H|q6z?6}@+ZP1T8TC@(!u%%w>vb0(% zEd$a0*74{;i(hNA3`dPR$wOUJ2PgJutCbd(mwK|5aU6!J8tMhOS+^5^^)zRHrQs+ti)&@(L?w_97J-tC2u?)^=)JLNFtu0!$ zwZqaH)u^>-%~4IpxK)oC!S|Rd>u~gt-fJDxnzhF05xpj=dV1_wj6XKk)nIXS+v>D> z&E8_mY_}98k81r|ho(2#A#go$OpA?oj9cp=urAGEM;O<-^eST{y4F@}8MCyNk7@N$ z4O;7>>TAYzzcy+aoz@)HYOS6&5QQowHfs%fhvxQW_h~&~>+?q!H0xtgqgw`zRxQ5O zQf2LcbVkpqi|y5VrZw5>wc&ZFvfehWM{Cf04cdUEPph(yMGadTwFb1TDXLwowe?)! z>(!d9)j$rQO~aO6bU};OWEq@YZK*_GwOOiW`>m}}V~!4V(&)*(r;MQjuJjR0ucZp9 zLs~8BI;bVrSduzygIZjTrDD{Yl9Frh#qesHrZ-yp^`>dgCX9>v=z<|@lD%6SpE00S zYjHH}Qtfd~nj>};1FK7GpWUX#wrNS}>FKL_wRBhZoUC+vTAJOSoVF@0Ev?g0Gh*&HLPxkA{$!%J~09x6j^=h5kprw9Bo!&gXO{=lkX}&DR3$>B~*Kf?D z*L!0A;60*vL{s8I@th`lA0fV}*K{#@mse;!)fC@piqre0Li68lia%hAKW&Qtw<-RH zDgK@*{;?@;L*b$2J5BMmrZ~NCI5ht?rZ~O-GBmy16hCT;SDNCto8tGF;t!hQ&za)C zF~$F4ijSM(R`eWDf&QCeil1(Z&o#yA{hguoOHFZlO=oEOT2p+JDZb4V-(iYhE#jY| z8+oWO#j8#62TbuNO!010e83d{t10fld*9HWK>5o}ahEB+#}vQO6t6MGzhjC&Ws1}L zr9;afGR1XF(9ra=O!4KW_~oYfRi=1>DPC@h-(!m3Z;C%G;*g>UkD21_rZ_Fmq2uLk zQ~a-{_zY;J(ERgE@nlmx(-ilb;$Jq!?=!_8H^sY6@s~~U-n&SU3#iv8xhPG$6 zDIRNzlVC9fxLyV;hGhO8V|q>-y+6-}&kTG>nbZ6E=v{#H&Qu3J^zKf2pC-Nki{1@J z?{la3qsHPx?`Ng=Ez>)i=ioznp5Aju?^JiJc1&0hGz*7mA0&EIi8He4(g_4!+O~p{~79 ze5g||fS2yPKwLQTLZiG!a`!u#+in7$JM1Q4!(4STHPlHL=AJYATBV;(I_Q*V4$cj7 z$q7JPwmDXBal`+$nY(ZCFq?B;wHMK%xTge zCD1|U!Vx8~5j;>LLAahmzN=Zs9i!wGfwM^@Pwr(>>D-wlBH}A|C~>zEpC%?3QjRa8 z@5qGaz8e#cJ55YD>1YYZhWUpgBt>A(Nt8z@Kw@$QneoyGWJa6oB)Lehk8td6U{kwaA`|URm94h(FvBF2L*!%kKtK;HlociLup8vV% ziLYGs)3>XZ9Juq6lN%R(d1>pBw(mZ7YggvZXO0!0(|qvtE-KjYQEuPv&5d7A`d0VWJ2sv5m7;_%&pCP9C9a)czM%03o|e9)X*Iul z_@bXozxCepQ_AjtI=U0)(3ySDg8B9=EyG&{P?CnJpB!0anCoqm+fmfd`hA#D}D3u z<}-iz)jK|W?e6D(c=K4&+rRkkOV|G6V%w><_byv=dfLTbeSLlI+fh3oe`@%F!$qz7 zZ70`nc=Y3)Km6hMum8!}4dscKK5)ve#b+FDSlKe~!Hu&Q<~`H;?K_|U_5H(#-YmM- zx9jq0cRz4&{K@=;*4uib<`)hnyz}&%-@38!l5dV(@xcL~Z|VCZf4;BbdGE?y^WRi7b7$r*dvGlM+;10s)ZcT?g7dyKa@TzuGd)lJ z&#LF&+%V(tmp-{`$Fl&UmZTMVE%;k$8{pHTH$1Z&0v)^1?{`BnqPdxkD@#?p7s+OzxbkF1Dk{>#a!qkm|8wJz)2-(S%%{+H*QSAXH+c+Vdm zxH98G`wK7b`NFl|Uva~2zrX7F=X2lQ{?Ll05ATh!&A-fE_vF{lul&kSc5BU>zW(To zD>oN!IO~Fx!S6nD-RQ4v3CVw7_-6c<7XQ5UiNpi_c3AAIoTtv4`ui^Uj+}zdNt&qqoz#SJ-2pyJKGa4fi?Y zc20jZ>6%^F=Y9L3N0JAZ_Ln_$Z2CpX550X~*|G26dE2$O-&R|BGrQ%f4<6j|WZiu~ zUh|br&6i}a@vPkXzSsBhw*AjP`}Bt+(M5eXJ#qc?Utcvg_VRw$UPr=_%)eFMef6t{ z7q;ws<&wIEbDF=kXm8A-C0pP9M*lDBe-Qn_^~+wp|NWJ%kGyuxyk~b^dHcx^?@6e- z`=OtGbjhc8|Jr{3C+qIo_s+Xpo_h24J+)6)K2}(j{Ql-2RNX!L{;mz{j@B;8|M=7o zzq-4#>n|z4&b*=c%pYv~yK{H(vWx!mP`SJ3m)9*A_t$ROdZ+b|OEN$BM*qnRA6*#r z#r91fIo`bEs&7AdMQ-)p)OS8UYAm_ic3S^Z%ly+z*Q~w&?&&Z8(EiK!pMR}?!~VOU zxMj^5|9I}4hNohaAOCj8sfpFco`|3S^b3tE?>p(F$N%x$9k;(9mH6UMs@on|_{O)Y z+p_%4--th>{f^Q2LwA1r=*NHGf7{QapX>48e*Nn&Z@$C(>9RwMSFSFean^N<-aLHZ zMb`UV{Lc;-UXfEgJ?4x@?`tZqS@7}qf0}>lui5kC?bB{}(fZWD6My{EjJ7YldjH>R zuDh>vi)HVb@9yhZJco__YWl6sad8*ae!9u>-|^0wTNX9^c&&Tij-#Vd7p5(`{>m4I zov*z*KlOu6U;L}D`M=(J`?J%ZEpB|~g3C|+ZR7Tjo~i%&wR;Z#AUXciH&$v-=9j+M z?s)X#%ilZi&?oy+U%d5ucikM7wepd*uiUcy&E5-tVZH46w>Hguf7rG2m5*Lp@w-ct zbB{$`^U(0c=iYPli`S+-|L)f}&-&Fp)*sJ)>U%ATKl`t$vZww}X?FV01OotYT(X3g zG4(u;YedbJmQ}`hT;*&CNs1n`B+N>&Y9vSI*oH@Fj;!T)wh~&IJ1e1>YsFKWTx|9)s6dY+PUMIG&`m{vbU3(58#iM zQ+7UQd0=MJ4Q&2)_!DU1Eck?;{}4|-ZAf<77O~M*JMwP5;sb7ZQw9a$&AN`q^D-#i z@%f#@3WqVDUW9QyFS5NL)KE^U<$-GC+2FC96O*VMFC3&iY#=X3c(vZu&dC%ZqJc_4 z6yoh-jZG-CptYw7f=8RiRfjuxY}C8)f61R$N>du zk@*2X$m?LB?*nJ()5e|Ru-;2$`(XOn5{Eg|1t`L>0Mz(%)9kH>Fdz9VNAdWKrtMT6S4?mNE&(;Bhbb%b2z zTv;Y@AOPJ@`qH%FiX9d@7!F{PWI_VrxwC#+m#eu<#a5xkcqwp~A%5$qrK2A}5$KWa z3eWAZfh6;%b0>=M)2piEl%_7s!rA1;LwDd=L-@2C--}i9+0cfIa$(wtp#RFz_wE8! z0(@}`7G(<$y?`1_DJg!?TJpC2ovp#Qoh(?(cl6Pk+jMzT0N~tj!NWo z*oJt|y7}vl;(7yTZ#})7ph5ql!1#e@KU-3pGB*rfb>3^W#5~x9GwQK^eO#3sggehT z)aLXxUjmfRF!z5$rF3zK4aCwO-1 z9%C9lIqSdY>$#B8yW!}?&-&-hRzy~2uOAWgp%a{v2rL5Lw#L2~dNUDCKZ z;ICbGitDOf?3FF0o99xxf*-Py<_f);Z4jNR-;wbDCc48|G&4M! zDcZd%XaO2=`2X9tKkIXiYuAQwUPn!_GETW;3~#{&666^}weq=ggbRCnGuudFs2KRI eJ|c{=6|%u79?_wv(sObH-C35Ta_|$67ykmr&=^Vp diff --git a/node/node.node b/node/node.node deleted file mode 100755 index f0dd90dea24502828fdafa048afbc27c2b25c9c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1368704 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


;u#~5AV|RRuy{OR#veHMs{SJ)Q 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

-Rl;FZ~$3vV43!=6m?o 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

g_c`)o3e#mWvA3#0$QCHaCD0E4Umub3-;ATlkOE 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 10" + } +} \ No newline at end of file diff --git a/node/npm/android-arm64/README.md b/node/npm/android-arm64/README.md new file mode 100644 index 00000000..3692306d --- /dev/null +++ b/node/npm/android-arm64/README.md @@ -0,0 +1,3 @@ +# `@odict/node-android-arm64` + +This is the **aarch64-linux-android** binary for `@odict/node` diff --git a/node/npm/android-arm64/package.json b/node/npm/android-arm64/package.json new file mode 100644 index 00000000..3e3a345c --- /dev/null +++ b/node/npm/android-arm64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@odict/node-android-arm64", + "version": "0.0.0", + "os": [ + "android" + ], + "cpu": [ + "arm64" + ], + "main": "node.android-arm64.node", + "files": [ + "node.android-arm64.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node/npm/darwin-arm64/README.md b/node/npm/darwin-arm64/README.md new file mode 100644 index 00000000..0e6cb704 --- /dev/null +++ b/node/npm/darwin-arm64/README.md @@ -0,0 +1,3 @@ +# `@odict/node-darwin-arm64` + +This is the **aarch64-apple-darwin** binary for `@odict/node` diff --git a/node/npm/darwin-arm64/package.json b/node/npm/darwin-arm64/package.json new file mode 100644 index 00000000..fa0e6546 --- /dev/null +++ b/node/npm/darwin-arm64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@odict/node-darwin-arm64", + "version": "0.0.0", + "os": [ + "darwin" + ], + "cpu": [ + "arm64" + ], + "main": "node.darwin-arm64.node", + "files": [ + "node.darwin-arm64.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node/npm/darwin-universal/README.md b/node/npm/darwin-universal/README.md new file mode 100644 index 00000000..896a4a25 --- /dev/null +++ b/node/npm/darwin-universal/README.md @@ -0,0 +1,3 @@ +# `@odict/node-darwin-universal` + +This is the **universal-apple-darwin** binary for `@odict/node` diff --git a/node/npm/darwin-universal/package.json b/node/npm/darwin-universal/package.json new file mode 100644 index 00000000..a30ac985 --- /dev/null +++ b/node/npm/darwin-universal/package.json @@ -0,0 +1,15 @@ +{ + "name": "@odict/node-darwin-universal", + "version": "0.0.0", + "os": [ + "darwin" + ], + "main": "node.darwin-universal.node", + "files": [ + "node.darwin-universal.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node/npm/darwin-x64/README.md b/node/npm/darwin-x64/README.md new file mode 100644 index 00000000..b42384f9 --- /dev/null +++ b/node/npm/darwin-x64/README.md @@ -0,0 +1,3 @@ +# `@odict/node-darwin-x64` + +This is the **x86_64-apple-darwin** binary for `@odict/node` diff --git a/node/npm/darwin-x64/package.json b/node/npm/darwin-x64/package.json new file mode 100644 index 00000000..b3a06a13 --- /dev/null +++ b/node/npm/darwin-x64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@odict/node-darwin-x64", + "version": "0.0.0", + "os": [ + "darwin" + ], + "cpu": [ + "x64" + ], + "main": "node.darwin-x64.node", + "files": [ + "node.darwin-x64.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node/npm/freebsd-x64/README.md b/node/npm/freebsd-x64/README.md new file mode 100644 index 00000000..c9fd2844 --- /dev/null +++ b/node/npm/freebsd-x64/README.md @@ -0,0 +1,3 @@ +# `@odict/node-freebsd-x64` + +This is the **x86_64-unknown-freebsd** binary for `@odict/node` diff --git a/node/npm/freebsd-x64/package.json b/node/npm/freebsd-x64/package.json new file mode 100644 index 00000000..4620e699 --- /dev/null +++ b/node/npm/freebsd-x64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@odict/node-freebsd-x64", + "version": "0.0.0", + "os": [ + "freebsd" + ], + "cpu": [ + "x64" + ], + "main": "node.freebsd-x64.node", + "files": [ + "node.freebsd-x64.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node/npm/linux-arm-gnueabihf/README.md b/node/npm/linux-arm-gnueabihf/README.md new file mode 100644 index 00000000..1be3d926 --- /dev/null +++ b/node/npm/linux-arm-gnueabihf/README.md @@ -0,0 +1,3 @@ +# `@odict/node-linux-arm-gnueabihf` + +This is the **armv7-unknown-linux-gnueabihf** binary for `@odict/node` diff --git a/node/npm/linux-arm-gnueabihf/package.json b/node/npm/linux-arm-gnueabihf/package.json new file mode 100644 index 00000000..b0b6a211 --- /dev/null +++ b/node/npm/linux-arm-gnueabihf/package.json @@ -0,0 +1,18 @@ +{ + "name": "@odict/node-linux-arm-gnueabihf", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "arm" + ], + "main": "node.linux-arm-gnueabihf.node", + "files": [ + "node.linux-arm-gnueabihf.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node/npm/linux-arm64-gnu/README.md b/node/npm/linux-arm64-gnu/README.md new file mode 100644 index 00000000..37961e14 --- /dev/null +++ b/node/npm/linux-arm64-gnu/README.md @@ -0,0 +1,3 @@ +# `@odict/node-linux-arm64-gnu` + +This is the **aarch64-unknown-linux-gnu** binary for `@odict/node` diff --git a/node/npm/linux-arm64-gnu/package.json b/node/npm/linux-arm64-gnu/package.json new file mode 100644 index 00000000..b763b980 --- /dev/null +++ b/node/npm/linux-arm64-gnu/package.json @@ -0,0 +1,21 @@ +{ + "name": "@odict/node-linux-arm64-gnu", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "arm64" + ], + "main": "node.linux-arm64-gnu.node", + "files": [ + "node.linux-arm64-gnu.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "libc": [ + "glibc" + ] +} \ No newline at end of file diff --git a/node/npm/linux-arm64-musl/README.md b/node/npm/linux-arm64-musl/README.md new file mode 100644 index 00000000..0d4d65f4 --- /dev/null +++ b/node/npm/linux-arm64-musl/README.md @@ -0,0 +1,3 @@ +# `@odict/node-linux-arm64-musl` + +This is the **aarch64-unknown-linux-musl** binary for `@odict/node` diff --git a/node/npm/linux-arm64-musl/package.json b/node/npm/linux-arm64-musl/package.json new file mode 100644 index 00000000..93613f4b --- /dev/null +++ b/node/npm/linux-arm64-musl/package.json @@ -0,0 +1,21 @@ +{ + "name": "@odict/node-linux-arm64-musl", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "arm64" + ], + "main": "node.linux-arm64-musl.node", + "files": [ + "node.linux-arm64-musl.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "libc": [ + "musl" + ] +} \ No newline at end of file diff --git a/node/npm/linux-riscv64-gnu/README.md b/node/npm/linux-riscv64-gnu/README.md new file mode 100644 index 00000000..b60db058 --- /dev/null +++ b/node/npm/linux-riscv64-gnu/README.md @@ -0,0 +1,3 @@ +# `@odict/node-linux-riscv64-gnu` + +This is the **riscv64gc-unknown-linux-gnu** binary for `@odict/node` diff --git a/node/npm/linux-riscv64-gnu/package.json b/node/npm/linux-riscv64-gnu/package.json new file mode 100644 index 00000000..e23a2657 --- /dev/null +++ b/node/npm/linux-riscv64-gnu/package.json @@ -0,0 +1,21 @@ +{ + "name": "@odict/node-linux-riscv64-gnu", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "riscv64" + ], + "main": "node.linux-riscv64-gnu.node", + "files": [ + "node.linux-riscv64-gnu.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "libc": [ + "glibc" + ] +} \ No newline at end of file diff --git a/node/npm/linux-x64-gnu/README.md b/node/npm/linux-x64-gnu/README.md new file mode 100644 index 00000000..bb8b04c6 --- /dev/null +++ b/node/npm/linux-x64-gnu/README.md @@ -0,0 +1,3 @@ +# `@odict/node-linux-x64-gnu` + +This is the **x86_64-unknown-linux-gnu** binary for `@odict/node` diff --git a/node/npm/linux-x64-gnu/package.json b/node/npm/linux-x64-gnu/package.json new file mode 100644 index 00000000..6b0e776c --- /dev/null +++ b/node/npm/linux-x64-gnu/package.json @@ -0,0 +1,21 @@ +{ + "name": "@odict/node-linux-x64-gnu", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "main": "node.linux-x64-gnu.node", + "files": [ + "node.linux-x64-gnu.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "libc": [ + "glibc" + ] +} \ No newline at end of file diff --git a/node/npm/linux-x64-musl/README.md b/node/npm/linux-x64-musl/README.md new file mode 100644 index 00000000..dbb2f88a --- /dev/null +++ b/node/npm/linux-x64-musl/README.md @@ -0,0 +1,3 @@ +# `@odict/node-linux-x64-musl` + +This is the **x86_64-unknown-linux-musl** binary for `@odict/node` diff --git a/node/npm/linux-x64-musl/package.json b/node/npm/linux-x64-musl/package.json new file mode 100644 index 00000000..38eb43e5 --- /dev/null +++ b/node/npm/linux-x64-musl/package.json @@ -0,0 +1,21 @@ +{ + "name": "@odict/node-linux-x64-musl", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "main": "node.linux-x64-musl.node", + "files": [ + "node.linux-x64-musl.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "libc": [ + "musl" + ] +} \ No newline at end of file diff --git a/node/npm/win32-arm64-msvc/README.md b/node/npm/win32-arm64-msvc/README.md new file mode 100644 index 00000000..934b6cda --- /dev/null +++ b/node/npm/win32-arm64-msvc/README.md @@ -0,0 +1,3 @@ +# `@odict/node-win32-arm64-msvc` + +This is the **aarch64-pc-windows-msvc** binary for `@odict/node` diff --git a/node/npm/win32-arm64-msvc/package.json b/node/npm/win32-arm64-msvc/package.json new file mode 100644 index 00000000..0419d9b2 --- /dev/null +++ b/node/npm/win32-arm64-msvc/package.json @@ -0,0 +1,18 @@ +{ + "name": "@odict/node-win32-arm64-msvc", + "version": "0.0.0", + "os": [ + "win32" + ], + "cpu": [ + "arm64" + ], + "main": "node.win32-arm64-msvc.node", + "files": [ + "node.win32-arm64-msvc.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node/npm/win32-ia32-msvc/README.md b/node/npm/win32-ia32-msvc/README.md new file mode 100644 index 00000000..1829528b --- /dev/null +++ b/node/npm/win32-ia32-msvc/README.md @@ -0,0 +1,3 @@ +# `@odict/node-win32-ia32-msvc` + +This is the **i686-pc-windows-msvc** binary for `@odict/node` diff --git a/node/npm/win32-ia32-msvc/package.json b/node/npm/win32-ia32-msvc/package.json new file mode 100644 index 00000000..0234e05a --- /dev/null +++ b/node/npm/win32-ia32-msvc/package.json @@ -0,0 +1,18 @@ +{ + "name": "@odict/node-win32-ia32-msvc", + "version": "0.0.0", + "os": [ + "win32" + ], + "cpu": [ + "ia32" + ], + "main": "node.win32-ia32-msvc.node", + "files": [ + "node.win32-ia32-msvc.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node/npm/win32-x64-msvc/README.md b/node/npm/win32-x64-msvc/README.md new file mode 100644 index 00000000..ea6f92aa --- /dev/null +++ b/node/npm/win32-x64-msvc/README.md @@ -0,0 +1,3 @@ +# `@odict/node-win32-x64-msvc` + +This is the **x86_64-pc-windows-msvc** binary for `@odict/node` diff --git a/node/npm/win32-x64-msvc/package.json b/node/npm/win32-x64-msvc/package.json new file mode 100644 index 00000000..cd6c1f78 --- /dev/null +++ b/node/npm/win32-x64-msvc/package.json @@ -0,0 +1,18 @@ +{ + "name": "@odict/node-win32-x64-msvc", + "version": "0.0.0", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "main": "node.win32-x64-msvc.node", + "files": [ + "node.win32-x64-msvc.node" + ], + "license": "MIT", + "engines": { + "node": ">= 10" + } +} \ No newline at end of file diff --git a/node/package.json b/node/package.json new file mode 100644 index 00000000..aaab72eb --- /dev/null +++ b/node/package.json @@ -0,0 +1,63 @@ +{ + "name": "@odict/node", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "napi": { + "name": "node", + "triples": { + "additional": [ + "aarch64-apple-darwin", + "aarch64-linux-android", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "aarch64-pc-windows-msvc", + "armv7-unknown-linux-gnueabihf", + "x86_64-unknown-linux-musl", + "x86_64-unknown-freebsd", + "i686-pc-windows-msvc", + "armv7-linux-androideabi", + "universal-apple-darwin", + "riscv64gc-unknown-linux-gnu" + ] + } + }, + "license": "MIT", + "devDependencies": { + "@jest/globals": "^29.7.0", + "@napi-rs/cli": "^2.18.0", + "@swc/jest": "^0.2.36", + "@types/node": "^20.12.7", + "jest": "^29.7.0" + }, + "engines": { + "node": ">= 10" + }, + "scripts": { + "build": "napi build --release --platform ./dist", + "build:debug": "napi build --platform ./dist", + "test": "jest", + "universal": "napi universal", + "artifacts": "napi artifacts", + "version": "napi version", + "prepublishOnly": "napi prepublish -t npm" + }, + "optionalDependencies": { + "@odict/node-android-arm-eabi": "0.0.0", + "@odict/node-android-arm64": "0.0.0", + "@odict/node-darwin-arm64": "0.0.0", + "@odict/node-darwin-universal": "0.0.0", + "@odict/node-darwin-x64": "0.0.0", + "@odict/node-freebsd-x64": "0.0.0", + "@odict/node-linux-arm-gnueabihf": "0.0.0", + "@odict/node-linux-arm64-gnu": "0.0.0", + "@odict/node-linux-arm64-musl": "0.0.0", + "@odict/node-linux-riscv64-gnu": "0.0.0", + "@odict/node-linux-x64-gnu": "0.0.0", + "@odict/node-linux-x64-musl": "0.0.0", + "@odict/node-win32-arm64-msvc": "0.0.0", + "@odict/node-win32-ia32-msvc": "0.0.0", + "@odict/node-win32-x64-msvc": "0.0.0" + }, + "packageManager": "pnpm@9.0.5+sha256.61bd66913b52012107ec25a6ee4d6a161021ab99e04f6acee3aa50d0e34b4af9" +} diff --git a/node/pnpm-lock.yaml b/node/pnpm-lock.yaml new file mode 100644 index 00000000..fdf04b7a --- /dev/null +++ b/node/pnpm-lock.yaml @@ -0,0 +1,2702 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@jest/globals': + specifier: ^29.7.0 + version: 29.7.0 + '@napi-rs/cli': + specifier: ^2.18.0 + version: 2.18.2 + '@swc/jest': + specifier: ^0.2.36 + version: 0.2.36(@swc/core@1.4.16) + '@types/node': + specifier: ^20.12.7 + version: 20.12.7 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.12.7) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.24.2': + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.24.4': + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.24.4': + resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.24.4': + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.23.6': + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-environment-visitor@7.22.20': + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-function-name@7.23.0': + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.3': + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.23.3': + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.24.0': + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-simple-access@7.22.5': + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-split-export-declaration@7.22.6': + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.22.20': + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.23.5': + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.24.4': + resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.2': + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.4': + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.24.1': + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.24.1': + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.24.0': + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.24.1': + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.24.0': + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/create-cache-key-function@29.7.0': + resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@napi-rs/cli@2.18.2': + resolution: {integrity: sha512-IXQji3IF5eStxTHe/PxDSRjPrFymYAQ5FbIvqurxzxyWR8nJql9mtvmCP8y2g8tSoW5xhaToLQW0+mO3lUZq4w==} + engines: {node: '>= 10'} + hasBin: true + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@swc/core-darwin-arm64@1.4.16': + resolution: {integrity: sha512-UOCcH1GvjRnnM/LWT6VCGpIk0OhHRq6v1U6QXuPt5wVsgXnXQwnf5k3sG5Cm56hQHDvhRPY6HCsHi/p0oek8oQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.4.16': + resolution: {integrity: sha512-t3bgqFoYLWvyVtVL6KkFNCINEoOrIlyggT/kJRgi1y0aXSr0oVgcrQ4ezJpdeahZZ4N+Q6vT3ffM30yIunELNA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.4.16': + resolution: {integrity: sha512-DvHuwvEF86YvSd0lwnzVcjOTZ0jcxewIbsN0vc/0fqm9qBdMMjr9ox6VCam1n3yYeRtj4VFgrjeNFksqbUejdQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.4.16': + resolution: {integrity: sha512-9Uu5YlPbyCvbidjKtYEsPpyZlu16roOZ5c2tP1vHfnU9bgf5Tz5q5VovSduNxPHx+ed2iC1b1URODHvDzbbDuQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.4.16': + resolution: {integrity: sha512-/YZq/qB1CHpeoL0eMzyqK5/tYZn/rzKoCYDviFU4uduSUIJsDJQuQA/skdqUzqbheOXKAd4mnJ1hT04RbJ8FPQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.4.16': + resolution: {integrity: sha512-UUjaW5VTngZYDcA8yQlrFmqs1tLi1TxbKlnaJwoNhel9zRQ0yG1YEVGrzTvv4YApSuIiDK18t+Ip927bwucuVQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.4.16': + resolution: {integrity: sha512-aFhxPifevDTwEDKPi4eRYWzC0p/WYJeiFkkpNU5Uc7a7M5iMWPAbPFUbHesdlb9Jfqs5c07oyz86u+/HySBNPQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.4.16': + resolution: {integrity: sha512-bTD43MbhIHL2s5QgCwyleaGwl96Gk/scF2TaVKdUe4QlJCDV/YK9h5oIBAp63ckHtE8GHlH4c8dZNBiAXn4Org==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.4.16': + resolution: {integrity: sha512-/lmZeAN/qV5XbK2SEvi8e2RkIg8FQNYiSA8y2/Zb4gTUMKVO5JMLH0BSWMiIKMstKDPDSxMWgwJaQHF8UMyPmQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.4.16': + resolution: {integrity: sha512-BPAfFfODWXtUu6SwaTTftDHvcbDyWBSI/oanUeRbQR5vVWkXoQ3cxLTsDluc3H74IqXS5z1Uyoe0vNo2hB1opA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.4.16': + resolution: {integrity: sha512-Xaf+UBvW6JNuV131uvSNyMXHn+bh6LyKN4tbv7tOUFQpXyz/t9YWRE04emtlUW9Y0qrm/GKFCbY8n3z6BpZbTA==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/jest@0.2.36': + resolution: {integrity: sha512-8X80dp81ugxs4a11z1ka43FPhP+/e+mJNXJSxiNYk8gIX/jPBtY4gQTrKu/KIoco8bzKuPI5lUxjfLiGsfvnlw==} + engines: {npm: '>= 7.0.0'} + peerDependencies: + '@swc/core': '*' + + '@swc/types@0.1.6': + resolution: {integrity: sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.5': + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/node@20.12.7': + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.32': + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-preset-current-node-syntax@1.0.1: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001612: + resolution: {integrity: sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + electron-to-chromium@1.4.745: + resolution: {integrity: sha512-tRbzkaRI5gbUn5DEvF0dV4TQbMZ5CLkWeTAXmpC9IrYT+GE+x76i9p+o3RJ5l9XmdQlI1pPhVtE9uNcJJ0G0EA==} + + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + 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] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + 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'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + 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-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + 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.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + + 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'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + 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-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + update-browserslist-db@1.0.13: + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + 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'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@babel/code-frame@7.24.2': + dependencies: + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 + + '@babel/compat-data@7.24.4': {} + + '@babel/core@7.24.4': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.24.4': + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-compilation-targets@7.23.6': + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-environment-visitor@7.22.20': {} + + '@babel/helper-function-name@7.23.0': + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + + '@babel/helper-hoist-variables@7.22.5': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-module-imports@7.24.3': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + '@babel/helper-plugin-utils@7.24.0': {} + + '@babel/helper-simple-access@7.22.5': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-split-export-declaration@7.22.6': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-string-parser@7.24.1': {} + + '@babel/helper-validator-identifier@7.22.20': {} + + '@babel/helper-validator-option@7.23.5': {} + + '@babel/helpers@7.24.4': + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color + + '@babel/highlight@7.24.2': + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + + '@babel/parser@7.24.4': + dependencies: + '@babel/types': 7.24.0 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/template@7.24.0': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + + '@babel/traverse@7.24.1': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.24.0': + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + '@bcoe/v8-coverage@0.2.3': {} + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + + '@jest/core@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.12.7) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/create-cache-key-function@29.7.0': + dependencies: + '@jest/types': 29.6.3 + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + jest-mock: 29.7.0 + + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/expect@29.7.0': + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.12.7 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/globals@29.7.0': + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@29.7.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 20.12.7 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.2.0 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/source-map@29.6.3': + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + + '@jest/test-sequencer@29.7.0': + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.24.4 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.5 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.12.7 + '@types/yargs': 17.0.32 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@napi-rs/cli@2.18.2': {} + + '@sinclair/typebox@0.27.8': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@swc/core-darwin-arm64@1.4.16': + optional: true + + '@swc/core-darwin-x64@1.4.16': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.4.16': + optional: true + + '@swc/core-linux-arm64-gnu@1.4.16': + optional: true + + '@swc/core-linux-arm64-musl@1.4.16': + optional: true + + '@swc/core-linux-x64-gnu@1.4.16': + optional: true + + '@swc/core-linux-x64-musl@1.4.16': + optional: true + + '@swc/core-win32-arm64-msvc@1.4.16': + optional: true + + '@swc/core-win32-ia32-msvc@1.4.16': + optional: true + + '@swc/core-win32-x64-msvc@1.4.16': + optional: true + + '@swc/core@1.4.16': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.6 + optionalDependencies: + '@swc/core-darwin-arm64': 1.4.16 + '@swc/core-darwin-x64': 1.4.16 + '@swc/core-linux-arm-gnueabihf': 1.4.16 + '@swc/core-linux-arm64-gnu': 1.4.16 + '@swc/core-linux-arm64-musl': 1.4.16 + '@swc/core-linux-x64-gnu': 1.4.16 + '@swc/core-linux-x64-musl': 1.4.16 + '@swc/core-win32-arm64-msvc': 1.4.16 + '@swc/core-win32-ia32-msvc': 1.4.16 + '@swc/core-win32-x64-msvc': 1.4.16 + + '@swc/counter@0.1.3': {} + + '@swc/jest@0.2.36(@swc/core@1.4.16)': + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@swc/core': 1.4.16 + '@swc/counter': 0.1.3 + jsonc-parser: 3.2.1 + + '@swc/types@0.1.6': + dependencies: + '@swc/counter': 0.1.3 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.5 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.24.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + + '@types/babel__traverse@7.20.5': + dependencies: + '@babel/types': 7.24.0 + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 20.12.7 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/node@20.12.7': + dependencies: + undici-types: 5.26.5 + + '@types/stack-utils@2.0.3': {} + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.32': + dependencies: + '@types/yargs-parser': 21.0.3 + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + babel-jest@29.7.0(@babel/core@7.24.4): + dependencies: + '@babel/core': 7.24.4 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.24.4) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.5 + + babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.4): + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + + babel-preset-jest@29.6.3(@babel/core@7.24.4): + dependencies: + '@babel/core': 7.24.4 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) + + balanced-match@1.0.2: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + browserslist@4.23.0: + dependencies: + caniuse-lite: 1.0.30001612 + electron-to-chromium: 1.4.745 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-from@1.1.2: {} + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001612: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + char-regex@1.0.2: {} + + ci-info@3.9.0: {} + + cjs-module-lexer@1.2.3: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + co@4.6.0: {} + + collect-v8-coverage@1.0.2: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + concat-map@0.0.1: {} + + convert-source-map@2.0.0: {} + + create-jest@29.7.0(@types/node@20.12.7): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.12.7) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + dedent@1.5.3: {} + + deepmerge@4.3.1: {} + + detect-newline@3.1.0: {} + + diff-sequences@29.6.3: {} + + electron-to-chromium@1.4.745: {} + + emittery@0.13.1: {} + + emoji-regex@8.0.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + escalade@3.1.2: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + + esprima@4.0.1: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exit@0.1.2: {} + + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + + fast-json-stable-stringify@2.1.0: {} + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-package-type@0.1.0: {} + + get-stream@6.0.1: {} + + 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 + + globals@11.12.0: {} + + graceful-fs@4.2.11: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + html-escaper@2.0.2: {} + + human-signals@2.1.0: {} + + import-local@3.1.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-arrayish@0.2.1: {} + + is-core-module@2.13.1: + dependencies: + hasown: 2.0.2 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-fn@2.1.0: {} + + is-number@7.0.0: {} + + is-stream@2.0.1: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-instrument@6.0.2: + dependencies: + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jest-changed-files@29.7.0: + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + + jest-circus@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.3 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@29.7.0(@types/node@20.12.7): + dependencies: + '@jest/core': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.12.7) + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 29.7.0(@types/node@20.12.7) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-config@29.7.0(@types/node@20.12.7): + dependencies: + '@babel/core': 7.24.4 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.24.4) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.12.7 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-docblock@29.7.0: + dependencies: + detect-newline: 3.1.0 + + jest-each@29.7.0: + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.12.7 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-leak-detector@29.7.0: + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.24.2 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + jest-util: 29.7.0 + + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + optionalDependencies: + jest-resolve: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-resolve-dependencies@29.7.0: + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + jest-resolve@29.7.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.8 + resolve.exports: 2.0.2 + slash: 3.0.0 + + jest-runner@29.7.0: + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + chalk: 4.1.2 + cjs-module-lexer: 1.2.3 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-snapshot@29.7.0: + dependencies: + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/types': 7.24.0 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-watcher@29.7.0: + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.12.7 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + + jest-worker@29.7.0: + dependencies: + '@types/node': 20.12.7 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@29.7.0(@types/node@20.12.7): + dependencies: + '@jest/core': 29.7.0 + '@jest/types': 29.6.3 + import-local: 3.1.0 + jest-cli: 29.7.0(@types/node@20.12.7) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + jsesc@2.5.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json5@2.2.3: {} + + jsonc-parser@3.2.1: {} + + kleur@3.0.3: {} + + leven@3.1.0: {} + + lines-and-columns@1.2.4: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + make-dir@4.0.0: + dependencies: + semver: 7.6.0 + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + merge-stream@2.0.0: {} + + micromatch@4.0.5: + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + mimic-fn@2.1.0: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + ms@2.1.2: {} + + natural-compare@1.4.0: {} + + node-int64@0.4.0: {} + + node-releases@2.0.14: {} + + normalize-path@3.0.0: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-try@2.2.0: {} + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.24.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + picocolors@1.0.0: {} + + picomatch@2.3.1: {} + + pirates@4.0.6: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + pure-rand@6.1.0: {} + + react-is@18.2.0: {} + + require-directory@2.1.1: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@5.0.0: {} + + resolve.exports@2.0.2: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + semver@6.3.1: {} + + semver@7.6.0: + dependencies: + lru-cache: 6.0.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@3.0.7: {} + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + source-map-support@0.5.13: + 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-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@4.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-json-comments@3.1.1: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + tmpl@1.0.5: {} + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + type-detect@4.0.8: {} + + type-fest@0.21.3: {} + + undici-types@5.26.5: {} + + update-browserslist-db@1.0.13(browserslist@4.23.0): + dependencies: + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.0 + + v8-to-istanbul@9.2.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + 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 + + yocto-queue@0.1.0: {} diff --git a/node/rustfmt.toml b/node/rustfmt.toml new file mode 100644 index 00000000..cab5731e --- /dev/null +++ b/node/rustfmt.toml @@ -0,0 +1,2 @@ +tab_spaces = 2 +edition = "2021" diff --git a/node/src/dictionary.rs b/node/src/dictionary.rs new file mode 100644 index 00000000..c9db2d93 --- /dev/null +++ b/node/src/dictionary.rs @@ -0,0 +1,260 @@ +use std::{borrow::BorrowMut, path::PathBuf, vec}; + +use napi::bindgen_prelude::*; + +use merge::Merge; + +use crate::{ + types::{ + self, DictionaryOptions, Entry, IndexOptions, LookupOptions, LookupQuery, SearchOptions, + SplitOptions, + }, + utils::{cast_error, resolve_options, to_lookup_query}, +}; + +#[napi] +pub struct Dictionary { + options: Option, + file: odict::DictionaryFile, +} + +#[napi] +impl Dictionary { + #[napi(constructor)] + pub fn new(path_or_alias: String, options: Option) -> Result { + let reader = odict::DictionaryReader::default(); + + let file = reader + .read_from_path_or_alias(&path_or_alias) + .map_err(cast_error)?; + + let dict = Dictionary { options, file }; + + Ok(dict) + } + + #[napi(factory)] + pub fn write( + xml_str: String, + out_path: String, + options: Option, + ) -> Result { + let dict = odict::Dictionary::from(&xml_str).map_err(cast_error)?; + let reader = odict::DictionaryReader::default(); + let writer = odict::DictionaryWriter::default(); + + writer.write_to_path(&dict, &out_path).map_err(cast_error)?; + + let file = reader.read_from_path(&out_path).map_err(cast_error)?; + + let dict = Dictionary { options, file }; + + Ok(dict) + } + + #[napi(factory)] + pub fn compile( + xml_path: String, + out_path: Option, + options: Option, + ) -> Result { + let in_file = PathBuf::from(xml_path.to_owned()); + + let out_file = out_path.unwrap_or_else(|| { + odict::fs::infer_path(&xml_path) + .to_string_lossy() + .to_string() + }); + + let reader = odict::DictionaryReader::default(); + let writer = odict::DictionaryWriter::default(); + + writer + .compile_xml(&in_file, &out_file) + .map_err(cast_error)?; + + let file = reader.read_from_path(&out_file).map_err(cast_error)?; + + let dict = Dictionary { options, file }; + + Ok(dict) + } + + pub fn options(&self) -> DictionaryOptions { + resolve_options(&self.options) + } + + #[napi(getter)] + pub fn path(&self) -> napi::Result { + let path = self + .file + .path + .as_ref() + .map(|p| p.to_string_lossy().to_string()) + .unwrap(); + + Ok(path) + } + + pub fn _lookup( + &self, + env: napi::Env, + queries: &Vec, + options: Option, + ) -> Result>> { + let dict = self.file.to_archive().map_err(cast_error)?; + + let mut opts = options.unwrap_or(LookupOptions::default()); + + if let Some(split) = opts + .split + .or(self.options().split.map(|s| s.threshold).flatten()) + { + opts.split = Some(split); + } + + let entries = dict + .lookup::(queries, &opts.into()) + .map_err(|e| cast_error(e))?; + + let mapped = entries + .iter() + .map(|i| { + i.iter() + .map(|e| Entry::from_archive(env, e)) + .collect::, _>>() + }) + .collect::>, _>>()?; + + Ok(mapped) + } + + #[napi] + pub fn lookup( + &self, + env: Env, + query: Either3>>, + options: Option, + ) -> Result>> { + let mut queries: Vec = vec![]; + + match query { + Either3::A(a) => queries.push(a.into()), + Either3::B(b) => queries.push(b.into()), + Either3::C(c) => queries.append( + c.into_iter() + .map(to_lookup_query) + .collect::>() + .borrow_mut(), + ), + } + + self._lookup(env, &queries, options) + } + + #[napi] + pub fn lexicon(&self) -> Result> { + let dict = self.file.to_archive().map_err(cast_error)?; + let lexicon = dict.lexicon(); + + Ok(lexicon) + } + + #[napi] + pub fn split( + &self, + env: Env, + query: String, + options: Option, + ) -> Result> { + let dict = self.file.to_archive().map_err(cast_error)?; + + let mut opts = options; + + opts.merge(self.options().split); + + let result = dict + .split::<&odict::split::SplitOptions>(&query, &opts.unwrap().into()) + .map_err(|e| cast_error(e))?; + + Ok( + result + .iter() + .map(|e| Entry::from_archive(env, e)) + .collect::, _>>()?, + ) + } + + #[napi] + pub fn index(&self, options: Option) -> Result<()> { + let dict = self.file.to_archive().map_err(cast_error)?; + let mut opts = options; + + opts.merge(self.options().index); + + dict + .index::<&odict::search::IndexOptions>(&opts.unwrap().into()) + .map_err(cast_error)?; + + Ok(()) + } + + #[napi] + pub fn search( + &self, + env: Env, + query: String, + options: Option, + ) -> Result> { + let dict = self.file.to_archive().map_err(cast_error)?; + let mut opts = options; + + opts.merge(self.options().search); + + let results = dict + .search::<&odict::search::SearchOptions>(query.as_str(), &opts.unwrap().into()) + .map_err(cast_error)?; + + let entries = results + .iter() + .map(|e| Entry::from_entry(env, e.clone())) + .collect::, _>>()?; + + Ok(entries) + } +} + +#[cfg(test)] +mod test { + use merge::Merge; + + #[test] + fn test_options_merging() { + let opts1 = crate::types::DictionaryOptions { + search: None, + index: Some(crate::types::IndexOptions { + directory: Some("test".to_string()), + memory: Some(1234), + overwrite: Some(false), + }), + split: { Some(crate::types::SplitOptions { threshold: Some(5) }) }, + }; + + let mut opts2: Option = None; + + let mut opts3: Option = Some(crate::types::SplitOptions { + threshold: Some(10), + }); + + opts2.merge(opts1.index); + opts3.merge(opts1.split); + + let result1 = opts2.unwrap(); + let result2 = opts3.unwrap(); + + assert_eq!(result1.directory.unwrap(), "test".to_string()); + assert_eq!(result1.memory.unwrap(), 1234); + assert_eq!(result1.overwrite.unwrap(), false); + assert_eq!(result2.threshold.unwrap(), 10); + } +} diff --git a/node/src/lib.rs b/node/src/lib.rs new file mode 100644 index 00000000..6e78d7fb --- /dev/null +++ b/node/src/lib.rs @@ -0,0 +1,8 @@ +#![deny(clippy::all)] + +#[macro_use] +extern crate napi_derive; + +mod dictionary; +mod types; +mod utils; diff --git a/node/src/types/definition.rs b/node/src/types/definition.rs new file mode 100644 index 00000000..8a053b46 --- /dev/null +++ b/node/src/types/definition.rs @@ -0,0 +1,35 @@ +use napi::bindgen_prelude::*; + +use super::{mdstring::MDString, note::Note, Example}; + +#[napi(object)] +pub struct Definition { + pub id: Option, + pub value: ClassInstance, + pub examples: Vec, + pub notes: Vec, +} + +impl Definition { + pub fn from(env: napi::Env, definition: odict::Definition) -> Result { + let odict::Definition { + id, + value, + examples, + notes, + } = definition; + + Ok(Self { + id, + value: MDString::from(value).into_instance(env)?, + examples: examples + .into_iter() + .map(|e| Example::from(env, e).unwrap()) + .collect::>(), + notes: notes + .into_iter() + .map(|n| Note::from(env, n).unwrap()) + .collect(), + }) + } +} diff --git a/node/src/types/dictionary.rs b/node/src/types/dictionary.rs new file mode 100644 index 00000000..6212872c --- /dev/null +++ b/node/src/types/dictionary.rs @@ -0,0 +1,21 @@ +use merge::Merge; + +use super::{IndexOptions, SearchOptions, SplitOptions}; + +#[napi(object)] +#[derive(PartialEq, Merge, Clone, Eq)] +pub struct DictionaryOptions { + pub split: Option, + pub index: Option, + pub search: Option, +} + +impl Default for DictionaryOptions { + fn default() -> Self { + DictionaryOptions { + split: Some(SplitOptions::default()), + index: Some(IndexOptions::default()), + search: Some(SearchOptions::default()), + } + } +} diff --git a/node/src/types/entry.rs b/node/src/types/entry.rs new file mode 100644 index 00000000..cb9b228e --- /dev/null +++ b/node/src/types/entry.rs @@ -0,0 +1,35 @@ +use napi::bindgen_prelude::*; + +use crate::utils::cast_error; + +use super::etymology::Etymology; + +#[napi(object)] +pub struct Entry { + pub term: String, + pub see_also: Option, + pub etymologies: Vec, +} + +impl Entry { + pub fn from_entry(env: napi::Env, entry: odict::Entry) -> Result { + let odict::Entry { + term, + see_also, + etymologies, + } = entry; + + Ok(Self { + term, + see_also, + etymologies: etymologies + .into_iter() + .map(|e| Etymology::from(env, e)) + .collect::, _>>()?, + }) + } + + pub fn from_archive(env: napi::Env, entry: &odict::ArchivedEntry) -> Result { + Entry::from_entry(env, entry.to_entry().map_err(cast_error)?) + } +} diff --git a/node/src/types/etymology.rs b/node/src/types/etymology.rs new file mode 100644 index 00000000..86fdbbfa --- /dev/null +++ b/node/src/types/etymology.rs @@ -0,0 +1,39 @@ +use std::collections::HashMap; + +use napi::bindgen_prelude::*; + +use super::{mdstring::MDString, sense::Sense}; + +#[napi(object)] +pub struct Etymology { + pub id: Option, + pub pronunciation: Option, + pub description: Option>, + pub senses: HashMap, +} + +impl Etymology { + pub fn from(env: napi::Env, etymology: odict::Etymology) -> Result { + let odict::Etymology { + id, + pronunciation, + description, + senses, + } = etymology; + + Ok(Self { + id, + pronunciation, + description: description + .map(|d| MDString::from(d).into_instance(env)) + .transpose()?, + senses: senses + .into_iter() + .map(|(k, v)| -> Result<(String, Sense), _> { + let sense = Sense::from(env, v)?; + Ok((k.to_string(), sense)) + }) + .collect::, _>>()?, + }) + } +} diff --git a/node/src/types/example.rs b/node/src/types/example.rs new file mode 100644 index 00000000..bd7ad81a --- /dev/null +++ b/node/src/types/example.rs @@ -0,0 +1,18 @@ +use napi::bindgen_prelude::*; + +use super::mdstring::MDString; + +#[napi(object)] +pub struct Example { + pub value: ClassInstance, +} + +impl Example { + pub fn from(env: napi::Env, note: odict::Example) -> Result { + let odict::Example { value } = note; + + Ok(Self { + value: MDString::from(value).into_instance(env).unwrap(), + }) + } +} diff --git a/node/src/types/group.rs b/node/src/types/group.rs new file mode 100644 index 00000000..2116cb00 --- /dev/null +++ b/node/src/types/group.rs @@ -0,0 +1,29 @@ +use napi::bindgen_prelude::*; + +use super::{definition::Definition, MDString}; + +#[napi(object)] +pub struct Group { + pub id: Option, + pub description: ClassInstance, + pub definitions: Vec, +} + +impl Group { + pub fn from(env: napi::Env, group: odict::Group) -> Result { + let odict::Group { + id, + description, + definitions, + } = group; + + Ok(Self { + id, + description: MDString::from(description).into_instance(env)?, + definitions: definitions + .into_iter() + .map(|d| Definition::from(env, d)) + .collect::, _>>()?, + }) + } +} diff --git a/node/src/types/index.rs b/node/src/types/index.rs new file mode 100644 index 00000000..05012347 --- /dev/null +++ b/node/src/types/index.rs @@ -0,0 +1,39 @@ +use merge::Merge; + +#[napi(object)] +#[derive(PartialEq, Merge, Clone, Eq)] +pub struct IndexOptions { + pub directory: Option, + pub memory: Option, + pub overwrite: Option, +} + +impl Default for IndexOptions { + fn default() -> Self { + IndexOptions { + overwrite: None, + directory: None, + memory: None, + } + } +} + +impl From for odict::search::IndexOptions { + fn from(opts: IndexOptions) -> Self { + let mut s = odict::search::IndexOptions::default(); + + if let Some(memory) = opts.memory { + s = s.memory(memory.try_into().unwrap()); + } + + if let Some(directory) = opts.directory { + s = s.dir(&directory); + } + + if let Some(overwrite) = opts.overwrite { + s = s.overwrite(overwrite); + } + + s + } +} diff --git a/node/src/types/lookup.rs b/node/src/types/lookup.rs new file mode 100644 index 00000000..566513f9 --- /dev/null +++ b/node/src/types/lookup.rs @@ -0,0 +1,48 @@ +use merge::Merge; + +#[napi(object)] +#[derive(Merge)] +pub struct LookupOptions { + pub split: Option, + pub follow: Option, +} + +impl Default for LookupOptions { + fn default() -> Self { + LookupOptions { + split: None, + follow: None, + } + } +} + +impl From for odict::lookup::LookupOptions { + fn from(opts: LookupOptions) -> Self { + let mut s = odict::lookup::LookupOptions::default(); + + if let Some(split) = opts.split { + s = s.split(split.try_into().unwrap()); + } + + if let Some(follow) = opts.follow { + s = s.follow(follow); + } + + s + } +} + +#[napi(object)] +pub struct LookupQuery { + pub term: String, + pub fallback: String, +} + +impl From for odict::lookup::LookupQuery { + fn from(q: LookupQuery) -> Self { + odict::lookup::LookupQuery { + term: q.term, + fallback: q.fallback, + } + } +} diff --git a/node/src/types/mdstring.rs b/node/src/types/mdstring.rs new file mode 100644 index 00000000..51f18ae4 --- /dev/null +++ b/node/src/types/mdstring.rs @@ -0,0 +1,60 @@ +use napi::bindgen_prelude::*; + +#[napi] +pub enum MarkdownStrategy { + Disabled, + HTML, + Text, +} + +impl From for odict::MarkdownStrategy { + fn from(strategy: MarkdownStrategy) -> Self { + match strategy { + MarkdownStrategy::Disabled => odict::MarkdownStrategy::Disabled, + MarkdownStrategy::HTML => odict::MarkdownStrategy::HTML, + MarkdownStrategy::Text => odict::MarkdownStrategy::Text, + } + } +} + +impl From<&str> for MarkdownStrategy { + fn from(strategy: &str) -> Self { + match strategy { + "html" => MarkdownStrategy::HTML, + "text" => MarkdownStrategy::Text, + _ => MarkdownStrategy::Disabled, + } + } +} + +#[napi] +pub struct MDString { + mds: odict::MDString, +} + +#[napi] +impl MDString { + #[napi(constructor)] + pub fn new(value: String) -> Result { + Ok(Self { + mds: odict::MDString::from(value.as_str()), + }) + } + + #[napi(getter)] + pub fn value(&self) -> String { + self.mds.value().to_string() + } + + #[napi] + pub fn parse(&self, strategy: MarkdownStrategy) -> String { + let s: odict::MarkdownStrategy = strategy.into(); + self.mds.parse(s) + } +} + +impl From for MDString { + fn from(mds: odict::MDString) -> Self { + Self { mds } + } +} diff --git a/node/src/types/mod.rs b/node/src/types/mod.rs new file mode 100644 index 00000000..e2032eb9 --- /dev/null +++ b/node/src/types/mod.rs @@ -0,0 +1,22 @@ +mod definition; +mod dictionary; +mod entry; +mod etymology; +mod example; +mod group; +mod index; +mod lookup; +mod mdstring; +mod note; +mod search; +mod sense; +mod split; + +pub use dictionary::*; +pub use entry::*; +pub use example::*; +pub use index::*; +pub use lookup::*; +pub use mdstring::*; +pub use search::*; +pub use split::*; diff --git a/node/src/types/note.rs b/node/src/types/note.rs new file mode 100644 index 00000000..5f577d93 --- /dev/null +++ b/node/src/types/note.rs @@ -0,0 +1,29 @@ +use napi::bindgen_prelude::*; + +use super::{mdstring::MDString, Example}; + +#[napi(object)] +pub struct Note { + pub id: Option, + pub value: ClassInstance, + pub examples: Vec, +} + +impl Note { + pub fn from(env: napi::Env, note: odict::Note) -> Result { + let odict::Note { + id, + value, + examples, + } = note; + + Ok(Self { + id, + value: MDString::from(value).into_instance(env)?, + examples: examples + .into_iter() + .map(|e| Example::from(env, e)) + .collect::, _>>()?, + }) + } +} diff --git a/node/src/types/search.rs b/node/src/types/search.rs new file mode 100644 index 00000000..b764e93c --- /dev/null +++ b/node/src/types/search.rs @@ -0,0 +1,45 @@ +use merge::Merge; + +#[napi(object)] +#[derive(PartialEq, Merge, Clone, Eq)] +pub struct SearchOptions { + pub directory: Option, + pub threshold: Option, + pub autoindex: Option, + pub limit: Option, +} + +impl Default for SearchOptions { + fn default() -> Self { + SearchOptions { + threshold: None, + directory: None, + autoindex: None, + limit: None, + } + } +} + +impl From for odict::search::SearchOptions { + fn from(opts: SearchOptions) -> Self { + let mut s = odict::search::SearchOptions::default(); + + if let Some(threshold) = opts.threshold { + s = s.threshold(threshold); + } + + if let Some(directory) = opts.directory { + s = s.dir(&directory); + } + + if let Some(limit) = opts.limit { + s = s.limit(limit.try_into().unwrap()); + } + + if let Some(autoindex) = opts.autoindex { + s = s.autoindex(autoindex); + } + + s + } +} diff --git a/node/src/types/sense.rs b/node/src/types/sense.rs new file mode 100644 index 00000000..940c2712 --- /dev/null +++ b/node/src/types/sense.rs @@ -0,0 +1,28 @@ +use napi::bindgen_prelude::*; + +use super::{definition::Definition, group::Group}; + +#[napi(object)] +pub struct Sense { + pub pos: String, + pub definitions: Vec>, +} + +impl Sense { + pub fn from(env: napi::Env, sense: odict::Sense) -> Result { + let odict::Sense { pos, definitions } = sense; + + Ok(Self { + pos: pos.to_string(), + definitions: definitions + .into_iter() + .map(|d| -> Result> { + match d { + odict::DefinitionType::Definition(d) => Ok(Either::A(Definition::from(env, d)?)), + odict::DefinitionType::Group(g) => Ok(Either::B(Group::from(env, g)?)), + } + }) + .collect::>, _>>()?, + }) + } +} diff --git a/node/src/types/split.rs b/node/src/types/split.rs new file mode 100644 index 00000000..4d182548 --- /dev/null +++ b/node/src/types/split.rs @@ -0,0 +1,25 @@ +use merge::Merge; + +#[napi(object)] +#[derive(PartialEq, Merge, Clone, Eq)] +pub struct SplitOptions { + pub threshold: Option, +} + +impl Default for SplitOptions { + fn default() -> Self { + SplitOptions { threshold: None } + } +} + +impl From for odict::split::SplitOptions { + fn from(opts: SplitOptions) -> Self { + let mut s = odict::split::SplitOptions::default(); + + if let Some(threshold) = opts.threshold { + s = s.threshold(threshold.try_into().unwrap()); + } + + s + } +} diff --git a/node/src/utils.rs b/node/src/utils.rs new file mode 100644 index 00000000..2604c45c --- /dev/null +++ b/node/src/utils.rs @@ -0,0 +1,26 @@ +use merge::Merge; +use napi::Either; + +use crate::types::{DictionaryOptions, LookupQuery}; + +pub fn cast_error(e: Box) -> napi::Error { + napi::Error::new(napi::Status::GenericFailure, format!("{}", e)) +} + +pub fn resolve_options(options: &Option) -> DictionaryOptions { + match options { + Some(opts) => { + let mut out = opts.clone(); + out.merge(DictionaryOptions::default()); + return out; + } + None => DictionaryOptions::default(), + } +} + +pub fn to_lookup_query(query: Either) -> odict::lookup::LookupQuery { + match query { + Either::A(wwf) => wwf.into(), + Either::B(s) => s.into(), + } +} diff --git a/node/tests/__snapshots__/dictionary.spec.ts.snap b/node/tests/__snapshots__/dictionary.spec.ts.snap new file mode 100644 index 00000000..3ca30192 --- /dev/null +++ b/node/tests/__snapshots__/dictionary.spec.ts.snap @@ -0,0 +1,265 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Dictionary can index and search a dictionary 1`] = ` +[ + { + "etymologies": [ + { + "description": "Latin root", + "senses": { + "n": { + "definitions": [ + { + "examples": [ + { + "value": "The dog runs after the cat.", + }, + { + "value": "The horse ran away.", + }, + ], + "notes": [], + "value": "(vertebrates) To move swiftly", + }, + { + "examples": [], + "notes": [], + "value": "Act or instance of hurrying (to or from a place) (not necessarily by foot); dash or errand, trip.", + }, + { + "examples": [], + "notes": [], + "value": "A pleasure trip.", + }, + { + "examples": [], + "notes": [], + "value": "Flight, instance or period of fleeing.", + }, + { + "examples": [], + "notes": [], + "value": "Migration (of fish).", + }, + { + "examples": [], + "notes": [], + "value": "A group of fish that migrate, or ascend a river for the purpose of spawning.", + }, + ], + "pos": "n", + }, + "v": { + "definitions": [ + { + "definitions": [ + { + "examples": [ + { + "value": "The dog runs after the cat.", + }, + { + "value": "The horse ran away.", + }, + ], + "notes": [], + "value": "(vertebrates) To move swiftly (figuratively)", + }, + { + "examples": [], + "notes": [], + "value": "(fluids) To flow.", + }, + { + "examples": [], + "notes": [], + "value": "(nautical, of a vessel) To sail before the wind, in distinction from reaching or sailing close-hauled.", + }, + { + "examples": [], + "notes": [], + "value": "(social) To carry out an activity.", + }, + { + "examples": [], + "notes": [], + "value": "To extend or persist, statically or dynamically, through space or time.", + }, + { + "examples": [], + "notes": [], + "value": "(transitive) To execute or carry out a plan, procedure or program.", + }, + ], + "description": "A number of verb senses", + }, + ], + "pos": "v", + }, + }, + }, + ], + "term": "run", + }, +] +`; + +exports[`Dictionary can split terms properly 1`] = ` +[ + { + "etymologies": [ + { + "description": "Latin root", + "senses": { + "n": { + "definitions": [ + { + "examples": [ + { + "value": "There goes a cat!", + }, + ], + "notes": [ + { + "examples": [ + { + "value": "Some example", + }, + ], + "value": "Some definition note", + }, + ], + "value": "a cat", + }, + ], + "pos": "n", + }, + }, + }, + ], + "term": "cat", + }, + { + "etymologies": [ + { + "description": "Latin root", + "pronunciation": "dooooog", + "senses": { + "un": { + "definitions": [ + { + "examples": [], + "notes": [], + "value": "a dog", + }, + ], + "pos": "un", + }, + }, + }, + ], + "term": "dog", + }, +] +`; + +exports[`Dictionary lookup can split terms 1`] = ` +[ + [ + { + "etymologies": [ + { + "description": "Latin root", + "senses": { + "n": { + "definitions": [ + { + "examples": [ + { + "value": "There goes a cat!", + }, + ], + "notes": [ + { + "examples": [ + { + "value": "Some example", + }, + ], + "value": "Some definition note", + }, + ], + "value": "a cat", + }, + ], + "pos": "n", + }, + }, + }, + ], + "term": "cat", + }, + { + "etymologies": [ + { + "description": "Latin root", + "pronunciation": "dooooog", + "senses": { + "un": { + "definitions": [ + { + "examples": [], + "notes": [], + "value": "a dog", + }, + ], + "pos": "un", + }, + }, + }, + ], + "term": "dog", + }, + ], +] +`; + +exports[`Dictionary lookup looks up terms properly 1`] = ` +[ + [ + { + "etymologies": [ + { + "description": "Latin root", + "senses": { + "n": { + "definitions": [ + { + "examples": [ + { + "value": "There goes a cat!", + }, + ], + "notes": [ + { + "examples": [ + { + "value": "Some example", + }, + ], + "value": "Some definition note", + }, + ], + "value": "a cat", + }, + ], + "pos": "n", + }, + }, + }, + ], + "term": "cat", + }, + ], +] +`; diff --git a/node/tests/dictionary.spec.ts b/node/tests/dictionary.spec.ts new file mode 100644 index 00000000..eab94c94 --- /dev/null +++ b/node/tests/dictionary.spec.ts @@ -0,0 +1,108 @@ +import { beforeAll, describe, expect, it } from "@jest/globals"; + +import { existsSync } from "node:fs"; +import { rm, stat } from "node:fs/promises"; +import { join } from "node:path"; +import { fileURLToPath } from "node:url"; + +import { Dictionary } from "../dist/index.js"; + +describe("Dictionary", () => { + expect.addSnapshotSerializer({ + test: (t) => typeof t.value === "string", + serialize: (t) => `"${t.value}"`, + }); + + let dict1Path: string; + let dict2Path: string; + let dict1: Dictionary; + let dict2: Dictionary; + + beforeAll(async () => { + dict1Path = join( + fileURLToPath(new URL(import.meta.url)), + "../../../examples/example1.xml" + ); + + dict1 = await Dictionary.compile(dict1Path); + + dict2Path = join( + fileURLToPath(new URL(import.meta.url)), + "../../../examples/example2.xml" + ); + + dict2 = await Dictionary.compile(dict2Path); + + const stat1 = await stat(dict1.path); + const stat2 = await stat(dict2.path); + + expect(stat1.isFile).toBeTruthy(); + expect(stat2.isFile).toBeTruthy(); + }); + + it("returns the path correctly", () => { + expect(dict1.path).toBe(dict1Path.replace(".xml", ".odict")); + expect(dict2.path).toBe(dict2Path.replace(".xml", ".odict")); + }); + + describe("lookup", () => { + it("looks up terms properly", async () => { + const result = await dict1.lookup({ term: "cat", fallback: "cat" }); + expect(result).toMatchSnapshot(); + }); + + it("doesn't split unless specified", async () => { + const result = await dict1.lookup("catdog"); + expect(result[0].length).toBe(0); + }); + + it("can split terms", async () => { + const result = await dict1.lookup("catdog", { split: 3 }); + expect(result).toMatchSnapshot(); + }); + }); + + it("can return the lexicon", async () => { + const result = await dict1.lexicon(); + expect(result).toStrictEqual(["cat", "dog", "poo", "ran", "run"]); + }); + + it("can write raw XML", async () => { + await Dictionary.write( + '" )', + "test.odict" + ); + + expect(existsSync("test.odict")).toBeTruthy(); + + const dict = new Dictionary("test.odict"); + + expect(dict.lookup("hello").length).toBe(1); + + await rm("test.odict"); + }); + + it("can split terms properly", async () => { + const result = await dict1.split("catdog", { threshold: 2 }); + expect(result).toMatchSnapshot(); + }); + + it("can index and search a dictionary", async () => { + await dict1.index(); + + const results = await dict1.search("run"); + + expect(results).toMatchSnapshot(); + }); + + it("throws errors inside JavaScript", async () => { + try { + const dict = new Dictionary("fake-alias"); + await dict.lookup("dog"); + } catch (e) { + expect((e as Error).message).toEqual( + "No such file or directory (os error 2)" + ); + } + }); +}); diff --git a/js/tsconfig.json b/node/tsconfig.json similarity index 94% rename from js/tsconfig.json rename to node/tsconfig.json index 4d8ec534..14cf4e83 100644 --- a/js/tsconfig.json +++ b/node/tsconfig.json @@ -15,5 +15,5 @@ "declaration": true, "verbatimModuleSyntax": true }, - "include": ["src"] + "include": ["tests"] }

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�Y3};aRxlc!a)Z7 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