diff --git a/.env.example b/.env.example index e69de29..1af6996 100644 --- a/.env.example +++ b/.env.example @@ -0,0 +1,26 @@ +VITE_SUPPORT_API_BASE_URL= + +# reCAPTCHA: site key (frontend). +# Must match API secret key server-side. +# In production, this must be set; do not allow verification bypass when missing. +VITE_RECAPTCHA_SITE_KEY= + +# Optional: platform/environment for Jira (e.g. dev, staging, prod). Default: dev +VITE_PLATFORM=dev + +VITE_NETWORK_TYPE=mainnet + +# Per-chain RPC overrides (key = chain ID) +# Mainnet +VITE_RPC_URL_1= +VITE_RPC_URL_137= +VITE_RPC_URL_50= +VITE_RPC_URL_101010= +VITE_RPC_URL_1338= + +# Testnet +VITE_RPC_URL_11155111= +VITE_RPC_URL_80002= +VITE_RPC_URL_51= +VITE_RPC_URL_20180427= +VITE_RPC_URL_21002= diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9390336..f59f66e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,9 @@ jobs: - name: Run tests with coverage run: npm run test:coverage + env: + VITE_RPC_URL_1: ${{ secrets.VITE_RPC_URL_1 }} + VITE_RPC_URL_101010: ${{ secrets.VITE_RPC_URL_101010 }} build: runs-on: ubuntu-latest diff --git a/.github/workflows/deploy-trustvc-website.yml b/.github/workflows/deploy-trustvc-website.yml new file mode 100644 index 0000000..c535293 --- /dev/null +++ b/.github/workflows/deploy-trustvc-website.yml @@ -0,0 +1,115 @@ +name: Deploy TrustVC Website + +on: + workflow_dispatch: + inputs: + branch: + description: 'Branch to deploy (always deploys from main)' + required: true + default: 'main' + type: choice + options: + - main + - develop + environment: + description: 'Deployment environment' + required: true + default: 'development' + type: choice + options: + - development + - production + +permissions: + contents: read + +jobs: + build-and-deploy: + name: Build and deploy to CloudFront + runs-on: ubuntu-latest + permissions: + contents: read + # id-token: write # enable when using OIDC for AWS (no long-lived keys) + + env: + # Map environment input to S3 bucket and CloudFront distribution + AWS_REGION: ap-southeast-1 + DEPLOY_ENV: ${{ github.event.inputs.environment }} + + S3_BUCKET_DEVELOPMENT: ${{ secrets.TRUSTVC_WEB_S3_BUCKET_DEVELOPMENT }} + S3_BUCKET_PRODUCTION: ${{ secrets.TRUSTVC_WEB_S3_BUCKET_PRODUCTION }} + + CF_DISTRIBUTION_DEVELOPMENT: ${{ secrets.TRUSTVC_WEB_CF_DISTRIBUTION_DEVELOPMENT }} + CF_DISTRIBUTION_PRODUCTION: ${{ secrets.TRUSTVC_WEB_CF_DISTRIBUTION_PRODUCTION }} + + # Full .env content per environment (one line or multiline, as in your local .env) + ENV_FILE_DEVELOPMENT: ${{ secrets.TRUSTVC_WEB_ENV_DEVELOPMENT }} + ENV_FILE_PRODUCTION: ${{ secrets.TRUSTVC_WEB_ENV_PRODUCTION }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: main + + - name: Use Node.js 20 + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'npm' + cache-dependency-path: package-lock.json + + - name: Create .env for build + run: | + if [ "${DEPLOY_ENV}" = "production" ]; then + echo "${ENV_FILE_PRODUCTION}" > .env + else + echo "${ENV_FILE_DEVELOPMENT}" > .env + fi + + - name: Install dependencies + run: npm ci + + - name: Lint + run: npm run lint + + - name: Build + run: npm run build + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ env.AWS_REGION }} + + - name: Determine target bucket and distribution + id: env-map + shell: bash + run: | + if [ "${DEPLOY_ENV}" = "production" ]; then + echo "s3_bucket=${S3_BUCKET_PRODUCTION}" >> "$GITHUB_OUTPUT" + echo "distribution_id=${CF_DISTRIBUTION_PRODUCTION}" >> "$GITHUB_OUTPUT" + echo "deploy_env_name=production" >> "$GITHUB_OUTPUT" + else + echo "s3_bucket=${S3_BUCKET_DEVELOPMENT}" >> "$GITHUB_OUTPUT" + echo "distribution_id=${CF_DISTRIBUTION_DEVELOPMENT}" >> "$GITHUB_OUTPUT" + echo "deploy_env_name=development" >> "$GITHUB_OUTPUT" + fi + + - name: Sync assets to S3 + if: steps.env-map.outputs.s3_bucket != '' + run: | + BUCKET="${{ steps.env-map.outputs.s3_bucket }}" + # Long cache only for hashed assets (JS/CSS/fonts); never cache HTML at edge/browser for 1 year + aws s3 sync ./dist "s3://${BUCKET}" --delete --exclude "*.html" --cache-control "public, max-age=31536000" + # Short cache for HTML entry points so browsers always get fresh index.html (and new asset refs) after deploy + aws s3 sync ./dist "s3://${BUCKET}" --cache-control "public, max-age=0, must-revalidate" --exclude "*" --include "*.html" + + - name: Invalidate CloudFront cache + if: steps.env-map.outputs.distribution_id != '' + run: | + aws cloudfront create-invalidation \ + --distribution-id "${{ steps.env-map.outputs.distribution_id }}" \ + --paths "/*" + diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..d5887cd --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,6 @@ +#!/usr/bin/env sh +set -e + +echo "πŸ” Running pre-commit checks..." +npm run lint +npm run format:check diff --git a/eslint b/eslint new file mode 100644 index 0000000..e69de29 diff --git a/eslint.config.js b/eslint.config.js index 3739a07..f0eaa74 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -7,12 +7,15 @@ import prettier from 'eslint-config-prettier' import tseslint from 'typescript-eslint' export default [ - { ignores: ['dist', 'coverage'] }, + { ignores: ['dist', 'coverage', 'scripts/**/*'] }, { files: ['**/*.{js,jsx,ts,tsx}'], languageOptions: { ecmaVersion: 2020, - globals: globals.browser, + globals: { + ...globals.browser, + ...globals.node, + }, parser: tseslint.parser, parserOptions: { ecmaVersion: 'latest', @@ -25,6 +28,8 @@ export default [ 'tailwind.config.js', 'vite.config.js', 'src/test/setup.js', + 'src/shims/dotenv-config.js', + 'src/shims/node-fetch.js', ], }, }, @@ -48,6 +53,14 @@ export default [ 'warn', { allowConstantExport: true }, ], + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + 'no-unused-vars': 'off', }, }, ] diff --git a/index.html b/index.html index 08b6e0b..df0c1f1 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - + TrustVC diff --git a/package-lock.json b/package-lock.json index 9c29abb..30181f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,16 @@ "name": "trustvc-website", "version": "0.0.0", "dependencies": { + "@trustvc/decentralized-renderer-react-components": "^1.0.3", + "@trustvc/trustvc": "^2.8.0", + "clsx": "^2.1.1", + "date-fns": "^4.1.0", + "lucide-react": "^0.563.0", + "qrcode.react": "^4.2.0", "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-router-dom": "^7.12.0", + "swiper": "^12.0.3" }, "devDependencies": { "@eslint/js": "^9.17.0", @@ -28,6 +36,7 @@ "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.14", "globals": "^15.13.0", + "husky": "^9.1.7", "jsdom": "^25.0.1", "postcss": "^8.4.49", "prettier": "^3.4.2", @@ -35,6 +44,7 @@ "typescript": "^5.6.3", "typescript-eslint": "^8.18.2", "vite": "^6.0.3", + "vite-plugin-node-polyfills": "^0.25.0", "vitest": "^2.1.8" } }, @@ -44,6 +54,12 @@ "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", "dev": true }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "license": "MIT" + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -88,11 +104,710 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kms": { + "version": "3.995.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-kms/-/client-kms-3.995.0.tgz", + "integrity": "sha512-XD/1xUrRRMA0pvSOQfV++a5X2p3/xWNpEb/fksIVsIgvAuPCVDz1bCyTY9CjhVAxfzfxfTdy+fJKpk6frNCRdQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/credential-provider-node": "^3.972.10", + "@aws-sdk/middleware-host-header": "^3.972.3", + "@aws-sdk/middleware-logger": "^3.972.3", + "@aws-sdk/middleware-recursion-detection": "^3.972.3", + "@aws-sdk/middleware-user-agent": "^3.972.11", + "@aws-sdk/region-config-resolver": "^3.972.3", + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/util-endpoints": "3.995.0", + "@aws-sdk/util-user-agent-browser": "^3.972.3", + "@aws-sdk/util-user-agent-node": "^3.972.10", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.23.2", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.16", + "@smithy/middleware-retry": "^4.4.33", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.10", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.11.5", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.1", + "@smithy/util-defaults-mode-browser": "^4.3.32", + "@smithy/util-defaults-mode-node": "^4.2.35", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.993.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.993.0.tgz", + "integrity": "sha512-VLUN+wIeNX24fg12SCbzTUBnBENlL014yMKZvRhPkcn4wHR6LKgNrjsG3fZ03Xs0XoKaGtNFi1VVrq666sGBoQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/middleware-host-header": "^3.972.3", + "@aws-sdk/middleware-logger": "^3.972.3", + "@aws-sdk/middleware-recursion-detection": "^3.972.3", + "@aws-sdk/middleware-user-agent": "^3.972.11", + "@aws-sdk/region-config-resolver": "^3.972.3", + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/util-endpoints": "3.993.0", + "@aws-sdk/util-user-agent-browser": "^3.972.3", + "@aws-sdk/util-user-agent-node": "^3.972.9", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.23.2", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.16", + "@smithy/middleware-retry": "^4.4.33", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.10", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.11.5", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.1", + "@smithy/util-defaults-mode-browser": "^4.3.32", + "@smithy/util-defaults-mode-node": "^4.2.35", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-endpoints": { + "version": "3.993.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.993.0.tgz", + "integrity": "sha512-j6vioBeRZ4eHX4SWGvGPpwGg/xSOcK7f1GL0VM+rdf3ZFTIsUEhCFmD78B+5r2PgztcECSzEfvHQX01k8dPQPw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.973.11", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.11.tgz", + "integrity": "sha512-wdQ8vrvHkKIV7yNUKXyjPWKCdYEUrZTHJ8Ojd5uJxXp9vqPCkUR1dpi1NtOLcrDgueJH7MUH5lQZxshjFPSbDA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/xml-builder": "^3.972.5", + "@smithy/core": "^3.23.2", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/property-provider": "^4.2.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/signature-v4": "^5.3.8", + "@smithy/smithy-client": "^4.11.5", + "@smithy/types": "^4.12.0", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.972.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.9.tgz", + "integrity": "sha512-ZptrOwQynfupubvcngLkbdIq/aXvl/czdpEG8XJ8mN8Nb19BR0jaK0bR+tfuMU36Ez9q4xv7GGkHFqEEP2hUUQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/types": "^3.973.1", + "@smithy/property-provider": "^4.2.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.972.11", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.11.tgz", + "integrity": "sha512-hECWoOoH386bGr89NQc9vA/abkGf5TJrMREt+lhNcnSNmoBS04fK7vc3LrJBSQAUGGVj0Tz3f4dHB3w5veovig==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/types": "^3.973.1", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/node-http-handler": "^4.4.10", + "@smithy/property-provider": "^4.2.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.11.5", + "@smithy/types": "^4.12.0", + "@smithy/util-stream": "^4.5.12", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.972.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.9.tgz", + "integrity": "sha512-zr1csEu9n4eDiHMTYJabX1mDGuGLgjgUnNckIivvk43DocJC9/f6DefFrnUPZXE+GHtbW50YuXb+JIxKykU74A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/credential-provider-env": "^3.972.9", + "@aws-sdk/credential-provider-http": "^3.972.11", + "@aws-sdk/credential-provider-login": "^3.972.9", + "@aws-sdk/credential-provider-process": "^3.972.9", + "@aws-sdk/credential-provider-sso": "^3.972.9", + "@aws-sdk/credential-provider-web-identity": "^3.972.9", + "@aws-sdk/nested-clients": "3.993.0", + "@aws-sdk/types": "^3.973.1", + "@smithy/credential-provider-imds": "^4.2.8", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-login": { + "version": "3.972.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.9.tgz", + "integrity": "sha512-m4RIpVgZChv0vWS/HKChg1xLgZPpx8Z+ly9Fv7FwA8SOfuC6I3htcSaBz2Ch4bneRIiBUhwP4ziUo0UZgtJStQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/nested-clients": "3.993.0", + "@aws-sdk/types": "^3.973.1", + "@smithy/property-provider": "^4.2.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.10.tgz", + "integrity": "sha512-70nCESlvnzjo4LjJ8By8MYIiBogkYPSXl3WmMZfH9RZcB/Nt9qVWbFpYj6Fk1vLa4Vk8qagFVeXgxdieMxG1QA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "^3.972.9", + "@aws-sdk/credential-provider-http": "^3.972.11", + "@aws-sdk/credential-provider-ini": "^3.972.9", + "@aws-sdk/credential-provider-process": "^3.972.9", + "@aws-sdk/credential-provider-sso": "^3.972.9", + "@aws-sdk/credential-provider-web-identity": "^3.972.9", + "@aws-sdk/types": "^3.973.1", + "@smithy/credential-provider-imds": "^4.2.8", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.972.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.9.tgz", + "integrity": "sha512-gOWl0Fe2gETj5Bk151+LYKpeGi2lBDLNu+NMNpHRlIrKHdBmVun8/AalwMK8ci4uRfG5a3/+zvZBMpuen1SZ0A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/types": "^3.973.1", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.972.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.9.tgz", + "integrity": "sha512-ey7S686foGTArvFhi3ifQXmgptKYvLSGE2250BAQceMSXZddz7sUSNERGJT2S7u5KIe/kgugxrt01hntXVln6w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso": "3.993.0", + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/token-providers": "3.993.0", + "@aws-sdk/types": "^3.973.1", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.972.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.9.tgz", + "integrity": "sha512-8LnfS76nHXoEc9aRRiMMpxZxJeDG0yusdyo3NvPhCgESmBUgpMa4luhGbClW5NoX/qRcGxxM6Z/esqANSNMTow==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/nested-clients": "3.993.0", + "@aws-sdk/types": "^3.973.1", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.3.tgz", + "integrity": "sha512-aknPTb2M+G3s+0qLCx4Li/qGZH8IIYjugHMv15JTYMe6mgZO8VBpYgeGYsNMGCqCZOcWzuf900jFBG5bopfzmA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.3.tgz", + "integrity": "sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.3.tgz", + "integrity": "sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@aws/lambda-invoke-store": "^0.2.2", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.972.11", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.11.tgz", + "integrity": "sha512-R8CvPsPHXwzIHCAza+bllY6PrctEk4lYq/SkHJz9NLoBHCcKQrbOcsfXxO6xmipSbUNIbNIUhH0lBsJGgsRdiw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/util-endpoints": "3.993.0", + "@smithy/core": "^3.23.2", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/util-endpoints": { + "version": "3.993.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.993.0.tgz", + "integrity": "sha512-j6vioBeRZ4eHX4SWGvGPpwGg/xSOcK7f1GL0VM+rdf3ZFTIsUEhCFmD78B+5r2PgztcECSzEfvHQX01k8dPQPw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients": { + "version": "3.993.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.993.0.tgz", + "integrity": "sha512-iOq86f2H67924kQUIPOAvlmMaOAvOLoDOIb66I2YqSUpMYB6ufiuJW3RlREgskxv86S5qKzMnfy/X6CqMjK6XQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/middleware-host-header": "^3.972.3", + "@aws-sdk/middleware-logger": "^3.972.3", + "@aws-sdk/middleware-recursion-detection": "^3.972.3", + "@aws-sdk/middleware-user-agent": "^3.972.11", + "@aws-sdk/region-config-resolver": "^3.972.3", + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/util-endpoints": "3.993.0", + "@aws-sdk/util-user-agent-browser": "^3.972.3", + "@aws-sdk/util-user-agent-node": "^3.972.9", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.23.2", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.16", + "@smithy/middleware-retry": "^4.4.33", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.10", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.11.5", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.1", + "@smithy/util-defaults-mode-browser": "^4.3.32", + "@smithy/util-defaults-mode-node": "^4.2.35", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients/node_modules/@aws-sdk/util-endpoints": { + "version": "3.993.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.993.0.tgz", + "integrity": "sha512-j6vioBeRZ4eHX4SWGvGPpwGg/xSOcK7f1GL0VM+rdf3ZFTIsUEhCFmD78B+5r2PgztcECSzEfvHQX01k8dPQPw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.3.tgz", + "integrity": "sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/config-resolver": "^4.4.6", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.993.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.993.0.tgz", + "integrity": "sha512-+35g4c+8r7sB9Sjp1KPdM8qxGn6B/shBjJtEUN4e+Edw9UEQlZKIzioOGu3UAbyE0a/s450LdLZr4wbJChtmww==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.11", + "@aws-sdk/nested-clients": "3.993.0", + "@aws-sdk/types": "^3.973.1", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.973.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.1.tgz", + "integrity": "sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.995.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.995.0.tgz", + "integrity": "sha512-aym/pjB8SLbo9w2nmkrDdAAVKVlf7CM71B9mKhjDbJTzwpSFBPHqJIMdDyj0mLumKC0aIVDr1H6U+59m9GvMFw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.965.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.4.tgz", + "integrity": "sha512-H1onv5SkgPBK2P6JR2MjGgbOnttoNzSPIRoeZTNPZYyaplwGg50zS3amXvXqF0/qfXpWEC9rLWU564QTB9bSog==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.3.tgz", + "integrity": "sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.10.tgz", + "integrity": "sha512-LVXzICPlsheET+sE6tkcS47Q5HkSTrANIlqL1iFxGAY/wRQ236DX/PCAK56qMh9QJoXAfXfoRW0B0Og4R+X7Nw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-user-agent": "^3.972.11", + "@aws-sdk/types": "^3.973.1", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.972.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.5.tgz", + "integrity": "sha512-mCae5Ys6Qm1LDu0qdGwx2UQ63ONUe+FHw908fJzLDqFKTDBK4LDZUqKWm4OkTCNFq19bftjsBSESIGLD/s3/rA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "fast-xml-parser": "5.3.6", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws/lambda-invoke-store": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.3.tgz", + "integrity": "sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", @@ -106,7 +821,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -115,7 +829,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", @@ -145,7 +858,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", - "dev": true, "dependencies": { "@babel/parser": "^7.28.6", "@babel/types": "^7.28.6", @@ -161,7 +873,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", - "dev": true, "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", @@ -177,7 +888,6 @@ "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -186,7 +896,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", - "dev": true, "dependencies": { "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" @@ -199,7 +908,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", - "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", @@ -216,7 +924,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -225,7 +932,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -234,7 +940,6 @@ "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -243,7 +948,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -252,7 +956,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", - "dev": true, "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.28.6" @@ -265,7 +968,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", - "dev": true, "dependencies": { "@babel/types": "^7.28.6" }, @@ -276,95 +978,329 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "dev": true, + "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==", + "license": "MIT", + "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "dev": true, + "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==", + "license": "MIT", + "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", - "dev": true, - "engines": { - "node": ">=6.9.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==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", - "dev": true, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", + "peer": true, "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse": { + "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", - "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", - "dev": true, + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "license": "MIT", + "peer": true, "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.6", - "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6", - "debug": "^4.3.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/types": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", - "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", - "dev": true, + "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==", + "license": "MIT", + "peer": true, "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=6.9.0" + "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==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "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==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", + "peer": 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-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==", + "license": "MIT", + "peer": 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.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", + "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", + "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "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 + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, "node_modules/@csstools/color-helpers": { "version": "5.1.0", @@ -476,96 +1412,515 @@ "node": ">=18" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], + "node_modules/@digitalbazaar/bbs-2023-cryptosuite": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@digitalbazaar/bbs-2023-cryptosuite/-/bbs-2023-cryptosuite-2.0.1.tgz", + "integrity": "sha512-Uw7aDSuCehLUsiSsTi2ob1hQ8AgVq+jV3OgvPsOzy/AmIh2yG9kg2tNCv6PngWPyOm3VCzolwh+5MzWySASiww==", + "license": "BSD-3-Clause", + "dependencies": { + "@digitalbazaar/bls12-381-multikey": "^2.0.0", + "@digitalbazaar/di-sd-primitives": "^3.0.4", + "base64url-universal": "^2.0.0", + "cborg": "^4.0.5" + }, "engines": { "node": ">=18" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], + "node_modules/@digitalbazaar/bbs-signatures": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/bbs-signatures/-/bbs-signatures-3.0.0.tgz", + "integrity": "sha512-mQMCMnCWAraVSswJg1kJK/qmUrb3jMoWB9c8kOmztsWfnMZJcyYAcavuF8jgrVZ5cl/ZRNMK61ZbIvkqd6BE6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@noble/curves": "^1.3.0" + }, "engines": { "node": ">=18" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], + "node_modules/@digitalbazaar/bls12-381-multikey": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/bls12-381-multikey/-/bls12-381-multikey-2.1.0.tgz", + "integrity": "sha512-JelU85fNhvHl2/mqRdmrtrE2ZQJ0//+UwI0l/YFmvsOr6YN2GuKPzdkfXjpm7f3UvnBqz5f8QKFTb9mVa7mVVg==", + "license": "BSD-3-Clause", + "dependencies": { + "@digitalbazaar/bbs-signatures": "^3.0.0", + "@noble/curves": "^1.3.0", + "base58-universal": "^2.0.0", + "base64url-universal": "^2.0.0", + "cborg": "^4.2.0" + }, "engines": { "node": ">=18" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], + "node_modules/@digitalbazaar/data-integrity": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/data-integrity/-/data-integrity-2.5.0.tgz", + "integrity": "sha512-ohIieLfgtPQU9BYfj0eKNiz55/ZDOk5YSE9FN/Hn0eXzI8WQzLkzRvC8pvBnzuzXDgCsjPdSqYvzok5PoClMBQ==", + "license": "BSD-3-Clause", + "dependencies": { + "base58-universal": "^2.0.0", + "base64url-universal": "^2.0.0", + "jsonld-signatures": "^11.3.0" + }, "engines": { "node": ">=18" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@digitalbazaar/di-sd-primitives": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/di-sd-primitives/-/di-sd-primitives-3.2.0.tgz", + "integrity": "sha512-DydbRtDPY2vVVk7hLicSFfCCzd1d5e3GLjzqamLV4t9f9mGbHtnU2IeNhtUDGJZRpviFmtFjPMZwuns6sCAP9A==", + "license": "BSD-3-Clause", + "dependencies": { + "base64url-universal": "^2.0.0", + "jsonld": "^9.0.0", + "klona": "^2.0.6", + "rdf-canonize": "^5.0.0", + "uuid": "^10.0.0" + }, "engines": { "node": ">=18" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ + "node_modules/@digitalbazaar/di-sd-primitives/node_modules/@digitalbazaar/http-client": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-4.3.0.tgz", + "integrity": "sha512-6lMpxpt9BOmqHKGs9Xm6DP4LlZTBFer/ZjHvP3FcW3IaUWYIWC7dw5RFZnvw4fP57kAVcm1dp3IF+Y50qhBvAw==", + "license": "BSD-3-Clause", + "dependencies": { + "ky": "^1.14.2", + "undici": "^6.23.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@digitalbazaar/di-sd-primitives/node_modules/canonicalize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.1.0.tgz", + "integrity": "sha512-F705O3xrsUtgt98j7leetNhTWPe+5S72rlL5O4jA1pKqBVQ/dT1O1D6PFxmSXvc0SUOinWS57DKx0I3CHrXJHQ==", + "license": "Apache-2.0", + "bin": { + "canonicalize": "bin/canonicalize.js" + } + }, + "node_modules/@digitalbazaar/di-sd-primitives/node_modules/jsonld": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-9.0.0.tgz", + "integrity": "sha512-pjMIdkXfC1T2wrX9B9i2uXhGdyCmgec3qgMht+TDj+S0qX3bjWMQUfL7NeqEhuRTi8G5ESzmL9uGlST7nzSEWg==", + "license": "BSD-3-Clause", + "dependencies": { + "@digitalbazaar/http-client": "^4.2.0", + "canonicalize": "^2.1.0", + "lru-cache": "^6.0.0", + "rdf-canonize": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@digitalbazaar/di-sd-primitives/node_modules/ky": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.3.tgz", + "integrity": "sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" + } + }, + "node_modules/@digitalbazaar/di-sd-primitives/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==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@digitalbazaar/di-sd-primitives/node_modules/rdf-canonize": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-5.0.0.tgz", + "integrity": "sha512-g8OUrgMXAR9ys/ZuJVfBr05sPPoMA7nHIVs8VEvg9QwM5W4GR2qSFEEHjsyHF1eWlBaf8Ev40WNjQFQ+nJTO3w==", + "license": "BSD-3-Clause", + "dependencies": { + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@digitalbazaar/di-sd-primitives/node_modules/undici": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", + "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/@digitalbazaar/di-sd-primitives/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@digitalbazaar/di-sd-primitives/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/@digitalbazaar/ecdsa-multikey": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/ecdsa-multikey/-/ecdsa-multikey-1.8.0.tgz", + "integrity": "sha512-Xo4oBCb0bJv6PYNBrLBZfR/jA2uNd9Bi+YTnadFtxTbhMQrSN0nTw3OnTBOOC7zxtL3t4N00ZweQM4zhsV6gVQ==", + "license": "BSD-3-Clause", + "dependencies": { + "base58-universal": "^2.0.0", + "base64url-universal": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@digitalbazaar/ecdsa-sd-2023-cryptosuite": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@digitalbazaar/ecdsa-sd-2023-cryptosuite/-/ecdsa-sd-2023-cryptosuite-3.4.1.tgz", + "integrity": "sha512-PzKQneakxUUS/kzDgUZ0ZcZKuHhMhAelW2Bp/rryHEV43VeI3meoJkuQ0s7sfMlD1OWkKWrNClMr1znwBaQiLQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@digitalbazaar/di-sd-primitives": "^3.0.4", + "@digitalbazaar/ecdsa-multikey": "^1.1.3", + "base58-universal": "^2.0.0", + "base64url-universal": "^2.0.0", + "cborg": "^4.0.5", + "klona": "^2.0.6" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@digitalbazaar/http-client": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-3.4.1.tgz", + "integrity": "sha512-Ahk1N+s7urkgj7WvvUND5f8GiWEPfUw0D41hdElaqLgu8wZScI8gdI0q+qWw5N1d35x7GCRH2uk9mi+Uzo9M3g==", + "license": "BSD-3-Clause", + "dependencies": { + "ky": "^0.33.3", + "ky-universal": "^0.11.0", + "undici": "^5.21.2" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@digitalbazaar/security-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@digitalbazaar/security-context/-/security-context-1.0.1.tgz", + "integrity": "sha512-0WZa6tPiTZZF8leBtQgYAfXQePFQp2z5ivpCEN/iZguYYZ0TB9qRmWtan5XH6mNFuusHtMcyIzAcReyE6rZPhA==", + "license": "BSD-3-Clause" + }, + "node_modules/@emnapi/core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", + "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", + "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", + "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.14.1", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", + "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ "darwin" ], "engines": { @@ -1038,1421 +2393,7814 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "engines": { - "node": ">=18.18.0" + "node_modules/@ethersproject/abi": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz", + "integrity": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz", + "integrity": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/networks": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/web": "^5.8.0" } }, - "node_modules/@humanfs/node": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", - "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", - "dev": true, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz", + "integrity": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.4.0" - }, - "engines": { - "node": ">=18.18.0" + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node_modules/@ethersproject/address": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz", + "integrity": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/rlp": "^5.8.0" } }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node_modules/@ethersproject/base64": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz", + "integrity": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0" } }, - "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, + "node_modules/@ethersproject/basex": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.8.0.tgz", + "integrity": "sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "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" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/properties": "^5.8.0" } }, - "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/@ethersproject/bignumber": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz", + "integrity": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "bn.js": "^5.2.1" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, + "node_modules/@ethersproject/bytes": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz", + "integrity": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" + "@ethersproject/logger": "^5.8.0" } }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, + "node_modules/@ethersproject/constants": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz", + "integrity": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" + "@ethersproject/bignumber": "^5.8.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" + "node_modules/@ethersproject/contracts": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.8.0.tgz", + "integrity": "sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "^5.8.0", + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/transactions": "^5.8.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz", + "integrity": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/base64": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.8.0.tgz", + "integrity": "sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/basex": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/pbkdf2": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/sha2": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0", + "@ethersproject/strings": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/wordlists": "^5.8.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz", + "integrity": "sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hdnode": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/pbkdf2": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/random": "^5.8.0", + "@ethersproject/strings": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz", + "integrity": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "js-sha3": "0.8.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true + "node_modules/@ethersproject/keccak256/node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" + }, + "node_modules/@ethersproject/logger": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz", + "integrity": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, + "node_modules/@ethersproject/networks": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz", + "integrity": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@ethersproject/logger": "^5.8.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, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.8.0.tgz", + "integrity": "sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/sha2": "^5.8.0" } }, - "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/@ethersproject/properties": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz", + "integrity": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.8.0" } }, - "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" - }, + "node_modules/@ethersproject/providers": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.8.0.tgz", + "integrity": "sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/base64": "^5.8.0", + "@ethersproject/basex": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/networks": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/random": "^5.8.0", + "@ethersproject/rlp": "^5.8.0", + "@ethersproject/sha2": "^5.8.0", + "@ethersproject/strings": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/web": "^5.8.0", + "bech32": "1.1.4", + "ws": "8.18.0" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "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/@ethersproject/random": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.8.0.tgz", + "integrity": "sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, - "node_modules/@polka/url": { - "version": "1.0.0-next.29", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", - "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", - "dev": true + "node_modules/@ethersproject/rlp": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz", + "integrity": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", - "dev": true + "node_modules/@ethersproject/sha2": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.8.0.tgz", + "integrity": "sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "hash.js": "1.1.7" + } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", - "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", - "cpu": [ - "arm" + "node_modules/@ethersproject/signing-key": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz", + "integrity": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "dev": true, - "optional": true, - "os": [ - "android" - ] + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "bn.js": "^5.2.1", + "elliptic": "6.6.1", + "hash.js": "1.1.7" + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", - "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", - "cpu": [ - "arm64" + "node_modules/@ethersproject/solidity": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.8.0.tgz", + "integrity": "sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "dev": true, - "optional": true, - "os": [ - "android" - ] + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/sha2": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", - "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", - "cpu": [ - "arm64" + "node_modules/@ethersproject/strings": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz", + "integrity": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", - "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", - "cpu": [ - "x64" + "node_modules/@ethersproject/transactions": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz", + "integrity": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", - "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", - "cpu": [ - "arm64" + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/rlp": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.8.0.tgz", + "integrity": "sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", - "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", - "cpu": [ - "x64" + "node_modules/@ethersproject/wallet": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz", + "integrity": "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", - "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", - "cpu": [ - "arm" + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/hdnode": "^5.8.0", + "@ethersproject/json-wallets": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/random": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/wordlists": "^5.8.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz", + "integrity": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT", + "dependencies": { + "@ethersproject/base64": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", - "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", - "cpu": [ - "arm" + "node_modules/@ethersproject/wordlists": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.8.0.tgz", + "integrity": "sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", - "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "license": "MIT", + "engines": { + "node": ">=14" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", - "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz", + "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", - "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", + "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", + "license": "MIT", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.2" + }, + "engines": { + "node": ">=6" + } }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", - "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz", + "integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.2" + }, + "engines": { + "node": ">=6" + } }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", - "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@fortawesome/react-fontawesome": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.6.tgz", + "integrity": "sha512-mtBFIi1UsYQo7rYonYFkjgYKGoL8T+fEH6NGUpvuqtY3ytMsAoDaPo5rk25KuMtKDipY4bGYM/CkmCHA1N3FUg==", + "deprecated": "v0.2.x is no longer supported. Unless you are still using FontAwesome 5, please update to v3.1.1 or greater.", + "license": "MIT", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || ~6 || ~7", + "react": "^16.3 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", - "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@govtechsg/jsonld": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@govtechsg/jsonld/-/jsonld-0.1.1.tgz", + "integrity": "sha512-G3mz6/ryS4tIWTV7FonallTuj4Oy2JjLkBdCn7wjKShb3AG3/PY6XCpNupz8+rpvDF5BGtYvptpW9HRArnjyMQ==", + "license": "BSD-3-Clause", + "dependencies": { + "canonicalize": "^1.0.1", + "cross-fetch": "^3.1.4", + "lru-cache": "^6.0.0", + "rdf-canonize": "^3.0.0" + }, + "engines": { + "node": ">=12" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", - "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@govtechsg/jsonld/node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", - "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "node_modules/@govtechsg/jsonld/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==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@govtechsg/jsonld/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "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==", + "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/@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==", + "license": "ISC", + "peer": 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/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "license": "MIT", + "peer": true, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.3.0.tgz", + "integrity": "sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/core": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.3.0.tgz", + "integrity": "sha512-U5mVPsBxLSO6xYbf+tgkymLx+iAhvZX43/xI1+ej2ZOPnPdkdO1CzDmFKh2mZBn2s4XZixszHeQnzp1gm/DIxw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/console": "30.3.0", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-changed-files": "30.3.0", + "jest-config": "30.3.0", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.3.0", + "jest-resolve-dependencies": "30.3.0", + "jest-runner": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "jest-watcher": "30.3.0", + "pretty-format": "30.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, + "node_modules/@jest/diff-sequences": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", + "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.3.0.tgz", + "integrity": "sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "jest-mock": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==", + "license": "MIT", + "peer": true, + "dependencies": { + "expect": "30.3.0", + "jest-snapshot": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz", + "integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/get-type": "30.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.3.0.tgz", + "integrity": "sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "30.3.0", + "@sinonjs/fake-timers": "^15.0.0", + "@types/node": "*", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.3.0.tgz", + "integrity": "sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/types": "30.3.0", + "jest-mock": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-regex-util": "30.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.3.0.tgz", + "integrity": "sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "@jridgewell/trace-mapping": "^0.3.25", + "@types/node": "*", + "chalk": "^4.1.2", + "collect-v8-coverage": "^1.0.2", + "exit-x": "^0.2.2", + "glob": "^10.5.0", + "graceful-fs": "^4.2.11", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^5.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", + "slash": "^3.0.0", + "string-length": "^4.0.2", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/snapshot-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.3.0.tgz", + "integrity": "sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "30.3.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "natural-compare": "^1.4.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "callsites": "^3.1.0", + "graceful-fs": "^4.2.11" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.3.0.tgz", + "integrity": "sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/console": "30.3.0", + "@jest/types": "30.3.0", + "@types/istanbul-lib-coverage": "^2.0.6", + "collect-v8-coverage": "^1.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.3.0.tgz", + "integrity": "sha512-dgbWy9b8QDlQeRZcv7LNF+/jFiiYHTKho1xirauZ7kVwY7avjFF6uTT0RqlgudB5OuIPagFdVtfFMosjVbk1eA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/test-result": "30.3.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.3.0.tgz", + "integrity": "sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/types": "30.3.0", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.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": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.3.0", + "pirates": "^4.0.7", + "slash": "^3.0.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/types": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz", + "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "optional": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mattrglobal/bbs-signatures": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-1.4.0.tgz", + "integrity": "sha512-uBK1IWw48fqloO9W/yoDncTs9rfwfbG/53cOrrCQL7XkyZe4DtB40HcLbi3i+yxTYs5wytf1Qr4Z5RpzpW10jw==", + "license": "Apache-2.0", + "dependencies": { + "@stablelib/random": "1.0.0" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "@mattrglobal/node-bbs-signatures": "0.18.1" + } + }, + "node_modules/@mattrglobal/bls12381-key-pair": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-1.2.2.tgz", + "integrity": "sha512-wbbj5sN+0OHChyXdPHY5v4VM54C3bAKzLY0EbQZphHwMOe5Vo/Kij8x+4Nu0Cvx7kAIVxDk418jUo8BwlaE0Tw==", + "license": "Apache-2.0", + "dependencies": { + "@mattrglobal/bbs-signatures": "1.4.0", + "bs58": "4.0.1", + "rfc4648": "1.5.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@mattrglobal/jsonld-signatures-bbs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/jsonld-signatures-bbs/-/jsonld-signatures-bbs-1.2.0.tgz", + "integrity": "sha512-iW/kwlUM412a0AkJEqwaYZm/QhFeTCtebI3L9v9ZSm68wfvPdL2Gha8MkpKNnaqK8MIFEDIFUmL1iVk5qxvNYA==", + "license": "Apache-2.0", + "dependencies": { + "@mattrglobal/bbs-signatures": "1.2.0", + "@mattrglobal/bls12381-key-pair": "1.1.0", + "@stablelib/random": "1.0.0", + "bs58": "4.0.1", + "jsonld": "4.0.1", + "jsonld-signatures": "7.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@mattrglobal/jsonld-signatures-bbs/node_modules/@mattrglobal/bbs-signatures": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-1.2.0.tgz", + "integrity": "sha512-DwSzMKMWXfVpw1NDtVY57LHqi6GZFRbRqDrmtDBVr4P/4sOoawGev62J7uvKxIdLamqPX47iCY/Qf2tZ6b5N6w==", + "license": "Apache-2.0", + "dependencies": { + "@stablelib/random": "1.0.0" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "@mattrglobal/node-bbs-signatures": "0.17.0" + } + }, + "node_modules/@mattrglobal/jsonld-signatures-bbs/node_modules/@mattrglobal/bls12381-key-pair": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-1.1.0.tgz", + "integrity": "sha512-idyPlUtc3SBZVtgyGpZYG9w4D/WPzMX0AFDrcSNncNCCZXHwWnGNDOssp+9pU/NhEtuiI285GAlUXjD8Esu12Q==", + "license": "Apache-2.0", + "dependencies": { + "@mattrglobal/bbs-signatures": "1.2.0", + "bs58": "4.0.1", + "rfc4648": "1.5.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@mattrglobal/jsonld-signatures-bbs/node_modules/@mattrglobal/node-bbs-signatures": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.17.0.tgz", + "integrity": "sha512-midEd1qGYfAKjILyIdEgyY7tbVwIFR7ozWli8AaxBaiDie2oBaj6O1A2rh/GCOKTpBZ3Thbi+CE0QZntWf+Xzg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "1.0.11", + "neon-cli": "0.10.1" + }, + "engines": { + "node": ">=14", + "yarn": "1.x" + } + }, + "node_modules/@mattrglobal/jsonld-signatures-bbs/node_modules/jsonld": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-4.0.1.tgz", + "integrity": "sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A==", + "license": "BSD-3-Clause", + "dependencies": { + "canonicalize": "^1.0.1", + "lru-cache": "^5.1.1", + "object.fromentries": "^2.0.2", + "rdf-canonize": "^2.0.1", + "request": "^2.88.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@mattrglobal/jsonld-signatures-bbs/node_modules/jsonld-signatures": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jsonld-signatures/-/jsonld-signatures-7.0.0.tgz", + "integrity": "sha512-J/nA+llcYYjErPHG9WFpXvR82TOg5fbHk/7rXbx4Ts854DPReaKAAd0hAZ+s5/P2WIIAZPIHCqA+iz1QrOqeiQ==", + "license": "BSD-3-Clause", + "dependencies": { + "base64url": "^3.0.1", + "crypto-ld": "^3.7.0", + "jsonld": "^4.0.1", + "node-forge": "^0.10.0", + "security-context": "^4.0.0", + "serialize-error": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mattrglobal/jsonld-signatures-bbs/node_modules/rdf-canonize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", + "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", + "license": "BSD-3-Clause", + "dependencies": { + "semver": "^6.3.0", + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@mattrglobal/jsonld-signatures-bbs/node_modules/serialize-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", + "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@mattrglobal/jsonld-signatures-bbs/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/@mattrglobal/node-bbs-signatures": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.18.1.tgz", + "integrity": "sha512-s9ccL/1TTvCP1N//4QR84j/d5D/stx/AI1kPcRgiE4O3KrxyF7ZdL9ca8fmFuN6yh9LAbn/OiGRnOXgvn38Dgg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "1.0.11", + "neon-cli": "0.10.1" + }, + "engines": { + "node": ">=14", + "yarn": "1.x" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "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/@peculiar/asn1-schema": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", + "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "license": "MIT", + "dependencies": { + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz", + "integrity": "sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2", + "webcrypto-core": "^1.8.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "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==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", + "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-inject/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.34.48", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz", + "integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==", + "license": "MIT", + "peer": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.1.1.tgz", + "integrity": "sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.1" + } + }, + "node_modules/@smithy/abort-controller": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.8.tgz", + "integrity": "sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.6.tgz", + "integrity": "sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.3.8", + "@smithy/types": "^4.12.0", + "@smithy/util-config-provider": "^4.2.0", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "3.23.3", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.3.tgz", + "integrity": "sha512-5IETfbqrTuGs0fC22ZnTW6df+PHlrWpSbAbySzTozsUROWPiOXDIWt1Y4dCDzhJUQ6H3ig/dFOZaEeLsTjNGRQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^4.2.9", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-stream": "^4.5.13", + "@smithy/util-utf8": "^4.2.0", + "@smithy/uuid": "^1.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.8.tgz", + "integrity": "sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.3.8", + "@smithy/property-provider": "^4.2.8", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.9.tgz", + "integrity": "sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.3.8", + "@smithy/querystring-builder": "^4.2.8", + "@smithy/types": "^4.12.0", + "@smithy/util-base64": "^4.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/hash-node": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.8.tgz", + "integrity": "sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "@smithy/util-buffer-from": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.8.tgz", + "integrity": "sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz", + "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.8.tgz", + "integrity": "sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "4.4.17", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.17.tgz", + "integrity": "sha512-QP8wuZ7iSNEQ4/HyihTHlDUlQ3eBrCo+HoMm8l2gPcNrR4TA1RCC10jR7IyCnn3ASTrUwEnRaQ062vFC2/eYJw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.23.3", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-middleware": "^4.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "4.4.34", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.34.tgz", + "integrity": "sha512-ROmCX/ev7ryOzgsQ6dnJ46gbVSrvR2HX7ioxkfXlrgfKEMMOUCWgl/OMOi7PZn95CXTxMMNJTbP3nkvWGFTz+w==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.3.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/service-error-classification": "^4.2.8", + "@smithy/smithy-client": "^4.11.6", + "@smithy/types": "^4.12.0", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/uuid": "^1.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.9.tgz", + "integrity": "sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.8.tgz", + "integrity": "sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/node-config-provider": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.8.tgz", + "integrity": "sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.10.tgz", + "integrity": "sha512-u4YeUwOWRZaHbWaebvrs3UhwQwj+2VNmcVCwXcYTvPIuVyM7Ex1ftAj+fdbG/P4AkBwLq/+SKn+ydOI4ZJE9PA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^4.2.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/querystring-builder": "^4.2.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/property-provider": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.8.tgz", + "integrity": "sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/protocol-http": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.8.tgz", + "integrity": "sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.8.tgz", + "integrity": "sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "@smithy/util-uri-escape": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/querystring-parser": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.8.tgz", + "integrity": "sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.8.tgz", + "integrity": "sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.3.tgz", + "integrity": "sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.8.tgz", + "integrity": "sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^4.2.0", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", + "@smithy/util-hex-encoding": "^4.2.0", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-uri-escape": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/smithy-client": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.11.6.tgz", + "integrity": "sha512-g9FNlCTfQzkSpHW3ILOm+TWZfXuOj2UcrNWNBHLnY3Ch+67mLVmiu3fGWPWbs1XiRK174q5tGphnPCTHvImQUA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.23.3", + "@smithy/middleware-endpoint": "^4.4.17", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", + "@smithy/util-stream": "^4.5.13", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.12.0.tgz", + "integrity": "sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/url-parser": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.8.tgz", + "integrity": "sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^4.2.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-base64": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.0.tgz", + "integrity": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-body-length-browser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz", + "integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz", + "integrity": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz", + "integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-config-provider": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz", + "integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "4.3.33", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.33.tgz", + "integrity": "sha512-VutP/lyBWaTNUzNjI+NC3Kwts4Grhb8CTUyGZNQadf5lujqNy2IIM739D31qplSdbxqYBLOPvMXwy4CIKOArrg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^4.2.8", + "@smithy/smithy-client": "^4.11.6", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "4.2.36", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.36.tgz", + "integrity": "sha512-x73FjvOgG8XBtxu4auMnMDhLi6bUVBLHgNAv8xU0noDGks0KF59JNSzgVQ0oOSuf/D6pVJ5tMEkajwz6IavBUg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^4.4.6", + "@smithy/credential-provider-imds": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/property-provider": "^4.2.8", + "@smithy/smithy-client": "^4.11.6", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-endpoints": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.8.tgz", + "integrity": "sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.3.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-hex-encoding": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz", + "integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-middleware": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.8.tgz", + "integrity": "sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-retry": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.8.tgz", + "integrity": "sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^4.2.8", + "@smithy/types": "^4.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-stream": { + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.13.tgz", + "integrity": "sha512-ZJQh++mmjO7JiWAW4SdWFrsde1VE038g4uGtkTlvCGcpytMLsxIAg9o9blorLYaQG47EfY9QjLP38od88NLL8w==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/node-http-handler": "^4.4.10", + "@smithy/types": "^4.12.0", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-buffer-from": "^4.2.0", + "@smithy/util-hex-encoding": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-uri-escape": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz", + "integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.0.tgz", + "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/uuid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.0.tgz", + "integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@stablelib/binary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", + "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", + "license": "MIT", + "dependencies": { + "@stablelib/int": "^1.0.1" + } + }, + "node_modules/@stablelib/int": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", + "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==", + "license": "MIT" + }, + "node_modules/@stablelib/random": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.0.tgz", + "integrity": "sha512-G9vwwKrNCGMI/uHL6XeWe2Nk4BuxkYyWZagGaDU9wrsuV+9hUwNI1lok2WVo8uJDa2zx7ahNwN7Ij983hOUFEw==", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.0", + "@stablelib/wipe": "^1.0.0" + } + }, + "node_modules/@stablelib/wipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", + "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==", + "license": "MIT" + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true + }, + "node_modules/@testing-library/react": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.1.tgz", + "integrity": "sha512-gr4KtAWqIOQoucWYD/f6ki+j5chXfcPc74Col/6poTyqTmn7zRmodWahWRCp8tYd+GMqBonw6hstNzqjbs6gjw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tradetrust-tt/dnsprove": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@tradetrust-tt/dnsprove/-/dnsprove-2.18.0.tgz", + "integrity": "sha512-UgcwV17hZSSBW5oDb+DUtXle5XdBRWXURSASkr207PYjCxZOhZV88KHJi3PB45UgtUCbtvrJK7czSsgDNnpRtg==", + "license": "Apache-2.0", + "dependencies": { + "axios": "1.7.2", + "debug": "^4.3.1", + "runtypes": "^6.3.0" + }, + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@tradetrust-tt/document-store": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@tradetrust-tt/document-store/-/document-store-4.1.1.tgz", + "integrity": "sha512-+gIR+icfbJOHVNXTc6D1Fo4jdwGRboZqUek/YN+ThXIaLaUP1dvD85tnEz63Nu4LfiDcjYld0aVXOfKsnCJ+yw==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@tradetrust-tt/ethers-aws-kms-signer": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@tradetrust-tt/ethers-aws-kms-signer/-/ethers-aws-kms-signer-2.1.4.tgz", + "integrity": "sha512-bwsPF9TOlkXUICwUIt3FJCBQZ8zJTbT3AlPdj+7dGEgPTY6sAH71BzFYFQ1aJnZht1Sww6y8ix14FK4M54lRsQ==", + "license": "MIT", + "dependencies": { + "@aws-sdk/client-kms": "^3.830.0", + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@types/node": "^18.19.112", + "asn1.js": "^5.4.1", + "bn.js": "^5.2.2", + "debug": "^4.4.1" + }, + "engines": { + "node": ">=18.17.0" + } + }, + "node_modules/@tradetrust-tt/token-registry": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@tradetrust-tt/token-registry/-/token-registry-5.5.1.tgz", + "integrity": "sha512-yxOdjRLSI0fPptFbicYpnb/fn4Ngbi/LuGDCQKL0vb7PLCvhT8DLpiAFbFs0cc+QAb439lnZjhPg+UbWQHufRA==", + "license": "Apache-2.0", + "dependencies": { + "ethers": "^6.13.4" + } + }, + "node_modules/@tradetrust-tt/token-registry-v4": { + "name": "@tradetrust-tt/token-registry", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/@tradetrust-tt/token-registry/-/token-registry-4.16.0.tgz", + "integrity": "sha512-B5l/WtOL72/836lAUnRvHlr2IVyUwmMBAARGbCuMW6/2nHdFE/v2uDpEuIWsSjqGWLfvGHnPkYJazKVkXZf8yQ==", + "license": "Apache-2.0", + "dependencies": { + "@typechain/ethers-v5": "10.2.1" + }, + "peerDependencies": { + "ethers": ">=5.0.8" + } + }, + "node_modules/@tradetrust-tt/token-registry-v5": { + "name": "@tradetrust-tt/token-registry", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@tradetrust-tt/token-registry/-/token-registry-5.5.1.tgz", + "integrity": "sha512-yxOdjRLSI0fPptFbicYpnb/fn4Ngbi/LuGDCQKL0vb7PLCvhT8DLpiAFbFs0cc+QAb439lnZjhPg+UbWQHufRA==", + "license": "Apache-2.0", + "dependencies": { + "ethers": "^6.13.4" + } + }, + "node_modules/@tradetrust-tt/token-registry-v5/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@tradetrust-tt/token-registry-v5/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@tradetrust-tt/token-registry-v5/node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@tradetrust-tt/token-registry-v5/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" + }, + "node_modules/@tradetrust-tt/token-registry-v5/node_modules/ethers": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.16.0.tgz", + "integrity": "sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "22.7.5", + "aes-js": "4.0.0-beta.5", + "tslib": "2.7.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tradetrust-tt/token-registry-v5/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/@tradetrust-tt/token-registry-v5/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/@tradetrust-tt/token-registry-v5/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@tradetrust-tt/token-registry/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@tradetrust-tt/token-registry/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@tradetrust-tt/token-registry/node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@tradetrust-tt/token-registry/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" + }, + "node_modules/@tradetrust-tt/token-registry/node_modules/ethers": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.16.0.tgz", + "integrity": "sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "22.7.5", + "aes-js": "4.0.0-beta.5", + "tslib": "2.7.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tradetrust-tt/token-registry/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/@tradetrust-tt/token-registry/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/@tradetrust-tt/token-registry/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@tradetrust-tt/tradetrust": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/@tradetrust-tt/tradetrust/-/tradetrust-6.10.2.tgz", + "integrity": "sha512-4zj4zlsrrQiUJQxvl4N8Pa4cLHtFtFIs0lMg6daP/gRJXIn1QWD0Kl4mQ5FsjuopeM7JOBX/xok22SmElEtT5w==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@govtechsg/jsonld": "^0.1.1", + "@trustvc/w3c-vc": "^1.2.17", + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "cross-fetch": "^4.0.0", + "debug": "^4.3.4", + "ethers": "^5.8.0", + "flatley": "^5.2.0", + "js-base64": "^3.7.7", + "js-sha3": "^0.9.3", + "lodash": "^4.17.21", + "runtypes": "^6.7.0", + "uuid": "^9.0.1", + "validator": "^13.11.0" + }, + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/@trustvc/w3c-context": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/@trustvc/w3c-context/-/w3c-context-1.2.13.tgz", + "integrity": "sha512-Qii0ExOuTZhBirmzPhdX0o0R1P8DOc8UYEmU+XQ5ouOmQNOqyMkikS0IvFXTb7LmUD3I2d8pT6BMKyY2S8Ac/A==", + "license": "Apache-2.0", + "dependencies": { + "did-resolver": "^4.1.0", + "jsonld-signatures": "^7.0.0" + }, + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/@trustvc/w3c-credential-status": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/@trustvc/w3c-credential-status/-/w3c-credential-status-1.2.13.tgz", + "integrity": "sha512-GNT+r00pscDdjSnTEbH3XQgidKKPblurZnWtCu8OydDilXkMH4p7Lc7JrvvCoIn6W2Iwv0em6107gB7rsW3yXA==", + "license": "Apache-2.0", + "dependencies": { + "@trustvc/w3c-context": "^1.2.13", + "@trustvc/w3c-issuer": "^1.2.4", + "base64url-universal": "^2.0.0", + "pako": "^2.1.0" + }, + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/@trustvc/w3c-issuer": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@trustvc/w3c-issuer/-/w3c-issuer-1.2.4.tgz", + "integrity": "sha512-BRxdb+VxKVj3N/ukivpPF0oP1dvlMOSZjoOLF+F4jMsJVcs2+8QIJbvCQJNiB6I+ji6On4uvvRPOmc8tYhOt+w==", + "license": "Apache-2.0", + "dependencies": { + "@mattrglobal/bls12381-key-pair": "^1.2.1", + "bip39": "^3.1.0", + "did-resolver": "^4.1.0", + "multiformats": "^9.9.0", + "web-did-resolver": "^2.0.27" + }, + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/@trustvc/w3c-vc": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/@trustvc/w3c-vc/-/w3c-vc-1.2.17.tgz", + "integrity": "sha512-R7dz16D5mmb7tsPt71o/XAqaKaNA0J0du0ZOa16i7x3I9yPCx11jwCYdb0NYzsCXrWa318mqS2u7MCtzvEVBBQ==", + "license": "Apache-2.0", + "dependencies": { + "@mattrglobal/jsonld-signatures-bbs": "^1.2.0", + "@trustvc/w3c-credential-status": "^1.2.13", + "@trustvc/w3c-issuer": "^1.2.4", + "did-resolver": "^4.1.0", + "jsonld": "^6.0.0", + "jsonld-signatures": "7.0.0", + "uuid": "^10.0.0" + }, + "engines": { + "node": ">=18.x" + }, + "peerDependencies": { + "jsonld": "^6.0.0" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/@trustvc/w3c-vc/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/did-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", + "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==", + "license": "Apache-2.0" + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/jsonld-signatures": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jsonld-signatures/-/jsonld-signatures-7.0.0.tgz", + "integrity": "sha512-J/nA+llcYYjErPHG9WFpXvR82TOg5fbHk/7rXbx4Ts854DPReaKAAd0hAZ+s5/P2WIIAZPIHCqA+iz1QrOqeiQ==", + "license": "BSD-3-Clause", + "dependencies": { + "base64url": "^3.0.1", + "crypto-ld": "^3.7.0", + "jsonld": "^4.0.1", + "node-forge": "^0.10.0", + "security-context": "^4.0.0", + "serialize-error": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/jsonld-signatures/node_modules/jsonld": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-4.0.1.tgz", + "integrity": "sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A==", + "license": "BSD-3-Clause", + "dependencies": { + "canonicalize": "^1.0.1", + "lru-cache": "^5.1.1", + "object.fromentries": "^2.0.2", + "rdf-canonize": "^2.0.1", + "request": "^2.88.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/rdf-canonize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", + "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", + "license": "BSD-3-Clause", + "dependencies": { + "semver": "^6.3.0", + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/serialize-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", + "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@tradetrust-tt/tradetrust/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/@tradetrust-tt/tt-verify": { + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@tradetrust-tt/tt-verify/-/tt-verify-9.6.2.tgz", + "integrity": "sha512-G6XB/fhzIDAc+p07/cDCVCNYgKxx9x5e2HwOORPS8kMkimoB4FXNoWlV8GMXcbzjIjU4frI2KEL54y8TA8+Wpw==", + "license": "Apache-2.0", + "dependencies": { + "@tradetrust-tt/dnsprove": "^2.18.0", + "@tradetrust-tt/document-store": "^4.1.1", + "@tradetrust-tt/token-registry": "^5.5.0", + "@tradetrust-tt/tradetrust": "^6.10.1", + "axios": "^1.7.2", + "debug": "^4.3.1", + "did-resolver": "^3.1.0", + "ethers": "^5.8.0", + "ethr-did-resolver": "^4.3.3", + "node-cache": "^5.1.2", + "runtypes": "^6.3.0", + "web-did-resolver": "^2.0.4" + }, + "engines": { + "node": ">=18.x" + }, + "peerDependencies": { + "ethers": "^5.7.2" + } + }, + "node_modules/@trustvc/decentralized-renderer-react-components": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@trustvc/decentralized-renderer-react-components/-/decentralized-renderer-react-components-1.0.3.tgz", + "integrity": "sha512-Abpu369LOCEXdYGLQftyE5Xp9PZ+m90Cmik6thiHKH+21lsX3heV/EB+b9P8YWVM6SDEBiRn23TaXhv+3Z+MEg==", + "license": "Apache-2.0", + "dependencies": { + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", + "@fortawesome/fontawesome-svg-core": "^6.7.2", + "@fortawesome/free-solid-svg-icons": "^6.7.2", + "@fortawesome/react-fontawesome": "^0.2.2", + "@peculiar/webcrypto": "^1.5.0", + "@trustvc/trustvc": "^2.5.2", + "crypto-browserify": "^3.12.1", + "debug": "^4.4.0", + "os-browserify": "^0.3.0", + "penpal": "^6.2.2", + "penpal-v4": "npm:penpal@^4.1.1", + "react-pdf": "^7.7.3", + "stream-browserify": "^3.0.0", + "ts-jest": "^29.2.5", + "typesafe-actions": "^5.1.0", + "vm-browserify": "^1.1.2" + }, + "engines": { + "node": ">=22.x" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@trustvc/document-store": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@trustvc/document-store/-/document-store-1.0.3.tgz", + "integrity": "sha512-YIECQwcoreIfyTbol1/5u9CGK6mbg0Q0bSN2/Ks388zLus1IXELWK5EHYuyrFPbb9d8ajsvz7m+ySsMIY9574w==", + "license": "Apache-2.0" + }, + "node_modules/@trustvc/trustvc": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@trustvc/trustvc/-/trustvc-2.8.0.tgz", + "integrity": "sha512-9ALOVQkkNFc7Ngx/Lm/FMP6kqWpWI6wTSSNeDrb81vaRl51uQ8RcUW4ErFHNrfGJkiR0WrjxnGEHNRFSnWlYtw==", + "license": "Apache-2.0", + "dependencies": { + "@tradetrust-tt/dnsprove": "^2.18.0", + "@tradetrust-tt/ethers-aws-kms-signer": "^2.1.4", + "@tradetrust-tt/token-registry-v4": "npm:@tradetrust-tt/token-registry@^4.16.0", + "@tradetrust-tt/token-registry-v5": "npm:@tradetrust-tt/token-registry@^5.5.0", + "@tradetrust-tt/tradetrust": "^6.10.2", + "@tradetrust-tt/tt-verify": "^9.6.0", + "@trustvc/document-store": "^1.0.3", + "@trustvc/w3c": "^2.0.0", + "@trustvc/w3c-context": "^2.0.0", + "@trustvc/w3c-credential-status": "^2.0.0", + "@trustvc/w3c-issuer": "^2.0.0", + "@trustvc/w3c-vc": "^2.0.0", + "ethers": "^5.8.0", + "ethersV6": "npm:ethers@^6.14.4", + "js-sha3": "^0.9.3", + "node-fetch": "^2.7.0", + "ts-chacha20": "^1.2.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "~4.40.0" + }, + "peerDependencies": { + "ethers": "^5.8.0" + } + }, + "node_modules/@trustvc/trustvc/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@trustvc/w3c": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@trustvc/w3c/-/w3c-2.0.2.tgz", + "integrity": "sha512-xWgyhdVjw1mR0GdLjzeoH1s4jseaEJpmJ2ndM0Xcn0zCzqeUql2C1ijnb0Sb/76R7XLUuc0hgAo1CzLp27lQKw==", + "license": "Apache-2.0", + "dependencies": { + "@trustvc/w3c-context": "^2.0.2", + "@trustvc/w3c-credential-status": "^2.0.2", + "@trustvc/w3c-issuer": "^2.0.2", + "@trustvc/w3c-vc": "^2.0.2" + }, + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@trustvc/w3c-context": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@trustvc/w3c-context/-/w3c-context-2.0.2.tgz", + "integrity": "sha512-2DM73n1z2FXML9/suGHea6BcJqs7GKiJsvpozRf6lE9d3ZyFRmCd6H84f7Z7zGvacuLXMRnPX2A9DKE0ETs8HA==", + "license": "Apache-2.0", + "dependencies": { + "did-resolver": "^4.1.0", + "jsonld-signatures": "^11.5.0" + }, + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@trustvc/w3c-context/node_modules/did-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", + "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==", + "license": "Apache-2.0" + }, + "node_modules/@trustvc/w3c-credential-status": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@trustvc/w3c-credential-status/-/w3c-credential-status-2.0.2.tgz", + "integrity": "sha512-8f5sHoDAT8YqLlHm82t/wh1HrZdmR3PgRGfDcgbKWrJtA+X2769kk6qVXCNP6tq1Ghyqe8v/HLortrXp9JSdGw==", + "license": "Apache-2.0", + "dependencies": { + "@trustvc/w3c-context": "^2.0.2", + "@trustvc/w3c-issuer": "^2.0.2", + "base64url-universal": "^2.0.0", + "pako": "^2.1.0" + }, + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@trustvc/w3c-issuer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@trustvc/w3c-issuer/-/w3c-issuer-2.0.2.tgz", + "integrity": "sha512-NDtEcGV7ryuWHbaX3hwlz2cN/hhDWHzA+D2AF56I7teNfev+X62pro+HrXYAa3EclPET7BI+fYmLgh61/DAl7w==", + "license": "Apache-2.0", + "dependencies": { + "@digitalbazaar/bls12-381-multikey": "^2.1.0", + "@digitalbazaar/ecdsa-multikey": "^1.8.0", + "@mattrglobal/bls12381-key-pair": "^1.2.1", + "bip39": "^3.1.0", + "did-resolver": "^4.1.0", + "multiformats": "^9.9.0", + "web-did-resolver": "^2.0.27" + }, + "engines": { + "node": ">=18.x" + } + }, + "node_modules/@trustvc/w3c-issuer/node_modules/did-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", + "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==", + "license": "Apache-2.0" + }, + "node_modules/@trustvc/w3c-vc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@trustvc/w3c-vc/-/w3c-vc-2.0.2.tgz", + "integrity": "sha512-3A488DgukqrKXDSNdtZE02tOfj6V9C6uRJAEKEnMiaUevxNzFO9TFpqXkeOdxNhg9yHEH7m68b6SqfwU/tbVXQ==", + "license": "Apache-2.0", + "dependencies": { + "@digitalbazaar/bbs-2023-cryptosuite": "^2.0.1", + "@digitalbazaar/bls12-381-multikey": "^2.1.0", + "@digitalbazaar/data-integrity": "^2.5.0", + "@digitalbazaar/ecdsa-multikey": "^1.8.0", + "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "^3.4.1", + "@mattrglobal/jsonld-signatures-bbs": "^1.2.0", + "@trustvc/w3c-credential-status": "^2.0.2", + "@trustvc/w3c-issuer": "^2.0.2", + "base64url-universal": "^2.0.0", + "cbor": "^9.0.2", + "did-resolver": "^4.1.0", + "jsonld": "^6.0.0", + "jsonld-signatures": "^11.5.0", + "jsonld-signatures-v7": "npm:jsonld-signatures@7.0.0", + "uuid": "^10.0.0" + }, + "engines": { + "node": ">=18.x" + }, + "peerDependencies": { + "jsonld": "^6.0.0" + } + }, + "node_modules/@trustvc/w3c-vc/node_modules/did-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", + "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==", + "license": "Apache-2.0" + }, + "node_modules/@trustvc/w3c-vc/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@typechain/ethers-v5": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz", + "integrity": "sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "@ethersproject/abi": "^5.0.0", + "@ethersproject/providers": "^5.0.0", + "ethers": "^5.1.3", + "typechain": "^8.1.1", + "typescript": ">=4.3.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "peer": 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==", + "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.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "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==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "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==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.19.130", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", + "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", + "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "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==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "peer": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", + "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/type-utils": "8.53.0", + "@typescript-eslint/utils": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.53.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.0.tgz", + "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz", + "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.53.0", + "@typescript-eslint/types": "^8.53.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", + "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz", + "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz", + "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/utils": "8.53.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", + "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", + "dev": true, + "dependencies": { + "@typescript-eslint/project-service": "8.53.0", + "@typescript-eslint/tsconfig-utils": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", + "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", + "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.53.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC", + "peer": true + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", "cpu": [ "riscv64" ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@vitest/coverage-v8": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.9.tgz", + "integrity": "sha512-Z2cOr0ksM00MpEfyVE8KXIYPEcBFxdbLSs56L8PO0QQMxt/6bDj45uQfxoc96v05KW3clk7vvgP0qfDit9DmfQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^0.2.3", + "debug": "^4.3.7", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.12", + "magicast": "^0.3.5", + "std-env": "^3.8.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "2.1.9", + "vitest": "2.1.9" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", + "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", + "dev": true, + "dependencies": { + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", + "dev": true, + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", + "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", + "dev": true, + "dependencies": { + "@vitest/utils": "2.1.9", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", + "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", + "dev": true, + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", + "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", + "dev": true, + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/ui": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-2.1.9.tgz", + "integrity": "sha512-izzd2zmnk8Nl5ECYkW27328RbQ1nKvkm6Bb5DAaz1Gk59EbLkiCMa6OLT0NoaAYTjOFS6N+SMYW1nh4/9ljPiw==", + "dev": true, + "dependencies": { + "@vitest/utils": "2.1.9", + "fflate": "^0.8.2", + "flatted": "^3.3.1", + "pathe": "^1.1.2", + "sirv": "^3.0.0", + "tinyglobby": "^0.2.10", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "2.1.9" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", + "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", + "dev": true, + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC", + "optional": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "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==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", + "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", + "license": "ISC", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "license": "MIT" + }, + "node_modules/asn1js": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz", + "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==", + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/autoprefixer": { + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-jest": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.3.0.tgz", + "integrity": "sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/transform": "30.3.0", + "@types/babel__core": "^7.20.5", + "babel-plugin-istanbul": "^7.0.1", + "babel-preset-jest": "30.3.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0 || ^8.0.0-0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", + "license": "BSD-3-Clause", + "peer": true, + "workspaces": [ + "test/babel-8" + ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-instrument": "^6.0.2", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "peer": 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/babel-plugin-istanbul/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==", + "license": "ISC", + "peer": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.3.0.tgz", + "integrity": "sha512-+TRkByhsws6sfPjVaitzadk1I0F5sPvOVUH5tyTSzhePpsGIVrdeunHSw/C36QeocS95OOk8lunc4rlu5Anwsg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/babel__core": "^7.20.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-macros/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@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-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.3.0.tgz", + "integrity": "sha512-6ZcUbWHC+dMz2vfzdNwi87Z1gQsLNK2uLuK1Q89R11xdvejcivlYYwDlEv0FHX3VwEXpbBQ9uufB/MUNpZGfhQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "30.3.0", + "babel-preset-current-node-syntax": "^1.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0 || ^8.0.0-beta.1" + } + }, + "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==" + }, + "node_modules/base-x": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base58-universal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base58-universal/-/base58-universal-2.0.0.tgz", + "integrity": "sha512-BgkgF8zVLOAygszG4W8NkLm7iXrw80VYAOcedrzANrIhS14+4W6zVqjyGTFUBM/FpqkHUt8aAYd4DbBBfn3zKg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=14" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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" + } + ], + "license": "MIT" + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/base64url-universal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64url-universal/-/base64url-universal-2.0.0.tgz", + "integrity": "sha512-6Hpg7EBf3t148C3+fMzjf+CHnADVDafWzlJUXAqqqbm4MKNXbsoPdOkWeRTjNlkYG7TpyjIpRO1Gk0SnsFD1rw==", + "license": "BSD-3-Clause", + "dependencies": { + "base64url": "^3.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.14", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz", + "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "license": "ISC", + "dependencies": { + "@noble/hashes": "^1.2.0" + } + }, + "node_modules/bn.js": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.3.tgz", + "integrity": "sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==", + "license": "MIT" + }, + "node_modules/bowser": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", + "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, + "node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "license": "MIT", + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.5.tgz", + "integrity": "sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==", + "license": "ISC", + "dependencies": { + "bn.js": "^5.2.2", + "browserify-rsa": "^4.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.6.1", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.9", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-sign/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserify-zlib/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true, + "license": "(MIT AND Zlib)" + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "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": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "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==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "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==", + "license": "MIT", + "peer": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "license": "MIT" + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "license": "MIT", + "optional": true + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001764", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", + "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", + "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/canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==", + "license": "Apache-2.0" + }, + "node_modules/canvas": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", + "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "nan": "^2.17.0", + "simple-get": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.0" + }, + "node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "license": "MIT", + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/cborg": { + "version": "4.5.8", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.5.8.tgz", + "integrity": "sha512-6/viltD51JklRhq4L7jC3zgy6gryuG5xfZ3kzpE+PravtyeQLeQmCYLREhQH7pWENg5pY4Yu/XCd6a7dKScVlw==", + "license": "Apache-2.0", + "bin": { + "cborg": "lib/bin.js" + } + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "license": "MIT", + "optional": true + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/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/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cipher-base": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", + "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cjs-module-lexer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", + "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==", + "license": "MIT", + "peer": true + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "optional": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "license": "ISC", "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">= 10" + } }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", - "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", - "cpu": [ - "s390x" - ], - "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==", + "license": "ISC", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/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==", + "license": "MIT", + "peer": true + }, + "node_modules/cliui/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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==", + "license": "MIT", + "peer": 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/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "peer": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "license": "MIT", + "peer": 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==", + "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==" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", "optional": true, - "os": [ - "linux" - ] + "bin": { + "color-support": "bin.js" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", - "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "license": "MIT", + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-commands": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-3.0.2.tgz", + "integrity": "sha512-ac6PdCtdR6q7S3HN+JiVLIWGHY30PRYIEl2qPo+FuEuzwAUk0UYyimrngrg7FvF/mCr4Jgoqv5ZnHZgads50rw==", + "license": "MIT", "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "array-back": "^4.0.1" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", - "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/command-line-commands/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "license": "MIT", "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">=8" + } }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", - "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", - "cpu": [ - "x64" - ], + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "license": "MIT", + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/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==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/command-line-usage/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==", + "license": "MIT" + }, + "node_modules/command-line-usage/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==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/command-line-usage/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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/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==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, - "optional": true, - "os": [ - "openbsd" - ] + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC", + "optional": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true, + "license": "MIT" + }, + "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==" + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", - "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "openharmony" - ] + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "license": "MIT" }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", - "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", - "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", - "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", - "cpu": [ - "x64" - ], + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, - "optional": true, - "os": [ - "win32" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", - "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] + "node_modules/cross-fetch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } }, - "node_modules/@testing-library/dom": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", - "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", - "dev": true, - "peer": true, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "picocolors": "1.1.1", - "pretty-format": "^27.0.2" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=18" + "node": ">= 8" } }, - "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", - "dev": true, + "node_modules/crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "license": "MIT", "dependencies": { - "@adobe/css-tools": "^4.4.0", - "aria-query": "^5.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "picocolors": "^1.1.1", - "redent": "^3.0.0" + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" }, "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", - "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "node_modules/crypto-ld": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/crypto-ld/-/crypto-ld-3.9.0.tgz", + "integrity": "sha512-PFE7V6A2QNnUp6iiPVEZI4p8wsztkEWLbY1BAXVnclm/aw4KGwpJ+1Ds4vQUCJ5BsWxj15fwE5rHQ8AWaWB2nw==", + "license": "BSD-3-Clause", + "dependencies": { + "base64url-universal": "^1.0.1", + "bs58": "^4.0.1", + "node-forge": "~0.10.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8.3.0" + }, + "optionalDependencies": { + "sodium-native": "^3.2.0" + } + }, + "node_modules/crypto-ld/node_modules/base64url-universal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/base64url-universal/-/base64url-universal-1.1.0.tgz", + "integrity": "sha512-WyftvZqye29YQ10ZnuiBeEj0lk8SN8xHU9hOznkLc85wS1cLTp6RpzlMrHxMPD9nH7S55gsBqMqgGyz93rqmkA==", + "license": "BSD-3-Clause", + "dependencies": { + "base64url": "^3.0.0" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "dev": true }, - "node_modules/@testing-library/react": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.1.tgz", - "integrity": "sha512-gr4KtAWqIOQoucWYD/f6ki+j5chXfcPc74Col/6poTyqTmn7zRmodWahWRCp8tYd+GMqBonw6hstNzqjbs6gjw==", + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.12.5" + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" }, "engines": { "node": ">=18" + } + }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" }, - "peerDependencies": { - "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0 || ^19.0.0", - "@types/react-dom": "^18.0.0 || ^19.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=0.10" } }, - "node_modules/@testing-library/user-event": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", - "dev": true, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" + "node": ">= 12" } }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", "dev": true, - "peer": true + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } }, - "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, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "dev": true, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dependencies": { - "@babel/types": "^7.0.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" } }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", - "dev": true, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dependencies": { - "@babel/types": "^7.28.2" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.15", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", - "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", "dev": true }, - "node_modules/@types/react": { - "version": "18.3.27", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", - "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", - "dev": true, + "node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "license": "MIT", + "optional": true, "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.2.2" + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/react-dom": { - "version": "18.3.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", - "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", - "dev": true, + "node_modules/dedent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "license": "MIT", + "peer": true, "peerDependencies": { - "@types/react": "^18.0.0" + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", - "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==", + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/type-utils": "8.53.0", - "@typescript-eslint/utils": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", - "ignore": "^7.0.5", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" - }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.53.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "node": ">=6" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=4.0.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.0.tgz", - "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", - "dev": true, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": 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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", - "debug": "^4.4.3" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz", - "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==", - "dev": true, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.53.0", - "@typescript-eslint/types": "^8.53.0", - "debug": "^4.4.3" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", - "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT", + "optional": true + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/did-resolver": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-3.2.2.tgz", + "integrity": "sha512-Eeo2F524VM5N3W4GwglZrnul2y6TLTwMQP3In62JdG34NZoqihYyOZLk+5wUW8sSgvIYIcJM8Dlt3xsdKZZ3tg==", + "license": "Apache-2.0" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "license": "MIT" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0" + "esutils": "^2.0.2" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=0.10.0" } }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz", - "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==", + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "peer": true + }, + "node_modules/domain-browser": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz", + "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==", "dev": true, + "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "url": "https://bevry.me/fund" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz", - "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==", - "dev": true, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/utils": "8.53.0", - "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "node": ">= 0.4" } }, - "node_modules/@typescript-eslint/types": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", - "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", - "dev": true, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==" + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "license": "MIT" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "license": "MIT", + "peer": true, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", - "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", + "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==" + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, - "dependencies": { - "@typescript-eslint/project-service": "8.53.0", - "@typescript-eslint/tsconfig-utils": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", - "debug": "^4.4.3", - "minimatch": "^9.0.5", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.4.0" - }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=0.12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "is-arrayish": "^0.2.1" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, + "node_modules/es-abstract": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", "dependencies": { - "brace-expansion": "^2.0.1" + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/@typescript-eslint/utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", - "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0" - }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "node": ">= 0.4" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", - "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", + "node_modules/es-iterator-helpers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", + "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.53.0", - "eslint-visitor-keys": "^4.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.1", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "safe-array-concat": "^1.1.3" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">= 0.4" } }, - "node_modules/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", - "dev": true, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dependencies": { - "@babel/core": "^7.28.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" + "es-errors": "^1.3.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + "node": ">= 0.4" } }, - "node_modules/@vitest/coverage-v8": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.9.tgz", - "integrity": "sha512-Z2cOr0ksM00MpEfyVE8KXIYPEcBFxdbLSs56L8PO0QQMxt/6bDj45uQfxoc96v05KW3clk7vvgP0qfDit9DmfQ==", - "dev": true, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@bcoe/v8-coverage": "^0.2.3", - "debug": "^4.3.7", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.12", - "magicast": "^0.3.5", - "std-env": "^3.8.0", - "test-exclude": "^7.0.1", - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "2.1.9", - "vitest": "2.1.9" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } + "engines": { + "node": ">= 0.4" } }, - "node_modules/@vitest/expect": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", - "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, "dependencies": { - "@vitest/spy": "2.1.9", - "@vitest/utils": "2.1.9", - "chai": "^5.1.2", - "tinyrainbow": "^1.2.0" + "hasown": "^2.0.2" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">= 0.4" } }, - "node_modules/@vitest/pretty-format": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", - "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", - "dev": true, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dependencies": { - "tinyrainbow": "^1.2.0" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@vitest/runner": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", - "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", "dev": true, - "dependencies": { - "@vitest/utils": "2.1.9", - "pathe": "^1.1.2" + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" } }, - "node_modules/@vitest/snapshot": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", - "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", - "dev": true, - "dependencies": { - "@vitest/pretty-format": "2.1.9", - "magic-string": "^0.30.12", - "pathe": "^1.1.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" } }, - "node_modules/@vitest/spy": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", - "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", - "dev": true, - "dependencies": { - "tinyspy": "^3.0.2" + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@vitest/ui": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-2.1.9.tgz", - "integrity": "sha512-izzd2zmnk8Nl5ECYkW27328RbQ1nKvkm6Bb5DAaz1Gk59EbLkiCMa6OLT0NoaAYTjOFS6N+SMYW1nh4/9ljPiw==", + "node_modules/eslint": { + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "dependencies": { - "@vitest/utils": "2.1.9", - "fflate": "^0.8.2", - "flatted": "^3.3.1", - "pathe": "^1.1.2", - "sirv": "^3.0.0", - "tinyglobby": "^0.2.10", - "tinyrainbow": "^1.2.0" + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.2", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://eslint.org/donate" }, "peerDependencies": { - "vitest": "2.1.9" + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/@vitest/utils": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", - "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", + "node_modules/eslint-config-prettier": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz", + "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==", "dev": true, - "dependencies": { - "@vitest/pretty-format": "2.1.9", - "loupe": "^3.1.2", - "tinyrainbow": "^1.2.0" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, - "funding": { - "url": "https://opencollective.com/vitest" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", "dev": true, + "engines": { + "node": ">=10" + }, "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.26", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz", + "integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==", "dev": true, - "engines": { - "node": ">= 14" + "peerDependencies": { + "eslint": ">=8.40" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://opencollective.com/eslint" } }, - "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==", + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "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==", + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "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==", + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "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==", + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "estraverse": "^5.1.0" }, "engines": { - "node": ">= 8" + "node": ">=0.10" } }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } }, - "node_modules/aria-query": { + "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "dependencies": { - "dequal": "^2.0.3" + "@types/estree": "^1.0.0" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ethers": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.8.0.tgz", + "integrity": "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "5.8.0", + "@ethersproject/abstract-provider": "5.8.0", + "@ethersproject/abstract-signer": "5.8.0", + "@ethersproject/address": "5.8.0", + "@ethersproject/base64": "5.8.0", + "@ethersproject/basex": "5.8.0", + "@ethersproject/bignumber": "5.8.0", + "@ethersproject/bytes": "5.8.0", + "@ethersproject/constants": "5.8.0", + "@ethersproject/contracts": "5.8.0", + "@ethersproject/hash": "5.8.0", + "@ethersproject/hdnode": "5.8.0", + "@ethersproject/json-wallets": "5.8.0", + "@ethersproject/keccak256": "5.8.0", + "@ethersproject/logger": "5.8.0", + "@ethersproject/networks": "5.8.0", + "@ethersproject/pbkdf2": "5.8.0", + "@ethersproject/properties": "5.8.0", + "@ethersproject/providers": "5.8.0", + "@ethersproject/random": "5.8.0", + "@ethersproject/rlp": "5.8.0", + "@ethersproject/sha2": "5.8.0", + "@ethersproject/signing-key": "5.8.0", + "@ethersproject/solidity": "5.8.0", + "@ethersproject/strings": "5.8.0", + "@ethersproject/transactions": "5.8.0", + "@ethersproject/units": "5.8.0", + "@ethersproject/wallet": "5.8.0", + "@ethersproject/web": "5.8.0", + "@ethersproject/wordlists": "5.8.0" + } + }, + "node_modules/ethersV6": { + "name": "ethers", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.16.0.tgz", + "integrity": "sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "22.7.5", + "aes-js": "4.0.0-beta.5", + "tslib": "2.7.0", + "ws": "8.17.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=14.0.0" } }, - "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", - "dev": true, + "node_modules/ethersV6/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" + "@noble/hashes": "1.3.2" }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethersV6/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">= 16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, + "node_modules/ethersV6/node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, + "undici-types": "~6.19.2" + } + }, + "node_modules/ethersV6/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" + }, + "node_modules/ethersV6/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/ethersV6/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/ethersV6/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "node_modules/ethr-did-registry": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/ethr-did-registry/-/ethr-did-registry-0.0.3.tgz", + "integrity": "sha512-4BPvMGkxAK9vTduCq6D5b8ZqjteD2cvDIPPriXP6nnmPhWKFSxypo+AFvyQ0omJGa0cGTR+dkdI/8jiF7U/qaw==", + "license": "Apache-2.0" + }, + "node_modules/ethr-did-resolver": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/ethr-did-resolver/-/ethr-did-resolver-4.3.5.tgz", + "integrity": "sha512-BQO7PQwuqqczK+4AWQhys/sgegDVIFr6+lSoSYXlIbG0oRH0l7PkSuf7VEFKclEJ3JlJ1t9kjDIdj7Ba7euTJg==", + "license": "Apache-2.0", + "dependencies": { + "@ethersproject/abi": "^5.1.0", + "@ethersproject/abstract-signer": "^5.1.0", + "@ethersproject/address": "^5.1.0", + "@ethersproject/basex": "^5.1.0", + "@ethersproject/bignumber": "^5.1.0", + "@ethersproject/contracts": "^5.1.0", + "@ethersproject/providers": "^5.1.0", + "@ethersproject/transactions": "^5.1.0", + "did-resolver": "^3.1.0", + "ethr-did-registry": "^0.0.3", + "querystring": "^0.2.1" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" + "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": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, + "node_modules/execa/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==", + "license": "ISC", + "peer": true + }, + "node_modules/exit-x": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" + "@jest/expect-utils": "30.3.0", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "license": "MIT", + "optional": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "optional": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "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.8" + }, "engines": { - "node": ">=12" + "node": ">=8.6.0" } }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "node_modules/fast-glob/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": ">= 0.4" + "node": ">= 6" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "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==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "node_modules/autoprefixer": { - "version": "10.4.23", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", - "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", - "dev": true, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "type": "github", + "url": "https://github.com/sponsors/fastify" }, { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fast-xml-parser": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.6.tgz", + "integrity": "sha512-QNI3sAvSvaOiaMl8FYU4trnEzCwiRr8XMWgAHzlrWpTSj+QaCSvOf1h82OEP1s4hiAXhnbXSyFWCf4ldZzZRVA==", + "funding": [ { "type": "github", - "url": "https://github.com/sponsors/ai" + "url": "https://github.com/sponsors/NaturalIntelligence" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "caniuse-lite": "^1.0.30001760", - "fraction.js": "^5.3.4", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" + "strnum": "^2.1.2" }, "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "fxparser": "src/cli/cli.js" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, "dependencies": { - "possible-typed-array-names": "^1.0.0" + "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==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^12.20 || >= 14.13" } }, - "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==", + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", "dev": true }, - "node_modules/baseline-browser-mapping": { - "version": "2.9.14", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz", - "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==", - "dev": true, - "bin": { - "baseline-browser-mapping": "dist/cli.js" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, "engines": { "node": ">=8" }, @@ -2460,109 +10208,128 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/figures/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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "fill-range": "^7.1.1" + "flat-cache": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=16.0.0" } }, - "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "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": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" - }, - "bin": { - "browserslist": "cli.js" + "dependencies": { + "to-regex-range": "^5.0.1" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=8" } }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "license": "MIT", + "dependencies": { + "array-back": "^3.0.1" + }, "engines": { - "node": ">=8" + "node": ">=4.0.0" } }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, "engines": { - "node": ">= 0.4" + "node": ">=16" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, + "node_modules/flatley": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/flatley/-/flatley-5.2.0.tgz", + "integrity": "sha512-vsb0/03uIHu7/3jRqABweblFUJMLokz1uMrcgFlvx6OAr6V3FiSic2iXeiJCj+cciTiQeumSDsIFAAnN1yvu4w==", + "license": "BSD-3-Clause", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" + "is-buffer": "^1.1.6" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dependencies": { + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -2571,251 +10338,328 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, "engines": { - "node": ">=6" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, "engines": { "node": ">= 6" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001764", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", - "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", - "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/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } }, - "node_modules/chai": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "license": "MIT", + "peer": true, "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=18" + "node": ">=6 <7 || >=8" } }, - "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, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "optional": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "minipass": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/check-error": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", - "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", - "dev": true, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC", + "optional": true + }, + "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==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 16" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 0.4" }, "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chokidar/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, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, "dependencies": { - "is-glob": "^4.0.1" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "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, + "node_modules/gauge/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==", + "license": "MIT", + "optional": true + }, + "node_modules/gauge/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==", + "license": "ISC", + "optional": true + }, + "node_modules/gauge/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==", + "license": "MIT", + "optional": true, "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "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/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, + "node_modules/gauge/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==", + "license": "MIT", + "optional": true, "dependencies": { - "delayed-stream": "~1.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", "engines": { - "node": ">= 6" + "node": ">= 0.4" } }, - "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/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==", + "engines": { + "node": ">=6.9.0" + } }, - "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/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==", + "license": "ISC", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, + "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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">=4" + "node": ">=8.0.0" } }, - "node_modules/cssstyle": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", - "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", - "dev": true, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dependencies": { - "@asamuzakjp/css-color": "^3.2.0", - "rrweb-cssom": "^0.8.0" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">= 0.4" } }, - "node_modules/cssstyle/node_modules/rrweb-cssom": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", - "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", - "dev": true - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "dev": true - }, - "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", - "dev": true, - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" - }, + "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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">=18" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -2824,86 +10668,96 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "assert-plus": "^1.0.0" + } + }, + "node_modules/git-config": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", + "integrity": "sha512-LidZlYZXWzVjS+M3TEwhtYBaYwLeOZrXci1tBgqp/vDdZTBMl02atvwb6G35L64ibscYoPnxfbwwUS+VZAISLA==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "iniparser": "~1.0.5" + } + }, + "node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">= 0.4" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "url": "https://github.com/sponsors/inspect-js" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.13.0" } }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dependencies": { - "ms": "^2.1.3" + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=6.0" + "node": ">=16 || 14 >=14.17" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } - }, - "node_modules/decimal.js": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", - "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", - "dev": true - }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", + "define-properties": "^1.2.1", "gopd": "^1.0.1" }, "engines": { @@ -2913,16 +10767,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "engines": { "node": ">= 0.4" }, @@ -2930,159 +10778,93 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, + "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==", + "license": "ISC", + "peer": true + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, "engines": { - "node": ">=0.4.0" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "license": "ISC", "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "dev": true, - "peer": true - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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.5.267", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", - "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", - "dev": true - }, - "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/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "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==", "engines": { - "node": ">=0.12" + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-abstract": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", - "dev": true, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" + "dunder-proto": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -3091,531 +10873,572 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-iterator-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", - "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", - "dev": true, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.1", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.1.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.3.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.5", - "safe-array-concat": "^1.1.3" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", - "dev": true + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "license": "ISC", + "optional": true }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, + "node_modules/hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.10" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "dev": true, "dependencies": { - "hasown": "^2.0.2" + "whatwg-encoding": "^3.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "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==" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 14" } }, - "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" }, "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, "engines": { - "node": ">=6" + "node": ">= 14" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, + "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==", + "license": "Apache-2.0", + "peer": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.17.0" } }, - "node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", - "@eslint/plugin-kit": "^0.4.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, + "license": "MIT", "bin": { - "eslint": "bin/eslint.js" + "husky": "bin.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=18" }, "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz", - "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", - "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "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" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + "node": ">= 4" } }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.26", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz", - "integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==", - "dev": true, - "peerDependencies": { - "eslint": ">=8.40" + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "license": "MIT", + "peer": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=8" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, + "node_modules/import-local/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=8" + } + }, + "node_modules/import-local/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^4.1.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">=8" } }, - "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, + "node_modules/import-local/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==", + "license": "MIT", + "peer": true, "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" + "p-try": "^2.0.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=6" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esquery": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", - "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", - "dev": true, + "node_modules/import-local/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==", + "license": "MIT", + "peer": true, "dependencies": { - "estraverse": "^5.1.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, + "node_modules/import-local/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==", + "license": "MIT", + "peer": true, "dependencies": { - "estraverse": "^5.2.0" + "find-up": "^4.0.0" }, "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { - "node": ">=4.0" + "node": ">=0.8.19" } }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", "dependencies": { - "@types/estree": "^1.0.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/iniparser": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", + "integrity": "sha512-i40MWqgTU6h/70NtMsDVVDLjDYWwcIR1yIEVDPfxZIJno9z9L4s83p/V7vAu2i48Vj0gpByrkGFub7ko9XvPrw==", + "optional": true, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/expect-type": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", - "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", - "dev": true, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, "engines": { - "node": ">=12.0.0" + "node": ">=8.0.0" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "node_modules/inquirer/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==", + "license": "MIT", + "optional": true }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, + "node_modules/inquirer/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==", + "license": "MIT", + "optional": 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.8" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=8.6.0" + "node": ">=8" } }, - "node_modules/fast-glob/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==", + "node_modules/inquirer/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "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==", + "license": "MIT" }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "dev": true, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dependencies": { - "reusify": "^1.0.4" + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dependencies": { - "flat-cache": "^4.0.0" + "has-bigints": "^1.0.2" }, "engines": { - "node": ">=16.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "engines": { - "node": ">=16" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dependencies": { - "is-callable": "^1.2.7" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -3624,87 +11447,112 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/form-data": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", - "dev": true, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fraction.js": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", - "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "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": "*" + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" + "url": "https://github.com/sponsors/ljharb" } }, - "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" - ], + "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==", "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=8" } }, - "node_modules/function-bind": { + "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "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": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" + "is-extglob": "^2.1.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "engines": { "node": ">= 0.4" }, @@ -3712,49 +11560,73 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/generator-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", - "dev": true, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "engines": { "node": ">= 0.4" + }, + "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==", + "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": ">=6.9.0" + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", + "call-bound": "^1.0.2", "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -3763,28 +11635,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -3793,82 +11660,87 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dependencies": { - "is-glob": "^4.0.3" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dependencies": { - "balanced-match": "^1.0.0" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dependencies": { - "brace-expansion": "^2.0.1" + "which-typed-array": "^1.1.16" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globals": { - "version": "15.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", - "dev": true, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -3877,11 +11749,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, "engines": { "node": ">= 0.4" }, @@ -3889,692 +11764,1083 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isomorphic-timers-promises": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz", + "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "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, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "license": "MIT" + }, + "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==", "engines": { "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "es-define-property": "^1.0.0" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "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==", + "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": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, "dependencies": { - "dunder-proto": "^1.0.0" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "engines": { - "node": ">= 0.4" + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, + "node_modules/jest": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.3.0.tgz", + "integrity": "sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==", + "license": "MIT", + "peer": true, "dependencies": { - "has-symbols": "^1.0.3" + "@jest/core": "30.3.0", + "@jest/types": "30.3.0", + "import-local": "^3.2.0", + "jest-cli": "30.3.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 0.4" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, + "node_modules/jest-changed-files": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.3.0.tgz", + "integrity": "sha512-B/7Cny6cV5At6M25EWDgf9S617lHivamL8vl6KEpJqkStauzcG4e+WPfDgMMF+H4FVH4A2PLRyvgDJan4441QA==", + "license": "MIT", + "peer": true, "dependencies": { - "function-bind": "^1.1.2" + "execa": "^5.1.1", + "jest-util": "30.3.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", - "dev": true, + "node_modules/jest-circus": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.3.0.tgz", + "integrity": "sha512-PyXq5szeSfR/4f1lYqCmmQjh0vqDkURUYi9N6whnHjlRz4IUQfMcXkGLeEoiJtxtyPqgUaUUfyQlApXWBSN1RA==", + "license": "MIT", + "peer": true, "dependencies": { - "whatwg-encoding": "^3.1.1" - }, + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "co": "^4.6.0", + "dedent": "^1.6.0", + "is-generator-fn": "^2.1.0", + "jest-each": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", + "p-limit": "^3.1.0", + "pretty-format": "30.3.0", + "pure-rand": "^7.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-circus/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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">=18" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": ">= 14" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, + "node_modules/jest-cli": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.3.0.tgz", + "integrity": "sha512-l6Tqx+j1fDXJEW5bqYykDQQ7mQg+9mhWXtnj+tQZrTWYHyHoi6Be8HPumDSA+UiX2/2buEgjA58iJzdj146uCw==", + "license": "MIT", + "peer": true, "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" + "@jest/core": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", + "chalk": "^4.1.2", + "exit-x": "^0.2.2", + "import-local": "^3.2.0", + "jest-config": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "yargs": "^17.7.2" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 14" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, + "node_modules/jest-config": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.3.0.tgz", + "integrity": "sha512-WPMAkMAtNDY9P/oKObtsRG/6KTrhtgPJoBTmk20uDn4Uy6/3EJnnaZJre/FMT1KVRx8cve1r7/FlMIOfRVWL4w==", + "license": "MIT", + "peer": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "@babel/core": "^7.27.4", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.3.0", + "@jest/types": "30.3.0", + "babel-jest": "30.3.0", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "deepmerge": "^4.3.1", + "glob": "^10.5.0", + "graceful-fs": "^4.2.11", + "jest-circus": "30.3.0", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.3.0", + "jest-runner": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "parse-json": "^5.2.0", + "pretty-format": "30.3.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=0.10.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "esbuild-register": ">=3.4.0", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "esbuild-register": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, + "node_modules/jest-config/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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">= 4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, + "node_modules/jest-config/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, + "node_modules/jest-config/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, + "node_modules/jest-diff": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", + "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/diff-sequences": "30.3.0", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.3.0" + }, "engines": { - "node": ">=0.8.19" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, + "node_modules/jest-diff/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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": ">= 0.4" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, + "node_modules/jest-docblock": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", + "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" + "detect-newline": "^3.1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, + "node_modules/jest-each": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.3.0.tgz", + "integrity": "sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==", + "license": "MIT", + "peer": true, "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" + "@jest/get-type": "30.1.0", + "@jest/types": "30.3.0", + "chalk": "^4.1.2", + "jest-util": "30.3.0", + "pretty-format": "30.3.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-each/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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, + "node_modules/jest-each/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, "dependencies": { - "has-bigints": "^1.0.2" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, + "node_modules/jest-each/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, + "node_modules/jest-environment-node": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.3.0.tgz", + "integrity": "sha512-4i6HItw/JSiJVsC5q0hnKIe/hbYfZLVG9YJ/0pU9Hz2n/9qZe3Rhn5s5CUZA5ORZlcdT/vmAXRMyONXJwPrmYQ==", + "license": "MIT", + "peer": true, "dependencies": { - "binary-extensions": "^2.0.0" + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "jest-mock": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0" }, "engines": { - "node": ">=8" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, + "node_modules/jest-haste-map": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz", + "integrity": "sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "@jest/types": "30.3.0", + "@types/node": "*", + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", + "graceful-fs": "^4.2.11", + "jest-regex-util": "30.0.1", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", + "picomatch": "^4.0.3", + "walker": "^1.0.8" }, "engines": { - "node": ">= 0.4" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "fsevents": "^2.3.3" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, + "node_modules/jest-haste-map/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, + "node_modules/jest-leak-detector": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.3.0.tgz", + "integrity": "sha512-cuKmUUGIjfXZAiGJ7TbEMx0bcqNdPPI6P1V+7aF+m/FUJqFDxkFR4JqkTu8ZOiU5AaX/x0hZ20KaaIPXQzbMGQ==", + "license": "MIT", + "peer": true, "dependencies": { - "hasown": "^2.0.2" + "@jest/get-type": "30.1.0", + "pretty-format": "30.3.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, + "node_modules/jest-leak-detector/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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "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/jest-leak-detector/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, + "node_modules/jest-matcher-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", + "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bound": "^1.0.3" + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.3.0", + "pretty-format": "30.3.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.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, + "node_modules/jest-matcher-utils/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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", - "dev": true, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "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, + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, + "node_modules/jest-message-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz", + "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", + "license": "MIT", + "peer": true, "dependencies": { - "is-extglob": "^2.1.1" + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.3.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3", + "pretty-format": "30.3.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" }, "engines": { - "node": ">=0.10.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, + "node_modules/jest-message-util/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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, + "node_modules/jest-message-util/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "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, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, "engines": { - "node": ">=0.12.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, + "node_modules/jest-mock": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz", + "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "@jest/types": "30.3.0", + "@types/node": "*", + "jest-util": "30.3.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, + "node_modules/jest-resolve": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.3.0.tgz", + "integrity": "sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "engines": { - "node": ">= 0.4" + "node_modules/jest-resolve-dependencies": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.3.0.tgz", + "integrity": "sha512-9ev8s3YN6Hsyz9LV75XUwkCVFlwPbaFn6Wp75qnI0wzAINYWY8Fb3+6y59Rwd3QaS3kKXffHXsZMziMavfz/nw==", + "license": "MIT", + "peer": true, + "dependencies": { + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.3.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, + "node_modules/jest-runner": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.3.0.tgz", + "integrity": "sha512-gDv6C9LGKWDPLia9TSzZwf4h3kMQCqyTpq+95PODnTRDO0g9os48XIYYkS6D236vjpBir2fF63YmJFtqkS5Duw==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bound": "^1.0.3" - }, + "@jest/console": "30.3.0", + "@jest/environment": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.3.0", + "jest-haste-map": "30.3.0", + "jest-leak-detector": "30.3.0", + "jest-message-util": "30.3.0", + "jest-resolve": "30.3.0", + "jest-runtime": "30.3.0", + "jest-util": "30.3.0", + "jest-watcher": "30.3.0", + "jest-worker": "30.3.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.3.0.tgz", + "integrity": "sha512-CgC+hIBJbuh78HEffkhNKcbXAytQViplcl8xupqeIWyKQF50kCQA8J7GeJCkjisC6hpnC9Muf8jV5RdtdFbGng==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/globals": "30.3.0", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "cjs-module-lexer": "^2.1.0", + "collect-v8-coverage": "^1.0.2", + "glob": "^10.5.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.3.0.tgz", + "integrity": "sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/generator": "^7.27.5", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/types": "^7.27.3", + "@jest/expect-utils": "30.3.0", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "babel-preset-current-node-syntax": "^1.2.0", + "chalk": "^4.1.2", + "expect": "30.3.0", + "graceful-fs": "^4.2.11", + "jest-diff": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "pretty-format": "30.3.0", + "semver": "^7.7.2", + "synckit": "^0.11.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-snapshot/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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, + "node_modules/jest-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz", + "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", + "license": "MIT", + "peer": true, "dependencies": { - "which-typed-array": "^1.1.16" + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, + "node_modules/jest-util/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, + "node_modules/jest-validate": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.3.0.tgz", + "integrity": "sha512-I/xzC8h5G+SHCb2P2gWkJYrNiTbeL47KvKeW5EzplkyxzBRBw1ssSHlI/jXec0ukH2q7x2zAWQm7015iusg62Q==", + "license": "MIT", + "peer": true, "dependencies": { - "call-bound": "^1.0.3" + "@jest/get-type": "30.1.0", + "@jest/types": "30.3.0", + "camelcase": "^6.3.0", + "chalk": "^4.1.2", + "leven": "^3.1.0", + "pretty-format": "30.3.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, + "node_modules/jest-validate/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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "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, + "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==", + "license": "MIT", + "peer": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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, + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "license": "MIT", + "peer": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": ">=10" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", - "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", - "dev": true, + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, + "node_modules/jest-watcher": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.3.0.tgz", + "integrity": "sha512-PJ1d9ThtTR8aMiBWUdcownq9mDdLXsQzJayTk4kmaBRHKvwNQn+ANveuhEBUyNI2hR1TVhvQ8D5kHubbzBHR/w==", + "license": "MIT", + "peer": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.23", - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0" + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "jest-util": "30.3.0", + "string-length": "^4.0.2" }, "engines": { - "node": ">=10" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "dev": true, + "node_modules/jest-worker": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.3.0.tgz", + "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", + "license": "MIT", + "peer": true, "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "@types/node": "*", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.3.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.1.1" }, "engines": { - "node": ">=8" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "dev": true, + "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==", + "license": "MIT", + "peer": true, "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/jiti": { @@ -4586,6 +12852,18 @@ "jiti": "bin/jiti.js" } }, + "node_modules/js-base64": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.8.tgz", + "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", + "license": "BSD-3-Clause" + }, + "node_modules/js-sha3": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.9.3.tgz", + "integrity": "sha512-BcJPCQeLg6WjEx3FE591wVAevlli8lxsxm9/FzV4HXkV49TmBH38Yvrpce6fjbADGMKFrBMGTqrVz3qPIZ88Gg==", + "license": "MIT" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4603,6 +12881,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "license": "MIT" + }, "node_modules/jsdom": { "version": "25.0.1", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz", @@ -4647,7 +12931,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -4661,28 +12944,274 @@ "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==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonld": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-6.0.0.tgz", + "integrity": "sha512-1SkN2RXhMCTCSkX+bzHvr9ycM2HTmjWyV41hn2xG7k6BqlCgRjw0zHmuqfphjBRPqi1gKMIqgBCe/0RZMcWrAA==", + "license": "BSD-3-Clause", + "dependencies": { + "@digitalbazaar/http-client": "^3.2.0", + "canonicalize": "^1.0.1", + "lru-cache": "^6.0.0", + "rdf-canonize": "^3.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/jsonld-signatures": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/jsonld-signatures/-/jsonld-signatures-11.6.0.tgz", + "integrity": "sha512-hzYNZXnfy4cUFf9aiFBtduUz+cknbfBLWtTKvoqVyP2ECPwqfsfkHWFlhccWfAKV/LJkPLyKZRwC1B4T5LO4ZQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@digitalbazaar/security-context": "^1.0.0", + "jsonld": "^9.0.0", + "rdf-canonize": "^5.0.0", + "serialize-error": "^8.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/jsonld-signatures-v7": { + "name": "jsonld-signatures", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jsonld-signatures/-/jsonld-signatures-7.0.0.tgz", + "integrity": "sha512-J/nA+llcYYjErPHG9WFpXvR82TOg5fbHk/7rXbx4Ts854DPReaKAAd0hAZ+s5/P2WIIAZPIHCqA+iz1QrOqeiQ==", + "license": "BSD-3-Clause", + "dependencies": { + "base64url": "^3.0.1", + "crypto-ld": "^3.7.0", + "jsonld": "^4.0.1", + "node-forge": "^0.10.0", + "security-context": "^4.0.0", + "serialize-error": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonld-signatures-v7/node_modules/jsonld": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-4.0.1.tgz", + "integrity": "sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A==", + "license": "BSD-3-Clause", + "dependencies": { + "canonicalize": "^1.0.1", + "lru-cache": "^5.1.1", + "object.fromentries": "^2.0.2", + "rdf-canonize": "^2.0.1", + "request": "^2.88.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonld-signatures-v7/node_modules/rdf-canonize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", + "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", + "license": "BSD-3-Clause", + "dependencies": { + "semver": "^6.3.0", + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonld-signatures-v7/node_modules/serialize-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", + "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jsonld-signatures-v7/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/jsonld-signatures/node_modules/@digitalbazaar/http-client": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-4.3.0.tgz", + "integrity": "sha512-6lMpxpt9BOmqHKGs9Xm6DP4LlZTBFer/ZjHvP3FcW3IaUWYIWC7dw5RFZnvw4fP57kAVcm1dp3IF+Y50qhBvAw==", + "license": "BSD-3-Clause", + "dependencies": { + "ky": "^1.14.2", + "undici": "^6.23.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/jsonld-signatures/node_modules/canonicalize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.1.0.tgz", + "integrity": "sha512-F705O3xrsUtgt98j7leetNhTWPe+5S72rlL5O4jA1pKqBVQ/dT1O1D6PFxmSXvc0SUOinWS57DKx0I3CHrXJHQ==", + "license": "Apache-2.0", + "bin": { + "canonicalize": "bin/canonicalize.js" + } + }, + "node_modules/jsonld-signatures/node_modules/jsonld": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-9.0.0.tgz", + "integrity": "sha512-pjMIdkXfC1T2wrX9B9i2uXhGdyCmgec3qgMht+TDj+S0qX3bjWMQUfL7NeqEhuRTi8G5ESzmL9uGlST7nzSEWg==", + "license": "BSD-3-Clause", + "dependencies": { + "@digitalbazaar/http-client": "^4.2.0", + "canonicalize": "^2.1.0", + "lru-cache": "^6.0.0", + "rdf-canonize": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/jsonld-signatures/node_modules/ky": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.3.tgz", + "integrity": "sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" + } + }, + "node_modules/jsonld-signatures/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==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonld-signatures/node_modules/rdf-canonize": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-5.0.0.tgz", + "integrity": "sha512-g8OUrgMXAR9ys/ZuJVfBr05sPPoMA7nHIVs8VEvg9QwM5W4GR2qSFEEHjsyHF1eWlBaf8Ev40WNjQFQ+nJTO3w==", + "license": "BSD-3-Clause", + "dependencies": { + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/jsonld-signatures/node_modules/undici": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", + "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/jsonld-signatures/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/jsonld/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==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonld/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, - "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" + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" }, "engines": { - "node": ">=6" + "node": ">=0.6.0" } }, "node_modules/jsx-ast-utils": { @@ -4709,6 +13238,80 @@ "json-buffer": "3.0.1" } }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/ky": { + "version": "0.33.3", + "resolved": "https://registry.npmjs.org/ky/-/ky-0.33.3.tgz", + "integrity": "sha512-CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" + } + }, + "node_modules/ky-universal": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.11.0.tgz", + "integrity": "sha512-65KyweaWvk+uKKkCrfAf+xqN2/epw1IJDtlyCPxYffFCMR8u1sp2U65NtWpnozYfZxQ6IUzIlvUcw+hQ82U2Xw==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "node-fetch": "^3.2.10" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky-universal?sponsor=1" + }, + "peerDependencies": { + "ky": ">=0.31.4", + "web-streams-polyfill": ">=3.2.1" + }, + "peerDependenciesMeta": { + "web-streams-polyfill": { + "optional": true + } + } + }, + "node_modules/ky-universal/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4737,8 +13340,7 @@ "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 + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/locate-path": { "version": "6.0.0", @@ -4755,6 +13357,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -4782,11 +13402,18 @@ "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/lucide-react": { + "version": "0.563.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.563.0.tgz", + "integrity": "sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/lz-string": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", @@ -4817,11 +13444,19 @@ "source-map-js": "^1.2.0" } }, + "node_modules/make-cancellable-promise": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-1.3.2.tgz", + "integrity": "sha512-GCXh3bq/WuMbS+Ky4JBPW1hYTOU+znU+Q5m9Pu+pI8EoUqIHk9+tviOKC6/qhHh8C4/As3tzJ69IF32kdz85ww==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/make-cancellable-promise?sponsor=1" + } + }, "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" }, @@ -4836,7 +13471,6 @@ "version": "7.7.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, "bin": { "semver": "bin/semver.js" }, @@ -4844,15 +13478,81 @@ "node": ">=10" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "license": "ISC" + }, + "node_modules/make-event-props": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.2.tgz", + "integrity": "sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1" + } + }, + "node_modules/make-promises-safe": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/make-promises-safe/-/make-promises-safe-5.1.0.tgz", + "integrity": "sha512-AfdZ49rtyhQR/6cqVKGoH7y4ql7XkS5HJI1lZm0/5N6CQosy1eYbBJ/qbhkKHzo17UH7M918Bysf6XB9f3kS1g==", + "license": "MIT", + "optional": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, "engines": { "node": ">= 0.4" } }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/merge-refs": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.3.0.tgz", + "integrity": "sha512-nqXPXbso+1dcKDpPCXvwZyJILz+vSLqGGOnDrYHQYE+B8n9JTCekVLC65AfCpR4ggVyA/45Y0iR9LDyS2iI+zA==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "peer": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4875,11 +13575,29 @@ "node": ">=8.6" } }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "license": "MIT" + }, "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" } @@ -4888,7 +13606,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -4896,6 +13613,28 @@ "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -4905,11 +13644,22 @@ "node": ">=4" } }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, "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" }, @@ -4917,15 +13667,69 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC", + "optional": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -4938,8 +13742,20 @@ "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "license": "ISC", + "optional": true }, "node_modules/mz": { "version": "2.7.0", @@ -4952,6 +13768,13 @@ "thenify-all": "^1.0.0" } }, + "node_modules/nan": { + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.26.2.tgz", + "integrity": "sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==", + "license": "MIT", + "optional": true + }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -4970,38 +13793,307 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "license": "MIT", + "peer": true, + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, "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 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/neon-cli": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.10.1.tgz", + "integrity": "sha512-kOd9ELaYETe1J1nBEOYD7koAZVj6xR9TGwOPccAsWmwL5amkaXXXwXHCUHkBAWujlgSZY5f2pT+pFGkzoHExYQ==", + "license": "SEE LICENSE IN LICENSE-*", + "optional": true, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-commands": "^3.0.1", + "command-line-usage": "^6.1.0", + "git-config": "0.0.7", + "handlebars": "^4.7.6", + "inquirer": "^7.3.3", + "make-promises-safe": "^5.1.0", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "toml": "^3.0.0", + "ts-typed-json": "^0.3.2", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^3.0.0" + }, + "bin": { + "neon": "bin/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/neon-cli/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-cache": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", + "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", + "license": "MIT", + "dependencies": { + "clone": "2.x" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "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==", + "license": "MIT", + "peer": true }, "node_modules/node-releases": { "version": "2.0.27", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", - "dev": true + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==" + }, + "node_modules/node-stdlib-browser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.3.1.tgz", + "integrity": "sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert": "^2.0.0", + "browser-resolve": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^5.7.1", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "create-require": "^1.1.1", + "crypto-browserify": "^3.12.1", + "domain-browser": "4.22.0", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "isomorphic-timers-promises": "^1.0.1", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "pkg-dir": "^5.0.0", + "process": "^0.11.10", + "punycode": "^1.4.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^3.6.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.1", + "url": "^0.11.4", + "util": "^0.12.4", + "vm-browserify": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-stdlib-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "license": "MIT", + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } }, "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/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, "node_modules/nwsapi": { "version": "2.2.23", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", "dev": true }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5019,7 +14111,23 @@ "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, "engines": { "node": ">= 0.4" }, @@ -5031,7 +14139,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -5040,7 +14147,6 @@ "version": "4.1.7", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -5075,7 +14181,6 @@ "version": "2.0.8", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -5107,6 +14212,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -5124,11 +14253,26 @@ "node": ">= 0.8.0" } }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "license": "MIT" + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -5145,7 +14289,6 @@ "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" }, @@ -5171,17 +14314,31 @@ "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -5189,6 +14346,57 @@ "node": ">=6" } }, + "node_modules/parse-asn1": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz", + "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", + "license": "ISC", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "pbkdf2": "^3.1.5", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-asn1/node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/parse-asn1/node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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/parse5": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", @@ -5201,20 +14409,34 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "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" } @@ -5222,14 +14444,12 @@ "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 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -5244,8 +14464,26 @@ "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path2d-polyfill": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path2d-polyfill/-/path2d-polyfill-2.0.1.tgz", + "integrity": "sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } }, "node_modules/pathe": { "version": "1.1.2", @@ -5262,17 +14500,64 @@ "node": ">= 14.16" } }, + "node_modules/pbkdf2": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz", + "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==", + "license": "MIT", + "dependencies": { + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "ripemd160": "^2.0.3", + "safe-buffer": "^5.2.1", + "sha.js": "^2.4.12", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pdfjs-dist": { + "version": "3.11.174", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-3.11.174.tgz", + "integrity": "sha512-TdTZPf1trZ8/UFu5Cx/GXB7GZM30LT+wWUNfsi6Bq8ePLnb+woNKtDymI2mxZYBpMbonNFqKmiz684DIfnd8dA==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "canvas": "^2.11.2", + "path2d-polyfill": "^2.0.1" + } + }, + "node_modules/penpal": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/penpal/-/penpal-6.2.2.tgz", + "integrity": "sha512-RQD7hTx14/LY7QoS3tQYO3/fzVtwvZI+JeS5udgsu7FPaEDjlvfK9HBcme9/ipzSPKnrxSgacI9PI7154W62YQ==", + "license": "MIT" + }, + "node_modules/penpal-v4": { + "name": "penpal", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/penpal/-/penpal-4.1.1.tgz", + "integrity": "sha512-6d1f8khVLyBz3DnhLztbfjJ7+ANxdXRM2l6awpnCdEtbrmse4AGTsELOvGuNY0SU7xZw7heGbP6IikVvaVTOWw==", + "license": "MIT" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "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" }, @@ -5293,16 +14578,27 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "dev": true, "engines": { "node": ">= 6" } }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -5535,11 +14831,26 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -5549,18 +14860,133 @@ "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "license": "MIT" }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/pure-rand": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT", + "peer": true + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/qrcode.react": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-4.2.0.tgz", + "integrity": "sha512-QpgqWi8rD9DsS9EP3z7BT+5lY5SFhsqGjpgW5DY/i3mK4M9DTBNz3ErMi8BWYEfI3L0d8GIbGmcdFAS1uIRGjA==", + "license": "ISC", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "license": "MIT", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -5581,6 +15007,37 @@ } ] }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rdf-canonize": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz", + "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==", + "license": "BSD-3-Clause", + "dependencies": { + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -5611,6 +15068,36 @@ "dev": true, "peer": true }, + "node_modules/react-pdf": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.7.3.tgz", + "integrity": "sha512-a2VfDl8hiGjugpqezBTUzJHYLNB7IS7a2t7GD52xMI9xHg8LdVaTMsnM9ZlNmKadnStT/tvX5IfV0yLn+JvYmw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "dequal": "^2.0.3", + "make-cancellable-promise": "^1.3.1", + "make-event-props": "^1.6.0", + "merge-refs": "^1.2.1", + "pdfjs-dist": "3.11.174", + "prop-types": "^15.6.2", + "tiny-invariant": "^1.0.0", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-pdf?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-refresh": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", @@ -5620,6 +15107,44 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.12.0.tgz", + "integrity": "sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.12.0.tgz", + "integrity": "sha512-pfO9fiBcpEfX4Tx+iTYKDtPbrSLLCbwJ5EqP+SPYQu1VYCXdy79GSj0wttR0U4cikVdlImZuEZ/9ZNCgoaxwBA==", + "license": "MIT", + "dependencies": { + "react-router": "7.12.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -5629,6 +15154,20 @@ "pify": "^2.3.0" } }, + "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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -5651,14 +15190,22 @@ "strip-indent": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=8" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "license": "MIT", + "engines": { + "node": ">=6" } }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -5680,7 +15227,6 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -5696,6 +15242,103 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz", + "integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -5713,15 +15356,58 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==", + "license": "MIT", + "peer": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "optional": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/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==", + "license": "ISC", + "optional": true + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -5732,6 +15418,121 @@ "node": ">=0.10.0" } }, + "node_modules/rfc4648": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.2.tgz", + "integrity": "sha512-tLOizhR6YGovrEBLatX1sdcuhoSCXddw3mqNVAcKxGJ+J0hFeJ+SjeWCv5UPA/WU3YzWPPuCVYgXBKZUPGpKtg==", + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "optional": 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/ripemd160": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.1.2", + "inherits": "^2.0.4" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ripemd160/node_modules/hash-base": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ripemd160/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/ripemd160/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/ripemd160/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/rollup": { "version": "4.55.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", @@ -5782,6 +15583,16 @@ "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", "dev": true }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5805,11 +15616,36 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/runtypes": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/runtypes/-/runtypes-6.7.0.tgz", + "integrity": "sha512-3TLdfFX8YHNFOhwHrSJza6uxVBmBrEjnNQlNXvXCdItS0Pdskfg5vVXUTWIN+Y23QR09jWpSl99UHkA83m4uWA==", + "license": "MIT" + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "optional": true + }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -5824,11 +15660,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -5844,7 +15699,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -5860,8 +15714,7 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/saxes": { "version": "6.0.0", @@ -5883,20 +15736,69 @@ "loose-envify": "^1.1.0" } }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "license": "MIT" + }, + "node_modules/security-context": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/security-context/-/security-context-4.0.0.tgz", + "integrity": "sha512-yiDCS7tpKQl6p4NG57BdKLTSNLFfj5HosBIzXBl4jZf/qorJzSzbEUIdLhN+vVYgyLlvjixY8DPPTgqI8zvNCA==" + }, "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/serialize-error": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-8.1.0.tgz", + "integrity": "sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC", + "optional": true + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -5913,7 +15815,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -5928,7 +15829,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -5938,11 +15838,36 @@ "node": ">= 0.4" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + }, + "bin": { + "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "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" }, @@ -5954,7 +15879,6 @@ "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" } @@ -5963,7 +15887,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -5982,7 +15905,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" @@ -5998,7 +15920,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -6016,7 +15937,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -6041,7 +15961,6 @@ "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" }, @@ -6049,6 +15968,39 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "license": "MIT", + "optional": true, + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/sirv": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", @@ -6063,13 +16015,145 @@ "node": ">=18" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sodium-native": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-3.4.1.tgz", + "integrity": "sha512-PaNN/roiFWzVVTL6OqjzYct38NSXewdl2wz8SRB51Br/MLIJPrbM3XexhVWkq7D3UWMysfrhKVf1v1phZq6MeQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + } + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0", + "optional": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "license": "CC0-1.0", + "optional": 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==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "peer": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" } }, "node_modules/stackback": { @@ -6088,7 +16172,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" @@ -6097,11 +16180,76 @@ "node": ">= 0.4" } }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "license": "WTFPL OR MIT", + "peer": true + }, + "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==", + "license": "MIT", + "peer": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "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", @@ -6119,7 +16267,6 @@ "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", @@ -6132,14 +16279,12 @@ "node_modules/string-width-cjs/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 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width-cjs/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" }, @@ -6188,7 +16333,6 @@ "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -6209,7 +16353,6 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -6227,7 +16370,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -6244,7 +16386,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -6260,7 +16401,6 @@ "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" }, @@ -6272,7 +16412,6 @@ "version": "6.2.2", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, "engines": { "node": ">=12" }, @@ -6280,6 +16419,26 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -6296,7 +16455,6 @@ "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" }, @@ -6304,6 +16462,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz", + "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, "node_modules/sucrase": { "version": "3.35.1", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", @@ -6330,7 +16506,6 @@ "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" }, @@ -6342,7 +16517,6 @@ "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" }, @@ -6350,12 +16524,80 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swiper": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-12.0.3.tgz", + "integrity": "sha512-BHd6U1VPEIksrXlyXjMmRWO0onmdNPaTAFduzqR3pgjvi7KfmUCAm/0cj49u2D7B0zNjMw02TSeXfinC1hDCXg==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "license": "MIT", + "engines": { + "node": ">= 4.7.0" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/synckit": { + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", + "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "license": "MIT", + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/tailwindcss": { "version": "3.4.19", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", @@ -6413,6 +16655,42 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "deprecated": "Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "optional": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC", + "optional": true + }, "node_modules/test-exclude": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", @@ -6472,6 +16750,32 @@ "node": ">=0.8" } }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT", + "optional": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -6574,6 +16878,40 @@ "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", "dev": true }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", + "optional": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.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", @@ -6586,6 +16924,13 @@ "node": ">=8.0" } }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "license": "MIT", + "optional": true + }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", @@ -6631,12 +16976,157 @@ "typescript": ">=4.8.4" } }, + "node_modules/ts-chacha20": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-chacha20/-/ts-chacha20-1.2.0.tgz", + "integrity": "sha512-PTyPoWYHc2we8P2NTn5hpYG211popWbkjiw+k63xqjeMrx9pPtXSclz9F3fu0Tpr+vfR1xxcQFwsEkh1cXMLqw==", + "license": "MIT" + }, + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "license": "ISC", + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" + } + }, + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "node_modules/ts-jest": { + "version": "29.4.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz", + "integrity": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "fast-json-stable-stringify": "^2.1.0", + "handlebars": "^4.7.8", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.3", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ts-typed-json": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.3.2.tgz", + "integrity": "sha512-Tdu3BWzaer7R5RvBIJcg9r8HrTZgpJmsX+1meXMJzYypbkj8NK2oJN0yvm4Dp/Iv6tzFa/L5jKRmEVTga6K3nA==", + "license": "MIT", + "optional": true + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -6646,14 +17136,105 @@ "prelude-ls": "^1.2.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.8.0" + } + }, + "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==", + "license": "MIT", + "peer": 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==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typechain": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" + } + }, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typechain/node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT", + "peer": true + }, + "node_modules/typechain/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -6667,7 +17248,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -6686,7 +17266,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -6707,7 +17286,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -6723,11 +17301,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typesafe-actions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/typesafe-actions/-/typesafe-actions-5.1.0.tgz", + "integrity": "sha512-bna6Yi1pRznoo6Bz1cE6btB/Yy8Xywytyfrzu/wc+NFW3ZF0I+2iCGImhBsoYYCOWuICtRO4yHcnDlzgo1AdNg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6759,11 +17345,32 @@ "typescript": ">=4.8.4 <6.0.0" } }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -6777,11 +17384,73 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici": { + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", + "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "dev": true, "funding": [ { "type": "opencollective", @@ -6811,16 +17480,121 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, "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 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "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" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "license": "ISC", + "peer": 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/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "license": "ISC", + "optional": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/validator": { + "version": "13.15.26", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.26.tgz", + "integrity": "sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } }, "node_modules/vite": { "version": "6.4.1", @@ -7383,6 +18157,23 @@ } } }, + "node_modules/vite-plugin-node-polyfills": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.25.0.tgz", + "integrity": "sha512-rHZ324W3LhfGPxWwQb2N048TThB6nVvnipsqBUJEzh3R9xeK9KI3si+GMQxCuAcpPJBVf0LpDtJ+beYzB3/chg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/plugin-inject": "^5.0.5", + "node-stdlib-browser": "^1.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/davidmyersdev" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, "node_modules/vite/node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -7968,6 +18759,12 @@ } } }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "license": "MIT" + }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", @@ -7980,6 +18777,63 @@ "node": ">=18" } }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/web-did-resolver": { + "version": "2.0.32", + "resolved": "https://registry.npmjs.org/web-did-resolver/-/web-did-resolver-2.0.32.tgz", + "integrity": "sha512-L91/ApTmDjgzS0UDstTKn3kN/1hlQBnVcUN8K29e3xhVBpPktHYC6uvVAQ8ohbIg9D6wrrbaBQvfRArDxgJG2g==", + "license": "Apache-2.0", + "dependencies": { + "cross-fetch": "^4.1.0", + "did-resolver": "^4.1.0" + } + }, + "node_modules/web-did-resolver/node_modules/did-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", + "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==", + "license": "Apache-2.0" + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webcrypto-core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.8.1.tgz", + "integrity": "sha512-P+x1MvlNCXlKbLSOY4cYrdreqPG5hbzkmawbcXLKN/mf6DZW0SdNNkZ+sjwsqVkI4A4Ko2sPZmkZtCKY58w83A==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.5", + "tslib": "^2.7.0" + } + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -8028,7 +18882,6 @@ "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" }, @@ -8043,7 +18896,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -8062,7 +18914,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -8089,7 +18940,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -8107,7 +18957,6 @@ "version": "1.1.19", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -8140,6 +18989,51 @@ "node": ">=8" } }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wide-align/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==", + "license": "MIT", + "optional": true + }, + "node_modules/wide-align/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -8149,11 +19043,38 @@ "node": ">=0.10.0" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "license": "MIT", + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "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", @@ -8171,7 +19092,6 @@ "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", @@ -8187,14 +19107,12 @@ "node_modules/wrap-ansi-cjs/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 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8208,7 +19126,6 @@ "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" }, @@ -8220,7 +19137,6 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, "engines": { "node": ">=12" }, @@ -8228,6 +19144,26 @@ "url": "https://github.com/chalk/ansi-styles?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==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "license": "ISC", + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/ws": { "version": "8.19.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", @@ -8264,17 +19200,116 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "peer": 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==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/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==", + "license": "MIT", + "peer": true + }, + "node_modules/yargs/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, "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" }, diff --git a/package.json b/package.json index 68c547b..108c406 100644 --- a/package.json +++ b/package.json @@ -17,11 +17,21 @@ "format:check": "prettier --check \"src/**/*.{js,jsx,ts,tsx,json,css,md}\"", "test": "vitest run", "test:ui": "vitest --ui", - "test:coverage": "vitest run --coverage" + "test:coverage": "vitest run --coverage", + "setup:hooks": "husky", + "prepare": "husky" }, "dependencies": { + "@trustvc/decentralized-renderer-react-components": "^1.0.3", + "@trustvc/trustvc": "^2.8.0", + "clsx": "^2.1.1", + "date-fns": "^4.1.0", + "lucide-react": "^0.563.0", + "qrcode.react": "^4.2.0", "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-router-dom": "^7.12.0", + "swiper": "^12.0.3" }, "devDependencies": { "@eslint/js": "^9.17.0", @@ -40,13 +50,15 @@ "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.14", "globals": "^15.13.0", - "prettier": "^3.4.2", + "husky": "^9.1.7", "jsdom": "^25.0.1", "postcss": "^8.4.49", + "prettier": "^3.4.2", "tailwindcss": "^3.4.17", "typescript": "^5.6.3", "typescript-eslint": "^8.18.2", "vite": "^6.0.3", + "vite-plugin-node-polyfills": "^0.25.0", "vitest": "^2.1.8" } } diff --git a/public/backgrounds/bg-dark.png b/public/backgrounds/bg-dark.png new file mode 100644 index 0000000..4787a46 Binary files /dev/null and b/public/backgrounds/bg-dark.png differ diff --git a/public/backgrounds/bg-light.png b/public/backgrounds/bg-light.png new file mode 100644 index 0000000..d90cc19 Binary files /dev/null and b/public/backgrounds/bg-light.png differ diff --git a/public/fonts/GilroyBold/font.woff b/public/fonts/GilroyBold/font.woff new file mode 100755 index 0000000..9f27086 Binary files /dev/null and b/public/fonts/GilroyBold/font.woff differ diff --git a/public/fonts/GilroyBold/font.woff2 b/public/fonts/GilroyBold/font.woff2 new file mode 100755 index 0000000..fb9e334 Binary files /dev/null and b/public/fonts/GilroyBold/font.woff2 differ diff --git a/public/fonts/GilroyExtraBold/font.woff b/public/fonts/GilroyExtraBold/font.woff new file mode 100755 index 0000000..81208a8 Binary files /dev/null and b/public/fonts/GilroyExtraBold/font.woff differ diff --git a/public/fonts/GilroyExtraBold/font.woff2 b/public/fonts/GilroyExtraBold/font.woff2 new file mode 100755 index 0000000..3a59a2a Binary files /dev/null and b/public/fonts/GilroyExtraBold/font.woff2 differ diff --git a/public/fonts/GilroyLight/font.woff b/public/fonts/GilroyLight/font.woff new file mode 100755 index 0000000..31e561e Binary files /dev/null and b/public/fonts/GilroyLight/font.woff differ diff --git a/public/fonts/GilroyLight/font.woff2 b/public/fonts/GilroyLight/font.woff2 new file mode 100755 index 0000000..d349da6 Binary files /dev/null and b/public/fonts/GilroyLight/font.woff2 differ diff --git a/public/fonts/GilroyMedium/font.woff b/public/fonts/GilroyMedium/font.woff new file mode 100755 index 0000000..1e343fa Binary files /dev/null and b/public/fonts/GilroyMedium/font.woff differ diff --git a/public/fonts/GilroyMedium/font.woff2 b/public/fonts/GilroyMedium/font.woff2 new file mode 100755 index 0000000..358bbf7 Binary files /dev/null and b/public/fonts/GilroyMedium/font.woff2 differ diff --git a/public/icons/attention.svg b/public/icons/attention.svg new file mode 100644 index 0000000..cddf50e --- /dev/null +++ b/public/icons/attention.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/icons/chevron-down-dark.svg b/public/icons/chevron-down-dark.svg new file mode 100644 index 0000000..8dc5e07 --- /dev/null +++ b/public/icons/chevron-down-dark.svg @@ -0,0 +1,13 @@ + + + + diff --git a/public/icons/chevron-down.svg b/public/icons/chevron-down.svg new file mode 100644 index 0000000..b716b31 --- /dev/null +++ b/public/icons/chevron-down.svg @@ -0,0 +1,13 @@ + + + + diff --git a/public/icons/code.svg b/public/icons/code.svg new file mode 100644 index 0000000..4ce7198 --- /dev/null +++ b/public/icons/code.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/information-circle.svg b/public/icons/information-circle.svg new file mode 100644 index 0000000..99af634 --- /dev/null +++ b/public/icons/information-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/right-arrow.svg b/public/icons/right-arrow.svg new file mode 100644 index 0000000..ed67862 --- /dev/null +++ b/public/icons/right-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/trustvc-logo.svg b/public/icons/trustvc-logo.svg new file mode 100644 index 0000000..e049697 --- /dev/null +++ b/public/icons/trustvc-logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/icons/upload-dark.svg b/public/icons/upload-dark.svg new file mode 100644 index 0000000..17a5742 --- /dev/null +++ b/public/icons/upload-dark.svg @@ -0,0 +1,13 @@ + + + + diff --git a/public/icons/upload.svg b/public/icons/upload.svg new file mode 100644 index 0000000..aef1fa0 --- /dev/null +++ b/public/icons/upload.svg @@ -0,0 +1,13 @@ + + + + diff --git a/public/images/carousel/carousel-1.png b/public/images/carousel/carousel-1.png new file mode 100644 index 0000000..f38efa5 Binary files /dev/null and b/public/images/carousel/carousel-1.png differ diff --git a/public/images/carousel/carousel-2.png b/public/images/carousel/carousel-2.png new file mode 100644 index 0000000..024d312 Binary files /dev/null and b/public/images/carousel/carousel-2.png differ diff --git a/public/images/carousel/carousel-3.png b/public/images/carousel/carousel-3.png new file mode 100644 index 0000000..97e3587 Binary files /dev/null and b/public/images/carousel/carousel-3.png differ diff --git a/public/images/carousel/carousel-4.png b/public/images/carousel/carousel-4.png new file mode 100644 index 0000000..bd99b70 Binary files /dev/null and b/public/images/carousel/carousel-4.png differ diff --git a/public/images/demo-background.png b/public/images/demo-background.png new file mode 100644 index 0000000..14fa905 Binary files /dev/null and b/public/images/demo-background.png differ diff --git a/public/images/networks/astron.png b/public/images/networks/astron.png new file mode 100644 index 0000000..6af579f Binary files /dev/null and b/public/images/networks/astron.png differ diff --git a/public/images/networks/ethereum.gif b/public/images/networks/ethereum.gif new file mode 100644 index 0000000..417c47b Binary files /dev/null and b/public/images/networks/ethereum.gif differ diff --git a/public/images/networks/polygon.gif b/public/images/networks/polygon.gif new file mode 100644 index 0000000..37e209a Binary files /dev/null and b/public/images/networks/polygon.gif differ diff --git a/public/images/networks/stability.png b/public/images/networks/stability.png new file mode 100644 index 0000000..e838132 Binary files /dev/null and b/public/images/networks/stability.png differ diff --git a/public/images/networks/xdc.png b/public/images/networks/xdc.png new file mode 100644 index 0000000..a64acd5 Binary files /dev/null and b/public/images/networks/xdc.png differ diff --git a/public/trustvc.svg b/public/trustvc.svg deleted file mode 100644 index b7a68d5..0000000 --- a/public/trustvc.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/App.test.tsx b/src/App.test.tsx index 296f726..0083a46 100644 --- a/src/App.test.tsx +++ b/src/App.test.tsx @@ -1,10 +1,101 @@ -import { describe, it, expect } from 'vitest' -import { render, screen } from '@testing-library/react' +import { describe, it, expect, beforeEach } from 'vitest' +import { render, screen, fireEvent } from '@testing-library/react' +import { MemoryRouter } from 'react-router-dom' import App from './App' -describe('App', () => { - it('renders TrustVC heading', () => { - render() - expect(screen.getByText('TrustVC')).toBeInTheDocument() +describe('App Component', () => { + beforeEach(() => { + // Clear localStorage before each test + localStorage.clear() + }) + + it('renders without crashing', () => { + render( + + + + ) + }) + + it('renders Navbar component', () => { + render( + + + + ) + + // Check if navigation elements are present + expect(screen.getByText('Home')).toBeInTheDocument() + expect(screen.getByText('Ecosystem')).toBeInTheDocument() + }) + + it('starts with light mode by default', () => { + render( + + + + ) + + const app = document.querySelector('.min-h-screen') + expect(app).toBeInTheDocument() + }) + + it('persists dark mode to localStorage', () => { + render( + + + + ) + + // Find and click moon icon to enable dark mode + const buttons = screen.getAllByRole('button') + const moonButton = buttons.find(btn => + btn.querySelector('svg path[d*="M10.0762"]') + ) + + expect(moonButton).toBeTruthy() + fireEvent.click(moonButton as HTMLButtonElement) + expect(localStorage.getItem('darkMode')).toBe('true') + }) + + it('loads dark mode from localStorage', () => { + // Set dark mode in localStorage + localStorage.setItem('darkMode', 'true') + + const { container } = render( + + + + ) + + // Check if navbar has dark mode class + const nav = container.querySelector('.navbar-dark') + expect(nav).toBeInTheDocument() + }) + + it('applies dark mode class on the document body', () => { + localStorage.setItem('darkMode', 'true') + + render( + + + + ) + + expect(document.body.classList.contains('dark-mode')).toBe(true) + }) + + it('renders NotFound page for unknown routes', () => { + render( + + + + ) + + expect(screen.getByText(/Page not found/i)).toBeInTheDocument() + expect(screen.getByRole('link', { name: /Back to Home/i })).toHaveAttribute( + 'href', + '/' + ) }) }) diff --git a/src/App.tsx b/src/App.tsx index d9d0883..8874f9f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,13 +1,40 @@ +import { useState, useEffect } from 'react' +import Navbar from './components/common/Navbar' +import AppRouter from './routes' + function App() { + const [isDarkMode, setIsDarkMode] = useState(() => { + try { + const saved = localStorage.getItem('darkMode') + return saved ? JSON.parse(saved) === true : false + } catch { + return false + } + }) + + useEffect(() => { + localStorage.setItem('darkMode', JSON.stringify(isDarkMode)) + }, [isDarkMode]) + + useEffect(() => { + if (isDarkMode) { + document.body.classList.add('dark-mode') + } else { + document.body.classList.remove('dark-mode') + } + }, [isDarkMode]) + return ( -
-
-
-

- TrustVC -

-
-
+
+ +
) } diff --git a/src/__tests__/__fixtures__/oa/2.0/oa_dns_txt_docstore_no_network_field_ethereum_v2.json b/src/__tests__/__fixtures__/oa/2.0/oa_dns_txt_docstore_no_network_field_ethereum_v2.json new file mode 100644 index 0000000..321aa74 --- /dev/null +++ b/src/__tests__/__fixtures__/oa/2.0/oa_dns_txt_docstore_no_network_field_ethereum_v2.json @@ -0,0 +1,92 @@ +{ + "version": "https://schema.openattestation.com/2.0/schema.json", + "data": { + "id": "99058267-23e7-4540-977b-ef9790bb21c0:string:53b75bbe", + "name": "c763cfdd-f543-4258-a69a-c49fa9115d77:string:Opencerts Demo Certificate", + "description": "41571338-6f96-43c2-82bb-2886e2c0f5e7:string:Opencerts Demo Certificate", + "issuedOn": "43ad0d61-48f0-4cb1-ab2a-a3ce0d4862b6:string:2025-05-29T00:00:00+08:00", + "admissionDate": "f91e4fa4-6e7b-48b0-85ad-1ad7acd460e7:string:2020-08-01T00:00:00+08:00", + "graduationDate": "fb9be3b8-96db-418e-8940-ab45ad1ff246:string:2025-08-01T00:00:00+08:00", + "$template": { + "name": "4bb2ef9c-e9c1-486c-9f65-208a0e1d666f:string:OPENCERTS_DEMO", + "type": "c8028dfa-6d6e-4ea7-a5e9-ea99a41da40b:string:EMBEDDED_RENDERER", + "url": "d98a329b-67c9-4fec-bca5-3b0785883632:string:https://demo-renderer.opencerts.io" + }, + "issuers": [ + { + "name": "60f44aa6-318b-45a1-b3cb-7611d3fdfebc:string:Opencerts", + "documentStore": "4aee735e-ba44-40b5-bde4-62a2629295e9:string:0x641bDE53Df8C249dD123e532764420Ed82cfb664", + "identityProof": { + "type": "6180bc6f-7ffe-4002-8ca0-a2dc7a06f259:string:DNS-TXT", + "location": "567ea620-4e2b-4557-8fc3-65f7c9941a82:string:opencerts.io" + } + } + ], + "recipient": { + "name": "b35e2000-f5fc-4648-b8f0-e60e47b91688:string:Your Name", + "nric": "889d200a-2f77-4436-b24f-66da01f6f977:string:SXXXXXXXY", + "course": "976359b5-abd7-4589-ab9d-626bef6b87b4:string:OpenCerts Demo" + }, + "transcript": [ + { + "name": "80220920-efb3-4891-ba4d-f65ecbe94e08:string:Introduction to Programming", + "grade": "0c11d304-8a33-4607-8500-ace83f64a84b:string:A+", + "courseCredit": "ca5023ca-e1ba-464c-970a-3e95c800886d:string:3", + "courseCode": "149388ce-d243-4214-947d-bdce88275248:string:CS 1110", + "examinationDate": "4b56a0b6-911b-469b-a0af-ece45d1b1c3a:string:2020-12-01T00:00:00+08:00", + "semester": "097886a2-e1ea-4a56-8584-83a765623eec:string:1" + }, + { + "name": "aef69586-5c89-47a6-b19d-5cc8d63b8d06:string:Object Oriented Programming in Java", + "grade": "93c11754-a338-4b48-ba60-cf685087ddf5:string:A+", + "courseCredit": "8d72b490-02bd-41d2-b2c6-384b2216c146:string:4", + "courseCode": "e604a19b-8d27-439a-af9b-fe4d0447677e:string:CS 2110", + "examinationDate": "524e1b75-0c0d-4f7b-bf48-bd48feed2e08:string:2021-12-01T00:00:00+08:00", + "semester": "80f8ae4c-a31e-4317-88d9-368a9267bbfb:string:2" + }, + { + "name": "0631f3c1-4e93-407c-89bb-f7a4cd0e2492:string:Microeconomics", + "grade": "f958cd24-e9d0-4945-8e89-0a1915dcb9ec:string:A+", + "courseCredit": "5c0fe648-f011-4b48-8d7a-92748f9158b2:string:4", + "courseCode": "0aadd6a3-9319-4d36-b101-d6fe5437816b:string:ECON 3030", + "examinationDate": "8f4b8ce3-5b4e-4bce-8e2f-19ea61cb23a6:string:2022-05-01T00:00:00+08:00", + "semester": "24a2f0cb-914f-41d5-9301-3a6370c9a84b:string:3" + }, + { + "name": "6536359b-cf78-4721-8913-7269e6afb6e1:string:Macroeconomics", + "grade": "a0228362-4179-4407-a0ca-aabab8027e51:string:A", + "courseCredit": "2dab9b50-9adc-494f-94f2-3787d072b80e:string:4", + "courseCode": "7fff22b6-b9c7-49ea-9eae-67cb15fc22cd:string:ECON 3040", + "examinationDate": "60afa71e-2680-46ac-be21-650353fc2041:string:2023-05-01T00:00:00+08:00", + "semester": "db7c8385-1c18-4452-8a3b-e68d63178acb:string:4" + }, + { + "name": "490ee6ae-9db8-46e3-90f0-22fd3bf30ba0:string:Econometrics", + "grade": "c89b2f5b-e7a2-4795-9382-b229d7b45dbe:string:A-", + "courseCredit": "0c0450a3-7f5e-410c-8662-2184886045ce:string:4", + "courseCode": "1cee504f-11cd-4bb8-a074-2bc09ccb878a:string:ECON 3120", + "examinationDate": "79fa5252-3155-459b-8d77-f468109114dc:string:2024-05-01T00:00:00+08:00", + "semester": "eae9c859-de7d-4a34-a57c-0c3c2bab9ef3:string:5" + } + ], + "additionalData": { + "merit": "af2774a7-79f3-43b4-879e-02e7021abbba:string:Y", + "studentId": "d968a002-834f-490e-aedd-da8430ee9c66:string:123456", + "transcriptId": "47085854-5b87-420b-9e3e-e7e6b33222d0:string:001", + "certSignatories": [ + { + "signature": "5960e70e-8a78-479e-9ff1-43a536a8db47:string:data:image/png;base64,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", + "name": "5ca93796-e8a2-4ddb-bdae-77fee89e09ae:string:John Demo", + "position": "a7555002-b96a-4d33-8aec-6e5692440ff5:string:Dean of Demos", + "organisation": "28f18be7-037b-4b49-a188-3d6bf2ae5638:string:Opencerts" + } + ] + } + }, + "signature": { + "type": "SHA3MerkleProof", + "targetHash": "0aeccde6a769adf132e17ec171cd4ef4eb5e707337965f69ad7b777d6f73c050", + "proof": [], + "merkleRoot": "0aeccde6a769adf132e17ec171cd4ef4eb5e707337965f69ad7b777d6f73c050" + } +} diff --git a/src/__tests__/__fixtures__/oa/2.0/signed_wrapped_oa_dns_did_v2.json b/src/__tests__/__fixtures__/oa/2.0/signed_wrapped_oa_dns_did_v2.json new file mode 100644 index 0000000..e3de200 --- /dev/null +++ b/src/__tests__/__fixtures__/oa/2.0/signed_wrapped_oa_dns_did_v2.json @@ -0,0 +1,168 @@ +{ + "version": "https://schema.openattestation.com/2.0/schema.json", + "data": { + "issuers": [ + { + "id": "3d6d890c-e560-470d-8950-9013665afddc:string:did:ethr:0x433097a1C1b8a3e9188d8C54eCC057B1D69f1638", + "name": "cf9b3757-dcde-4d40-b1b3-1009678bc5a8:string:DEMO STORE", + "revocation": { + "type": "dbed69d0-e79f-4118-ad7f-fd73c583331b:string:NONE" + }, + "identityProof": { + "type": "ae510d68-fc15-49d2-a735-c6180a106b0d:string:DNS-DID", + "key": "397c8962-014b-4db8-849c-f7fd93a00e0e:string:did:ethr:0x433097a1C1b8a3e9188d8C54eCC057B1D69f1638#controller", + "location": "bb62dc90-b899-428d-a047-23f0836c7acf:string:example.tradetrust.io" + } + } + ], + "network": { + "chain": "bcccaacd-7489-42d6-b7be-0a0a71c0c0e9:string:FREE", + "chainId": "20684d2d-215d-4e64-b628-5717993a88dc:string:101010" + }, + "$template": { + "type": "a64a6bc1-77ba-4775-b371-e586ddbbb2d4:string:EMBEDDED_RENDERER", + "name": "c4ea0f16-a4ca-45f8-b1f4-18fd806f4cd7:string:CHAFTA_COO", + "url": "f8c569ef-4af3-47eb-a77e-dea496fca42b:string:https://generic-templates.tradetrust.io" + }, + "firstSignatoryAuthentication": { + "signature": "1f986756-0011-48ef-8e88-19a36d2823be:string:data:image/png;base64,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gMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIXVqaAAAAbSSURBVIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBP4/csBUQgAdQDwAAAAASUVORK5CYII=" + }, + "supplyChainConsignment": { + "exportCountry": { + "code": "3455b114-4277-48f9-a307-51a2bc3891c1:string:IN" + }, + "exporter": { + "postalAddress": { + "line1": "3b623f4d-24bf-4d3d-a026-9f043c6d04eb:string:Plot 123, Industrial Estate", + "line2": "5e0652cd-6595-405e-a769-e69503ffdd01:string:Sector 5, Tech Park", + "cityName": "1b78ad6e-00fc-4e30-ac80-001557030664:string:Mumbai", + "postcode": "2050ea9a-73c6-4357-9202-2eca9fa0a207:string:400001", + "countrySubDivisionName": "70cc8e28-86a6-442f-bacc-09c334392f91:string:Maharashtra", + "countryCode": "15ce7594-0206-4866-8330-32e57970e653:string:In" + }, + "iD": "fb5591e6-6114-451b-a202-05017eebd111:string:EXP-IN-XYZ-0001", + "name": "c34e84b8-8db7-4f26-82d3-7f1751b2f9e6:string:XYZ Exports Pvt. Ltd." + }, + "importCountry": { + "code": "827f7718-3844-4f07-87b9-06028126d316:string:GB" + }, + "importer": { + "postalAddress": { + "line1": "3da1de14-52b0-4c2a-bca5-eed30455add4:string:Unit 88, Commercial Docks", + "line2": "3e62be73-e8de-4b3e-aa8e-3bc558d0484c:string:Trade Zone West", + "cityName": "751ac166-d747-4f07-9680-c6a494c8f0b2:string:London", + "postcode": "96f51837-e209-4e3c-8ddd-1087303e884a:string:E16 4HQ", + "countrySubDivisionName": "0c6543d6-8215-45af-aa81-794739274c66:string:Greater London", + "countryCode": "aa80dcf3-3448-4cb8-912c-6cf850c5c6e0:string:GB" + }, + "iD": "a8279061-bd51-4da6-abdd-dd4f90cb9505:string:IMP-UK-XYZ-9999", + "name": "23401ac7-d889-4cbe-bea4-fa09f4651a5a:string:XYZ Foods Ltd." + }, + "includedConsignmentItems": [ + { + "crossBorderRegulatoryProcedure": { + "originCriteriaText": "2e9a7b8f-793e-4490-bcf1-7f2ef80c9ff1:string:Gross Volume: 2.5 CBM" + }, + "manufacturer": { + "postalAddress": { + "line1": "7e1a78e3-8912-46ef-88a3-0b5c54809425:string:Plot 45, Agro Park", + "line2": "6a5bd538-1ecc-491e-8d8d-8c9e2592db4c:string:Phase II", + "cityName": "4372091b-259d-4929-b741-e8bf0af6b99e:string:Karnal", + "postcode": "d7b6a3e1-7c13-4284-bca9-e0af0e2ed30b:string:132001", + "countrySubDivisionName": "69f051b2-98ac-4a62-917c-58e12e5bf5e4:string:Haryana", + "countryCode": "664aebf6-492f-4392-932c-5a61d271d508:string:in" + }, + "iD": "4ae8ecfa-3819-4eca-82bf-e91907922d6f:string:MFG-IN-XYZ-001", + "name": "b9356c78-bfcd-4986-ae9e-5203991f1531:string:XYZ Agro Industries" + }, + "tradeLineItems": [ + { + "invoiceReference": { + "attachedBinaryFile": { + "uRI": "22e422a6-76f2-44ef-b98f-a29b3cf297f7:string:https://docs.tweglobal.com/8c624a35-9497-41fb-a548-cb5cf43bac21.pdf" + }, + "iD": "f419c4ee-405c-48a8-9364-dff0dc15d228:string: INV-XYZ-0001", + "formattedIssueDateTime": "cdbb5af6-e5be-4289-b10f-e73a901dfa52:string:2025-06-10T10:09:00.000Z" + }, + "tradeProduct": { + "harmonisedTariffCode": { + "classCode": "5a41a606-6566-4a0d-a6ba-d4c1a0722fee:string:10063090", + "className": "9a83b06a-5b20-47c4-80c3-846de83e31dc:string:Semi-milled or wholly milled rice, whether or not polished or glazed" + }, + "originCountry": { + "code": "69600792-0323-4c13-96dc-7bb928ff014b:string:IN" + }, + "iD": "16452d53-026d-430d-a896-996513d67044:string:TP-XYZ-1001", + "description": "49bfa3fa-74f3-4a78-8726-370731b93afa:string:XYZ Premium Basmati Rice, 25kg Bag" + }, + "transportPackages": [ + { + "iD": "de6f5959-3add-4c4b-bedb-14bf890e117f:string:PKG-XYZ-0001", + "grossVolume": "56fab72d-088f-432e-8835-d2001fe4925c:string:3.0 CBM", + "grossWeight": "7b706484-3c21-47b4-ac7c-b7a5e4f083a4:string:1000 kg" + } + ], + "sequenceNumber": "b8c78444-e725-40b2-8829-979d7e73555f:number:1" + } + ], + "iD": "34865586-d59b-4a80-a346-acb427cd7ef7:string:10063090", + "information": "a824dfba-fab5-4732-844c-6a539e4f0469:string:Sample Rice Product, 25kg Bag" + } + ], + "loadingBaseportLocation": { + "iD": "c8c586e6-d999-42b2-880f-0743c5d2fd97:string:PORT-IN-XYZ", + "name": "0476a486-296a-4cb3-b35e-8ae8cc03b288:string:Nhava Sheva (JNPT), India" + }, + "mainCarriageTransportMovement": { + "usedTransportMeans": { + "name": "abd46ee0-bdb2-4043-819e-3190779b2cd5:string:Vessel – XYZ CARRIER", + "iD": "29d85737-23f9-4cdd-8248-df5665c03f2f:string:VSL-XYZ-0001" + }, + "departureEvent": { + "departureDateTime": "6158cfe3-cfeb-4d1e-9c75-1932a1188c2b:string:2025-06-18T10:17:00.000Z" + }, + "iD": "b2f53a66-1647-46a7-a5d7-898a54391120:string:MCTM-XYZ-1234", + "information": "7f17f4b6-30cd-41e7-891e-834232828b8f:string:Ocean Freight via XYZ Shipping Lines" + }, + "unloadingBaseportLocation": { + "iD": "69e796b4-80b5-4a38-ad50-71aa89e64c5e:string:PORT-UK-XYZ", + "name": "09130b7e-a90c-435d-bdd2-ad024dd37471:string:Port of Felixstowe, United Kingdom" + }, + "iD": "72c81fc5-d83a-4f3c-9011-d185a0f9e499:string:CONS-FAKE-12345" + }, + "iD": "31d1b0d5-ceb7-496c-884b-be9a96c379a7:string:COO-FAKE-0001", + "issueDateTime": "3f854e65-0cfe-4553-9ed0-9777bbfa7636:string:2025-06-18T10:09:00.000Z", + "attachments": [ + { + "data": "bc917164-ae21-4e09-859b-9c8038e06e05:string:JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==", + "filename": "caef164f-bfc8-4370-a959-e8a02ba56f9f:string:sample.pdf", + "type": "1b96588d-18e2-4910-a49d-ab9c8a8d7864:string:application/pdf" + }, + { + "data": "a08aab84-e181-4f34-bde4-ba9c1d8d80ea:string:JVBERi0xLjYNJeLjz9MNCjI0IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA0L0xlbmd0aCAyMTYvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjePI9RS8MwFIX/yn1bi9jepCQ6GYNpFBTEMsW97CVLbjWYNpImmz/fVsXXcw/f/c4SEFarepPTe4iFok8dU09DgtDBQx6TMwT74vaLTE7uSPDUdXM0Xe/73r1FnVwYYEtHR6d9WdY3kX4ipRMV6oojSmxQMoGyac5RLBAXf63p38aGA7XPorLewyvFcYaJile8rB+D/YcwiRdMMGScszO8/IW0MdhsaKKYGA46gXKTr/cUQVY4We/cYMNpnLVeXPJUXHs9fECr7kAFk+eZ5Xr9LcAAfKpQrA0KZW5kc3RyZWFtDWVuZG9iag0yNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgNC9MZW5ndGggNDkvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjeslAwULCx0XfOL80rUTDU985MKY42NAIKBsXqh1QWpOoHJKanFtvZAQQYAN/6C60NCmVuZHN0cmVhbQ1lbmRvYmoNMjYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDkvTGVuZ3RoIDQyL04gMi9UeXBlL09ialN0bT4+c3RyZWFtDQpo3jJTMFAwVzC0ULCx0fcrzS2OBnENFIJi7eyAIsH6LnZ2AAEGAI2FCDcNCmVuZHN0cmVhbQ1lbmRvYmoNMjcgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDUvTGVuZ3RoIDEyMC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yNFIwULCx0XfOzytJzSspVjAyBgoE6TsX5Rc45VdEGwB5ZoZGCuaWRrH6vqkpmYkYogGJRUCdChZgfUGpxfmlRcmpxUAzA4ryk4NTS6L1A1zc9ENSK0pi7ez0g/JLEktSFQz0QyoLUoF601Pt7AACDADYoCeWDQplbmRzdHJlYW0NZW5kb2JqDTIgMCBvYmoNPDwvTGVuZ3RoIDM1MjUvU3VidHlwZS9YTUwvVHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA2LjAgKFdpbmRvd3MpPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDA2LTAzLTA2VDE1OjA2OjMzLTA1OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZVBTNS5kbGwgVmVyc2lvbiA1LjIuMjwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wNy0xNVQxMDoxMjoyMSswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDctMTVUMTA6MTI6MjErMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnV1aWQ6ZmYzZGNmZDEtMjNmYS00NzZmLTgzOWEtM2U1Y2FlMmRhMmViPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOjM1OTM1MGIzLWFmNDAtNGQ4YS05ZDZjLTAzMTg2YjRmZmIzNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5CbGFuayBQREYgRG9jdW1lbnQ8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+RGVwYXJ0bWVudCBvZiBKdXN0aWNlIChFeGVjdXRpdmUgT2ZmaWNlIG9mIEltbWlncmF0aW9uIFJldmlldyk8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ1lbmRvYmoNMTEgMCBvYmoNPDwvTWV0YWRhdGEgMiAwIFIvUGFnZUxhYmVscyA2IDAgUi9QYWdlcyA4IDAgUi9UeXBlL0NhdGFsb2c+Pg1lbmRvYmoNMjMgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMD4+c3RyZWFtDQpIiQIIMAAAAAABDQplbmRzdHJlYW0NZW5kb2JqDTI4IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA0L1ByZWRpY3RvciAxMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9JRFs8REI3Nzc1Q0NFMjI3RjZCMzBDNDQwREY0MjIxREMzOTA+PEJGQ0NDRjNGNTdGNjEzNEFCRDNDMDRBOUU0Q0ExMDZFPl0vSW5mbyA5IDAgUi9MZW5ndGggODAvUm9vdCAxMSAwIFIvU2l6ZSAyOS9UeXBlL1hSZWYvV1sxIDIgMV0+PnN0cmVhbQ0KaN5iYgACJjDByGzIwPT/73koF0wwMUiBWYxA4v9/EMHA9I/hBVCxoDOQeH8DxH2KrIMIglFwIpD1vh5IMJqBxPpArHYgwd/KABBgAP8bEC0NCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQo0NTc2DQolJUVPRg0K", + "filename": "5ba283ff-393d-428a-9f3a-864daf2bcb77:string:veryverylongfilenameoverhereveryverylongfilenameoverhere.pdf", + "type": "2a233834-f805-4057-a414-719f8fa18b2e:string:application/pdf" + } + ], + "links": { + "self": { + "href": "ad641112-04b2-43b1-9c1a-875c7c609742:string:https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.tradetrust.io%2Fstatic%2FOA%2Fcertificate-of-origin-default.json%22%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%2F%22%2C%22chainId%22%3A%22101010%22%7D%7D" + } + } + }, + "signature": { + "type": "SHA3MerkleProof", + "targetHash": "9d10572d85cd29fdefaf17c6b94ae0e5425b2ea93bf75bcdb1840a6a93e13aab", + "proof": [], + "merkleRoot": "9d10572d85cd29fdefaf17c6b94ae0e5425b2ea93bf75bcdb1840a6a93e13aab" + }, + "proof": [ + { + "type": "OpenAttestationSignature2018", + "created": "2026-02-03T08:27:42.117Z", + "proofPurpose": "assertionMethod", + "verificationMethod": "did:ethr:0x433097a1C1b8a3e9188d8C54eCC057B1D69f1638#controller", + "signature": "0x3ae4db51d9ab26d01f9005ad6839f24aa3c8b218bddaf487dda48296d4f7f95e427ee45e6b784d6e6924ea0af2251a94859bcd25b73156a9f4b4e5bb5c4345ea1c" + } + ] +} diff --git a/src/__tests__/__fixtures__/oa/2.0/signed_wrapped_oa_dns_txt_docstore_v2.json b/src/__tests__/__fixtures__/oa/2.0/signed_wrapped_oa_dns_txt_docstore_v2.json new file mode 100644 index 0000000..0912c6c --- /dev/null +++ b/src/__tests__/__fixtures__/oa/2.0/signed_wrapped_oa_dns_txt_docstore_v2.json @@ -0,0 +1,109 @@ +{ + "version": "https://schema.openattestation.com/2.0/schema.json", + "data": { + "name": "d9464745-6108-42d8-af4d-6f0e82d42899:string:TradeTrust ChAFTA Certificate of Origin v2", + "supplyChainConsignment": { + "exportCountry": { + "code": "fe024186-d712-4475-ac98-d7f82d3aff3a:string:65" + }, + "exporter": { + "postalAddress": { + "line1": "dd62eff8-af36-4a89-95e0-7b26455ab870:string:10 Pasir Panjang Road #10-01 Mapletree Business City", + "postcode": "58f6a94a-5d09-4a5c-99e9-6c3fdacf8ff7:string:117438", + "cityName": "f287d49c-9139-459c-b2da-a87276f9b723:string:Singapore", + "countryCode": "0e7139b8-aeea-448f-b445-f6c20373e7b5:string:65" + }, + "iD": "1ee27a61-719d-4a06-ba19-61828c20c1d7:string:333", + "name": "239966a6-2147-4692-ba43-0078d7741790:string:John Doe" + }, + "importCountry": { + "code": "4871cf7c-ef3d-4ea7-98d7-63d4c02d6407:string:60" + }, + "importer": { + "postalAddress": { + "line1": "83c4339b-fceb-43f2-b597-224d1a0d6164:string:106 Blk F7 Seksyen 1 Bdr Baru Wangsa Maju Setapak", + "cityName": "54caec03-7514-4f1b-ad94-8e4f1ae380b8:string:Kuala Lumpur", + "postcode": "34bb275d-55ec-4dea-9689-76f0fe9e4062:string:53300", + "countryCode": "718306ff-c27e-4cf7-a959-46b433dcccb8:string:60" + }, + "iD": "2a907caf-03d0-428a-b80c-331aa67dc9e2:string:444", + "name": "73da8ae6-58e5-4dc6-be4b-cb52ee417eda:string:Alice Tan" + }, + "loadingBaseportLocation": { + "iD": "bdf341f3-9e28-47d9-86a3-3abd6c5e532f:string:555", + "name": "9091c162-cf23-4443-a751-645144b9dd17:string:Some loading port name" + }, + "mainCarriageTransportMovement": { + "usedTransportMeans": { + "name": "0894b8d4-f416-44e4-b849-462c15c527c0:string:Van", + "iD": "9501e81a-a023-4a27-b41e-7c1b7540924a:string:777" + }, + "departureEvent": {}, + "iD": "cc4b20ba-d319-4bbf-be49-a8c01aa83934:string:666", + "information": "171f9c09-d74a-45c4-916f-7b58cd9b75f5:string:Some information here" + }, + "unloadingBaseportLocation": { + "iD": "a06f13db-dab2-4f67-8481-ddc97ea3a46d:string:888", + "name": "b3966acc-a5a7-4770-b047-3cdd8ae8a8ef:string:Some unloading port name" + }, + "iD": "6e8c7d60-56b3-452e-be01-b656a32e0d5d:string:222", + "information": "bfcd4724-1486-4e36-9e5a-2969789246ee:string:Consignment Information", + "includedConsignmentItems": [] + }, + "$template": { + "type": "eafb8c44-2925-4fd6-b262-8992876a80d0:string:EMBEDDED_RENDERER", + "name": "ee7d000a-e5bf-40c1-ad7d-7833319c462d:string:CHAFTA_COO", + "url": "ec9da1d2-1be2-4b33-b96f-a7f0524fc57a:string:https://generic-templates.tradetrust.io" + }, + "issuers": [ + { + "name": "ab4b2ef9-6be3-4df6-a4c4-b59523dbd8e5:string:Demo Issuer", + "documentStore": "a0b4f0d3-01c0-4072-a8ad-6f8fa6ee08ef:string:0xA594f6e10564e87888425c7CC3910FE1c800aB0B", + "identityProof": { + "type": "7a473256-585c-43b2-a429-1ef5d819266e:string:DNS-TXT", + "location": "5ea60d6e-24d9-4537-b4ee-564fe2b8735f:string:example.tradetrust.io" + } + } + ], + "firstSignatoryAuthentication": { + "signature": "5c354242-e993-41f8-9fb8-eae22dea5bde:string:data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QOBaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTU3NzIsIDIwMTQvMDEvMTMtMTk6NDQ6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9IjI0NjlGRjdFNDlEMThFM0U5Njg1NjlEMUQxN0I2NEI0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI2MTIxNkJFREE1QTExRTY4QjkyQUE2NTA4NTZFNkRCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI2MTIxNkJEREE1QTExRTY4QjkyQUE2NTA4NTZFNkRCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE0IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmY2OTUxMGQ5LWM0NGMtMzM0ZC1iNzJiLTU1MWZkMTdkZTBiMCIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjUwYWY1Y2Y2LWQ5NmQtMTFlNi04NTdiLTg2NWI3MTA4OTkwZSIvPiA8L3JkZjpEZXNjcmlwdGlv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", + "actualDateTime": "60a68c99-c899-4d3e-a83b-63245406435f:string:2020-05-29T09:46:34Z", + "statement": "e7efc705-2b39-4f48-90cc-87859e2c6e0c:string:The undersigned hereby declares that the above-stated information is correct and that the goods exported to [importer] comply with the origin requirements specified in the China-Australia Free Trade Agreement." + }, + "issueLocation": { + "iD": "b0e019da-f63c-41f2-8dea-742f7fc16075:string:unece.un.org:locode:AUADL", + "name": "52c39e08-bac5-4cdf-9cd7-5eab815e46a2:string:Adelaide" + }, + "issuer": { + "iD": "bffd6a1a-a532-4045-b6c0-cc1b0e180a74:string:id:wfa.org.au", + "name": "f8618138-61d7-4cdb-b2cd-c6f31237051e:string:Australian Grape and Wine Incorporated", + "postalAddress": { + "line1": "e8c47018-dba7-4da1-ac18-5a450354c323:string:Level 1, Industry Offcies", + "line2": "a1f12974-bc7f-40dd-afef-4b0cb01ca4db:string:Botanic Road", + "cityName": "ac291751-3d55-4fae-94b0-2cb78e08fbae:string:Adelaide", + "postcode": "0f259d18-9f53-4e15-89fe-f9799b32f886:string:5000", + "countrySubDivisionName": "9514b11b-ed05-4ef6-8ee3-05b88f30137f:string:SA", + "countryCode": "6451c62b-6df0-48d3-b529-957e91f9d710:string:AU" + } + }, + "status": "61b95c57-6552-4f1c-aa3c-2d212e1a87f2:string:issued", + "isPreferential": "cba0b32d-a2b4-4e74-9b3d-fd66fe6e59aa:boolean:true", + "freeTradeAgreement": "7caf8294-3602-40aa-96b5-d6eac8c38900:string:CHAFTA", + "iD": "b46da2a8-06d0-4389-919b-7a663f0205f7:string:111", + "links": { + "self": { + "href": "a9d40b34-fef3-4d95-ba49-c2bd0256ea37:string:https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.openattestation.com%2Fstatic%2Fdocuments%2Ftradetrust%2Fv2%2Fchafta-coo-stability.json%22%2C%22permittedActions%22%3A%5B%22VIEW%22%5D%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%22%2C%22chainId%22%3A%22101010%22%7D%7D%0A" + } + }, + "network": { + "chain": "193d78e7-2cb8-4e00-b86f-45e09654aa54:string:FREE", + "chainId": "60296159-6d5e-4016-b04e-e6bcec325d36:string:101010" + } + }, + "signature": { + "type": "SHA3MerkleProof", + "targetHash": "73e4e9ae2269686ea0a0bed873f042fb690c52370565ee7db3c6e822773917fb", + "proof": [], + "merkleRoot": "73e4e9ae2269686ea0a0bed873f042fb690c52370565ee7db3c6e822773917fb" + } +} diff --git a/src/__tests__/__fixtures__/oa/2.0/signed_wrapped_oa_dns_txt_token_registry_v2.json b/src/__tests__/__fixtures__/oa/2.0/signed_wrapped_oa_dns_txt_token_registry_v2.json new file mode 100644 index 0000000..509e97c --- /dev/null +++ b/src/__tests__/__fixtures__/oa/2.0/signed_wrapped_oa_dns_txt_token_registry_v2.json @@ -0,0 +1,56 @@ +{ + "version": "https://schema.openattestation.com/2.0/schema.json", + "data": { + "name": "6c6ff1b0-1f76-44f6-acb4-1f4480adb40d:string:TradeTrust Bill of Lading v2", + "shipper": { + "address": { + "street": "c9f4a183-0607-409b-ab2b-ec4247d45a74:string:One North", + "country": "636102b0-b894-4315-a7e8-b51415348a94:string:Singapore" + }, + "name": "a9f78f2e-c6a8-4e5b-bae3-5482bd21b456:string:Demo Shipper" + }, + "consignee": { + "name": "2cede8d9-9c02-483b-b504-bf8618a99bc4:string:Demo Consignee" + }, + "notifyParty": { + "name": "0304dc0c-96d4-4d7a-b981-148132e290fb:string:Demo Notify" + }, + "$template": { + "type": "ae7232e7-fd0c-4f9a-8f42-52980d469656:string:EMBEDDED_RENDERER", + "name": "c25a962c-557b-42cf-9ca1-d44ec85cca25:string:BILL_OF_LADING", + "url": "f8aec37c-331b-4025-a9b8-11ef2f60a8e5:string:https://generic-templates.tradetrust.io" + }, + "issuers": [ + { + "identityProof": { + "type": "a8b5bfdf-0e2c-4790-9148-232f50b04d1e:string:DNS-TXT", + "location": "fbd510ad-698c-4c5e-9864-ef6738b80201:string:example.tradetrust.io" + }, + "name": "06940f1d-9c4b-42e9-8d75-92b504a74487:string:Demo token registry", + "tokenRegistry": "01a0a2c3-b521-41c0-90e8-522e593f3913:string:0x71D28767662cB233F887aD2Bb65d048d760bA694" + } + ], + "blNumber": "10a9e9c4-fb9c-402c-b51f-2391a71f64db:string:123", + "vessel": "98545c1c-f5fb-4fcb-90b7-e6590cf6ccf3:string:1", + "voyageNo": "a6821d2a-6ebf-4cd2-9708-78b41bfebe75:string:100", + "portOfLoading": "8d8b6c03-53dd-4409-8bde-4cacc1fb614c:string:Singapore Port", + "portOfDischarge": "ad8027a1-f4db-46ad-9f59-513f1f17a95f:string:China Port", + "placeOfReceipt": "a7222399-b500-4bf9-9ab8-51cb6f89a422:string:Beijing", + "placeOfDelivery": "46a36db7-9485-4c0c-8c23-42b3a3e627eb:string:Singapore", + "links": { + "self": { + "href": "4aab0503-088d-49ca-a2e6-917c910c9ca3:string:https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.openattestation.com%2Fstatic%2Fdocuments%2Ftradetrust%2Fv2%2Febl-stability.json%22%2C%22permittedActions%22%3A%5B%22VIEW%22%5D%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%22%2C%22chainId%22%3A%20%22101010%22%7D%7D" + } + }, + "network": { + "chain": "6b1ed020-7e1f-4969-9d9d-3360aaed3e9c:string:FREE", + "chainId": "30e1af7c-40f0-4921-8702-bae3154977f8:string:101010" + } + }, + "signature": { + "type": "SHA3MerkleProof", + "targetHash": "45c4f4dde4e8da7b0b3eb2ac99fc05a1226b513773a4ef1e0c6389bf30de7a3f", + "proof": [], + "merkleRoot": "45c4f4dde4e8da7b0b3eb2ac99fc05a1226b513773a4ef1e0c6389bf30de7a3f" + } +} diff --git a/src/__tests__/__fixtures__/oa/3.0/oa_dns_txt_token_registry_no_network_field_stability_v3.json b/src/__tests__/__fixtures__/oa/3.0/oa_dns_txt_token_registry_no_network_field_stability_v3.json new file mode 100644 index 0000000..052af19 --- /dev/null +++ b/src/__tests__/__fixtures__/oa/3.0/oa_dns_txt_token_registry_no_network_field_stability_v3.json @@ -0,0 +1,79 @@ +{ + "version": "https://schema.openattestation.com/3.0/schema.json", + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://schemata.openattestation.com/com/openattestation/1.0/OpenAttestation.v3.json", + "https://schemata.tradetrust.io/io/tradetrust/bill-of-lading/1.0/bill-of-lading-context.json" + ], + "type": ["VerifiableCredential", "OpenAttestationCredential"], + "issuer": { + "id": "https://example.com", + "name": "Demo token registry", + "type": "OpenAttestationIssuer" + }, + "issuanceDate": "2010-01-01T19:23:24Z", + "openAttestationMetadata": { + "template": { + "type": "EMBEDDED_RENDERER", + "name": "BILL_OF_LADING", + "url": "https://generic-templates.tradetrust.io" + }, + "proof": { + "type": "OpenAttestationProofMethod", + "method": "TOKEN_REGISTRY", + "value": "0x71D28767662cB233F887aD2Bb65d048d760bA694" + }, + "identityProof": { + "type": "DNS-TXT", + "identifier": "example.tradetrust.io" + } + }, + "credentialSubject": { + "name": "TradeTrust Bill of Lading v3", + "blNumber": "123", + "scac": "DEMO", + "carrierName": "Demo Carrier", + "shipper": { + "name": "Demo Shipper", + "address": { + "street": "One North", + "country": "Singapore" + } + }, + "consignee": { + "name": "Demo Consignee" + }, + "notifyParty": { + "name": "Demo Notify" + }, + "vessel": "1", + "voyageNo": "100", + "portOfLoading": "Singapore Port", + "portOfDischarge": "China Port", + "placeOfReceipt": "Beijing", + "placeOfDelivery": "Singapore", + "packages": [ + { + "description": "Green Apples", + "weight": "20", + "measurement": "100" + } + ], + "links": { + "self": { + "href": "https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.openattestation.com%2Fstatic%2Fdocuments%2Ftradetrust%2Fv3%2Febl-stability.json%22%2C%22permittedActions%22%3A%5B%22VIEW%22%5D%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%22%2C%20%22chainId%22%3A%20%22101010%22%7D%7D" + } + } + }, + "proof": { + "type": "OpenAttestationMerkleProofSignature2018", + "proofPurpose": "assertionMethod", + "targetHash": "97cf312985330060a303713aa19af47b31d30f57405010c8a667665fd447f7e6", + "proofs": [], + "merkleRoot": "97cf312985330060a303713aa19af47b31d30f57405010c8a667665fd447f7e6", + "salts": "W3sidmFsdWUiOiI0NWQxZTQzMWY3OGQ0YWY2NGE2NzI5OTE5ZmRkMmUwNDMxODZhYWMzNzZjODI5ODNjODQ1ZmQyZjM1ZjdmOGIyIiwicGF0aCI6InZlcnNpb24ifSx7InZhbHVlIjoiY2Y4ZGJhNWE1MWUwZGM2YmEyMjU4MzFkN2JiNGM0NzU4YWY4MzM5NmEzOTMwZWI0MjJkY2U1YWI0ZWFiMjQ4YSIsInBhdGgiOiJAY29udGV4dFswXSJ9LHsidmFsdWUiOiJmYTQxOGRhMDcyMjRhNjhhOGM5OTE4ZTcyMGIwYjY2MTIwYWZmZWRjOTQyMjc1NTFhMjNjYzJjODA4NTYyZjRlIiwicGF0aCI6IkBjb250ZXh0WzFdIn0seyJ2YWx1ZSI6IjNlNWQ4ZGU2YzFmOTU3YjllNDY0NGFiZDhlNzZkM2M5ZjJjY2I2NzJjZGNhNTYxYjY2MTM5MzM4YTg1OWNiN2IiLCJwYXRoIjoiQGNvbnRleHRbMl0ifSx7InZhbHVlIjoiNTc1MmE0ZDMxYjFjZGM4NWNiYWZhODUyN2MzOTQwZTM2NjY3ZjIyMTdhZDFiZWY4ZDZmMmZjYzMwYTkxY2JkNiIsInBhdGgiOiJ0eXBlWzBdIn0seyJ2YWx1ZSI6IjhkZTU4MDEwYjU1MDcxOTk1OWMyMjNkODFkYTgyYjIwZjVlOGE3NDQwNmQ3MDZiOWFmMjJjOTA0YTRjMTU5MTQiLCJwYXRoIjoidHlwZVsxXSJ9LHsidmFsdWUiOiJhZTM0NjMyMzM0ZjkwOTY0MjgxYzk1OTdjZTM3ZTFlZWY3MDA5OWMyNDY4OTM1MjVlY2QxMWNkMzIxNGJjMjllIiwicGF0aCI6Imlzc3Vlci5pZCJ9LHsidmFsdWUiOiJhYWE1M2Q5MWQ5ODQxOTI2NzFkOGViYjA2N2JlY2EyOTRiMjA5ZWZiN2I1MjY2ZjZiOGUzYWU2Y2Q3ZTE5YzEwIiwicGF0aCI6Imlzc3Vlci5uYW1lIn0seyJ2YWx1ZSI6ImUxZDkxYWZhZDU3MmVhMzA2YWVmZTU1NzMzNzM5M2VjOTYwZjUxZjIzN2E5Mjc2YmZjYTg4YzE0NTFiNDM2NzgiLCJwYXRoIjoiaXNzdWVyLnR5cGUifSx7InZhbHVlIjoiOTRkYjNjMDNiOTcxY2QwYzAwYTkxZjAzZGY0M2ZkYzBiZTg0NjRhMTY2Y2U5NGE4M2YyZWIyMWQ3YWE0NTRhNCIsInBhdGgiOiJpc3N1YW5jZURhdGUifSx7InZhbHVlIjoiMDk5NDZhYWJlMWZiODBmYzE3MGFmNjkzNzY1NGExNTc4ZGFiN2Y3ZDhjNWQzYTVhMDU2NDU5NDc1NjhiNmQ3YSIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS50ZW1wbGF0ZS50eXBlIn0seyJ2YWx1ZSI6ImQ1YTk4YTQwYWNmOGQxZDNmZjY1Y2M1YjNjYmEzNmJjZWJmZjJlNzQ0YTRmYjU2ODhhNjRmMzI4MThhMDQ3YmYiLCJwYXRoIjoib3BlbkF0dGVzdGF0aW9uTWV0YWRhdGEudGVtcGxhdGUubmFtZSJ9LHsidmFsdWUiOiIxZTMxNmQzYTQ3OTRlNTljMzJhZTcxNTZhZDQyYjJjMDNiODJiZWViNjIyMDUxMDI4YjlkNDdiZTI1Yjc2MDZmIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLnRlbXBsYXRlLnVybCJ9LHsidmFsdWUiOiIxYTdlZmY2ODM5NjA1ZDgyNGMwY2FjZjg2OWQ3MmUwZTlmYjY5NzBkOGQxZDVhZmQxNWNhOWU2NmUxZWYwNWJjIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLnByb29mLnR5cGUifSx7InZhbHVlIjoiYjllYWVhYTQzN2RiOGY5ZTY2YzAwN2FmZWIyNjlhZDM3Njk3MjM2NTI5NWZjYTVlZWI4N2ExMjhhMzlhNTg4OSIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS5wcm9vZi5tZXRob2QifSx7InZhbHVlIjoiZDBlNDFiMzM1ZGY3ZGFiOTA2YTk2MDE4OWY1NjkxZTc2MzJjODBkNjI4N2Q0ODMxNjFmODYwMzQ1ZWZhMWIzZSIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS5wcm9vZi52YWx1ZSJ9LHsidmFsdWUiOiI2OGM2OTYwMzU2YTk0ZDdlNDc3NDcyNjY1NjE0Nzc3MjBkZTMyZDE2YTgwMTBhNzA2ZmFlMTYyMTdmOGE1NmZiIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLmlkZW50aXR5UHJvb2YudHlwZSJ9LHsidmFsdWUiOiIzMGU3M2ZiOWNkYTI2YjU4M2MwZTY2NDA1OWM5ZDU3ZjU0NjRmMjAyYWM1YjFmY2EzNDNkYTM5MTk2Y2MyY2UwIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLmlkZW50aXR5UHJvb2YuaWRlbnRpZmllciJ9LHsidmFsdWUiOiJlZmZlNDZjOGUwMGQ3ZDgyNzJhYmNmMjNiYWIzMmU3NTBkYzg1MjVmMmE4ZDNmNmE0YTVlYjMzNTU0YmJhMWIyIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0Lm5hbWUifSx7InZhbHVlIjoiMmIwZTc0ZmY5N2RiMDkwYzFmMDk2ZmM2YjIzMGE3MTczOGQ1ZGYyODZjODMyYjE4NWY5OTFlMTNkNDhjNDIyZCIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5ibE51bWJlciJ9LHsidmFsdWUiOiIzNzNlNmNjYjMwNTkzOTdhOWE0ZjM5YmMyM2ZjYmVhNGU3NzI5NTg5ZmU0M2JjNzU4MmMxYzdlY2E2MzRlOTlmIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnNjYWMifSx7InZhbHVlIjoiMzk5MDkxMGU2ZDgxOTRiN2Y3YmEyMzUzZWFhMDdkODNmOTBmODM5NWEyZTZkOTY0ZTU2ZDg3YmRlNzk4ZTJiNyIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5jYXJyaWVyTmFtZSJ9LHsidmFsdWUiOiI4MmNlN2U1Nzk2ODllN2MxMzkxZGYzNzhiMjc3ZDNlOGE0N2RkMDljMDQyOGZkMTQ5ZjdjZWI4MzlkN2MwZWE2IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnNoaXBwZXIubmFtZSJ9LHsidmFsdWUiOiJmYjg2ODAwODhlNmIyMjBhOGNjODJlNTVlMGUzNzVjMzEzMjhlMWMxZjMyYjMxOTliN2U5YzdkZGE3ZGNhZDI4IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnNoaXBwZXIuYWRkcmVzcy5zdHJlZXQifSx7InZhbHVlIjoiYTU4NTY4OGVlNzIxNWU5ZTRkZjY5OWFkY2ZjMzZkOWI4ZDIwOTJlNjU0OThhZmU2ZjQ2YWI4MjM3ODYxYjY5MCIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5zaGlwcGVyLmFkZHJlc3MuY291bnRyeSJ9LHsidmFsdWUiOiJlOWZjMzk1NGI0ZTNkZDUzZDQ1ZjQzMmI5MTc5ZWM0N2IyNTY0OWNlMDFkMDNmNTU5MmZiYzkyZTgzNTQ2ZGE4IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmNvbnNpZ25lZS5uYW1lIn0seyJ2YWx1ZSI6IjljZTA0Nzk2N2ExYzVhNmFjYTM5YmJiNGVjYjIyMTQ1Yzg3ZGI1ODVjNWRiY2E3ZjgzY2M4ZjAwZTZiYjJiZmUiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3Qubm90aWZ5UGFydHkubmFtZSJ9LHsidmFsdWUiOiIzZmU1OGJkNzVlNDEwMGNkNmI5YzAxMDA2ZTFlYTU5NTM4N2ViMzU0ZWFmZjgwNWVkMTQ2NjkxNzBmMTg2NjM1IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnZlc3NlbCJ9LHsidmFsdWUiOiJmNzZhMjE3MDg5ZGIzODA0MGMyM2U1MTNiYThhMTZjMjZhNDJiYzQyZDM5Y2M0YjQyM2YxYzQzMzk3YjNhOWVkIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnZveWFnZU5vIn0seyJ2YWx1ZSI6IjY4OWU5NzA3MTJkM2E3ZTczOTFkYWY1MTlmYzEzNzA0NGI4ODk0ZDA1NmIzZjIyMzkzMDg5MzI5MmY2YWZlYWUiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QucG9ydE9mTG9hZGluZyJ9LHsidmFsdWUiOiI3MmE5MzYyYTVlOWM3MDc1YWYyMmYzMDY0OGJlZGI5ZDIyOGE2MTA1MGNiODdjMWZjNDY5YzUyZDFmZDYzNTJjIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnBvcnRPZkRpc2NoYXJnZSJ9LHsidmFsdWUiOiJlMmVmNWIxZDA4MTQyNmI2OWU0ZjJmYWRlZWU4NjU0NzZjZDhmN2U1NGRlNDA0ZTczNDk0MjU5OTBkOTI5NjE1IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnBsYWNlT2ZSZWNlaXB0In0seyJ2YWx1ZSI6Ijk5MGUzNGRiYjIzYzBlZWUyNTMwNDQwNTdkNDQ5NDZhNzY5Y2M2OTYwNWM3MDU4MTFjODdlMWYyYjA1YmY2ZjIiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QucGxhY2VPZkRlbGl2ZXJ5In0seyJ2YWx1ZSI6IjdjODIxMjExZTVmN2FjYmM0MTdmZTIwOWY2MGFkODRlMWE5YzM3NzdjNGJkMTM4MDYyZTA2YjlmZmU0ODg2NmYiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QucGFja2FnZXNbMF0uZGVzY3JpcHRpb24ifSx7InZhbHVlIjoiNDQ3YWQ5YzQzZjMzMTcwNWRkMmY4ZmViYzBkNzBiYWVkZTI1YjViOWE5MWU3MDdjMjZhNjBlYTQxM2ZlZDBhYyIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5wYWNrYWdlc1swXS53ZWlnaHQifSx7InZhbHVlIjoiNmZkZmM1NWMwMTdlOWE3ZDU0NGRkOTk4MjEzNjIwZGMxYzhmOTIwOTBmYjFjODgxYWU3MDIwYzc2YjU2ZjI1MiIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5wYWNrYWdlc1swXS5tZWFzdXJlbWVudCJ9LHsidmFsdWUiOiI4NmI5ZjA2YzE5OTQzNGUwZjc2YTBhZjMwMTc5MzU5NTg1MmVjNGU3OTBlZmFlYzk2OTIyMTY5NDdhMTRjYzQ2IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmxpbmtzLnNlbGYuaHJlZiJ9XQ==", + "privacy": { + "obfuscated": [] + } + } +} diff --git a/src/__tests__/__fixtures__/oa/3.0/signed_wrapped_oa_dns_did_v3.json b/src/__tests__/__fixtures__/oa/3.0/signed_wrapped_oa_dns_did_v3.json new file mode 100644 index 0000000..9095c77 --- /dev/null +++ b/src/__tests__/__fixtures__/oa/3.0/signed_wrapped_oa_dns_did_v3.json @@ -0,0 +1,72 @@ +{ + "version": "https://schema.openattestation.com/3.0/schema.json", + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://schemata.openattestation.com/com/openattestation/1.0/OpenAttestation.v3.json", + "https://schemata.openattestation.com/io/tradetrust/bill-of-lading/1.0/bill-of-lading-context.json" + ], + "credentialSubject": { + "id": "urn:uuid:a013fb9d-bb03-4056-b696-05575eceaf42", + "shipper": { + "address": { + "street": "456 Orchard Road", + "country": "SG" + } + }, + "consignee": { + "name": "TradeTrust" + }, + "notifyParty": { + "name": "TrustVC" + }, + "packages": [ + { + "description": "1 Pallet", + "weight": "1", + "measurement": "KG" + } + ], + "blNumber": "20240315", + "scac": "20240315" + }, + "openAttestationMetadata": { + "template": { + "type": "EMBEDDED_RENDERER", + "name": "BILL_OF_LADING", + "url": "https://generic-templates.tradetrust.io" + }, + "proof": { + "type": "OpenAttestationProofMethod", + "method": "DID", + "value": "did:ethr:0xB26B4941941C51a4885E5B7D3A1B861E54405f90#controller", + "revocation": { + "type": "NONE" + } + }, + "identityProof": { + "type": "DNS-DID", + "identifier": "example.tradetrust.io" + } + }, + "issuanceDate": "2021-12-03T12:19:52Z", + "expirationDate": "2029-12-03T12:19:52Z", + "issuer": { + "id": "https://example.tradetrust.io", + "name": "DEMO TOKEN REGISTRY", + "type": "OpenAttestationIssuer" + }, + "type": ["VerifiableCredential", "OpenAttestationCredential"], + "proof": { + "type": "OpenAttestationMerkleProofSignature2018", + "proofPurpose": "assertionMethod", + "targetHash": "8f832ec1d27e09b2530cd051c9acea960971c238a3627369f33cdc58af9548cd", + "proofs": [], + "merkleRoot": "8f832ec1d27e09b2530cd051c9acea960971c238a3627369f33cdc58af9548cd", + "salts": "W3sidmFsdWUiOiI2MmZjMzg5NWVmZjg1ODI5Mjc1YmY5MzQxMzI4N2QwY2NjNDliYTcyY2VhOWM1NTA2NjFjYzk4YTA1YTczNjU0IiwicGF0aCI6InZlcnNpb24ifSx7InZhbHVlIjoiYzI1NWZhZmFkNWQ2YmFlODE3YWJmNDExOGVmZDMwODRiNDMwOTIyZjE4MDU2OGE2NmY4ZDFjZWUxMTFjZDA3NyIsInBhdGgiOiJAY29udGV4dFswXSJ9LHsidmFsdWUiOiIwZWZkZDkxOGFjOGZmYWU1ODQ0ZGE4M2U3YTYyNWJhMGYyOGUyYjJlMTVlMWFlNjYzODFmZDAyYmEwZmYwOWQxIiwicGF0aCI6IkBjb250ZXh0WzFdIn0seyJ2YWx1ZSI6ImE4YjY2ZDEzNmRlYzYxOGM3ODI1ZmVjOTg3ZTM2NWUzYzlmZjMwNzg3NmI0MDc2NWUwZGI2MjdmZjA1NTAxNGIiLCJwYXRoIjoiQGNvbnRleHRbMl0ifSx7InZhbHVlIjoiMGQyMDkyMDU2MjBmZjg1NGU5MjZhNDI1YTZmYTk3ZDdkZWM0YjNjODE4N2YzNmM5YTZjZGY0OGYxMjMzNzgwNyIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5pZCJ9LHsidmFsdWUiOiI3MTdmNDg1YjFiMGNjMTFjZjExODNkMzkzYWE1MDc5ZDljNzYzZjY0NmMxNzg1MmJjZTY1OTNmOGJjZGRmM2IyIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnNoaXBwZXIuYWRkcmVzcy5zdHJlZXQifSx7InZhbHVlIjoiNzUzM2M0ZDQxZmQ5Yjk2NjlkZmUyOWMxMmUyYTc1MDA1MzEyYjdjNmY0OWEzZDI2Yjk3Yjk3MTY3ODMxYmM4YyIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5zaGlwcGVyLmFkZHJlc3MuY291bnRyeSJ9LHsidmFsdWUiOiJkNDc2NTM1NzNlZTAxNzg5ODljZWU1ZmU2NjBiZjA4MzZmZDQzZTU1MmQ0M2JkMTM0MTg2ZGY3MTBmNWFkZTBhIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmNvbnNpZ25lZS5uYW1lIn0seyJ2YWx1ZSI6ImFjZGIyY2U5Y2YyMzlmZWYyMjE1MTNiZDRiZTAxNTk0OTc4ZmRlYjQ4ZjQ0NTk1NTkwOGZkYzc1ZTQxYmEzZWEiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3Qubm90aWZ5UGFydHkubmFtZSJ9LHsidmFsdWUiOiJkYTkxODQzNzIxZjU2MDljOGM3ZTE1MjgzNzBmZDdkMTA0ZGFmZGI3OWEzZDViMjMxZDI0MTM3NTZmMmRjNzZkIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnBhY2thZ2VzWzBdLmRlc2NyaXB0aW9uIn0seyJ2YWx1ZSI6IjE4Y2JjNTQxZmM1YzZmZDI5NzFlMjBiNGU5ZmQ1MDdmMDA4MzZhMTRkNWZmYjY3ZGEzNDYwMTFmYzk1MDllMjAiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QucGFja2FnZXNbMF0ud2VpZ2h0In0seyJ2YWx1ZSI6IjJlM2I4YzRiNzI5YjAxMjY2MGNkOTU2MTE1NGFmZGZhOGM0MmRmMDcxZDBlZjBhNjZhZTViZjNkMmZkYmU0YTciLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QucGFja2FnZXNbMF0ubWVhc3VyZW1lbnQifSx7InZhbHVlIjoiMzI1NTVmNjkyNDEyM2JhMDFjOGU2MWFhN2U3MGE1MGY5YWI1NzdlYmY2ODJmYTk3MTVkNWEyZTU5M2FlMWFlMiIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5ibE51bWJlciJ9LHsidmFsdWUiOiIxYjhhMTVhYzgzZmQ5MjUxNzVlNTRlODc4MGI2YWQzZjUxYzQwYjlhOGJlYTA3NGQzZGY1Y2U4MDI0MjAyMWNjIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnNjYWMifSx7InZhbHVlIjoiNTVlZGMxNjRiMWE5ODFjYWMzYTBiNGFlNDlmYzg0Y2Q0ZTY3YTBkNjZkODE4YjVhODcwOTUyMDgzMWI3MzA1NiIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS50ZW1wbGF0ZS50eXBlIn0seyJ2YWx1ZSI6ImMxYjI4OWZjYjY0OGY4NTU0Zjc4NmIxNTM1MmY3ZGVmYmI4Mzg3ZDBmMWI0NzFmYTM4M2I3YWMzYWQzY2E1OTYiLCJwYXRoIjoib3BlbkF0dGVzdGF0aW9uTWV0YWRhdGEudGVtcGxhdGUubmFtZSJ9LHsidmFsdWUiOiI0MDcxMTVmNjI0M2Q5NGJiNmQxYjUwMDU5YWM2MjI2ZGQ4NTQ5NTdlNTRmMzBhODI3ZjA2ZWM1YTFmODA4N2VkIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLnRlbXBsYXRlLnVybCJ9LHsidmFsdWUiOiI3YTM3NWY2MDkzMzA2MDFkYTQxODQwNzQ2ZGQyYjQyMTEwMDY3ZTMwOWQxMWY5MGJiODc3MmQ2N2U5NjMyNzdhIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLnByb29mLnR5cGUifSx7InZhbHVlIjoiMWU1YzJhYzRmYTNjN2U1NjQxYTJhMGQ3OGU1MTJjOTg1OGMzODI2NGJmMDMxNmI2ZGY2MDRiOTVkYzUyMmUyOSIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS5wcm9vZi5tZXRob2QifSx7InZhbHVlIjoiYzIxNjg5M2JhOWY5MjAzNmMyNGFlMGQ3MTQ4NjlkMzhmZjM3ZjgyZDhkYTc2YjBjZmNjYzRlM2RkZjY1YmQ5MSIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS5wcm9vZi52YWx1ZSJ9LHsidmFsdWUiOiI1ODk2MjA2MGZmZmY4ZDQyMGVjYjA1YjJjYTNiYzc5YWJiNDU4YTRlNzc2OGZkY2ZiYjM2ZmRmOWUyNDJlZDg0IiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLnByb29mLnJldm9jYXRpb24udHlwZSJ9LHsidmFsdWUiOiIxYmNmN2M4NWJkODQyNzI1OTEzNzZmMjk1OWUwMjk5MDdmZmM4N2M4MmM2NzE1NGJjMGQ2ZWE2MTAzMmJkZjE2IiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLmlkZW50aXR5UHJvb2YudHlwZSJ9LHsidmFsdWUiOiIzMzVkYjA4MzdlNDFiNDg0YWI1ZjYxYTI4MTA0M2FhODVmMWM5NzMwNTU4YmUwOGZkZTAwNmI3YTIwMjljMjJmIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLmlkZW50aXR5UHJvb2YuaWRlbnRpZmllciJ9LHsidmFsdWUiOiI2OWIxMThkZjM0NjQ3YjA1ODhkOTc1OWYzYzM2MzllZDExZDIzNWJhYWUyMzAwMGRjN2M3Y2ZlYjA5Yjc0YmU2IiwicGF0aCI6Imlzc3VhbmNlRGF0ZSJ9LHsidmFsdWUiOiJjNDc4MDVkMmIwNGEzNGQ3Y2UzOGVjMDAxZDI4Y2MxYjk3MzNmODgzYTRlYTJjNGQzYjBlYTRiMWZhOGFjYjkxIiwicGF0aCI6ImV4cGlyYXRpb25EYXRlIn0seyJ2YWx1ZSI6ImQyYWNiZjYwYzEwNDc2ZmNiOTQ0MDg2YTAwODRkMjIzZWJhMjdhNzQyYzNmN2JhNWU5ZWE1YjQ4MTE0NDljN2IiLCJwYXRoIjoiaXNzdWVyLmlkIn0seyJ2YWx1ZSI6IjBlNWVkOGNiMDFiZTA0ZGY2OTg0MzlhYTMyNjZjNTY0MGMxNjRlN2VmMTBjYTJjNGNmNWRiZmQzMWQzYjAxZTEiLCJwYXRoIjoiaXNzdWVyLm5hbWUifSx7InZhbHVlIjoiZTgyMTFhZTc2ZjYyMjI4N2Q2ZWM1MzkyNzg4ZDY1OTk1MGRlZWQ5MTg0MjcxZjRjZTFiZTFmNGU4ZWE0YmJjNCIsInBhdGgiOiJpc3N1ZXIudHlwZSJ9LHsidmFsdWUiOiI0MGE0ZTAwYjY0YjEzMWYwYTM2NTM2MDAyYjNjNjJkY2ZmNTI1ZDUyOGNiZGYzZTAxYTQ5ZDcwMzBhMTQ4MjhlIiwicGF0aCI6InR5cGVbMF0ifSx7InZhbHVlIjoiYWZlOTc0OGZkM2U0MGFmZGQyNWI4NmNlZTA5YTJhNjE3N2MzNDZhMDY4ZjJhNmZkMzk4OTNiN2Q2MTJkZWI0MyIsInBhdGgiOiJ0eXBlWzFdIn1d", + "privacy": { + "obfuscated": [] + }, + "key": "did:ethr:0xB26B4941941C51a4885E5B7D3A1B861E54405f90#controller", + "signature": "0x836a2547654da43f01641b3a0efff6797adc7e8b806d65cb9c67e25b119c70c34aa4c73a14d8138f52c05f6f7e1048ead225c85eb981fac8c2207895e48f14a91c" + } +} diff --git a/src/__tests__/__fixtures__/oa/3.0/signed_wrapped_oa_dns_txt_docstore_v3.json b/src/__tests__/__fixtures__/oa/3.0/signed_wrapped_oa_dns_txt_docstore_v3.json new file mode 100644 index 0000000..adecdfe --- /dev/null +++ b/src/__tests__/__fixtures__/oa/3.0/signed_wrapped_oa_dns_txt_docstore_v3.json @@ -0,0 +1,100 @@ +{ + "version": "https://schema.openattestation.com/3.0/schema.json", + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://schemata.tradetrust.io/io/tradetrust/Invoice/1.0/invoice-context.json", + "https://schemata.openattestation.com/com/openattestation/1.0/OpenAttestation.v3.json" + ], + "type": ["VerifiableCredential", "OpenAttestationCredential"], + "issuanceDate": "2010-01-01T19:23:24Z", + "issuer": { + "id": "https://example.com", + "name": "DEMO STORE", + "type": "OpenAttestationIssuer" + }, + "openAttestationMetadata": { + "template": { + "type": "EMBEDDED_RENDERER", + "name": "INVOICE", + "url": "https://generic-templates.tradetrust.io" + }, + "proof": { + "type": "OpenAttestationProofMethod", + "method": "DOCUMENT_STORE", + "value": "0xA594f6e10564e87888425c7CC3910FE1c800aB0B" + }, + "identityProof": { + "type": "DNS-TXT", + "identifier": "example.tradetrust.io" + } + }, + "credentialSubject": { + "name": "TradeTrust Invoice v3", + "id": "1111", + "date": "2018-02-21", + "customerId": "564", + "terms": "Due Upon Receipt", + "billFrom": { + "name": "ABC Company", + "streetAddress": "Level 1, Industry Offices", + "city": "Singapore", + "postalCode": "123456", + "phoneNumber": "60305029" + }, + "billTo": { + "company": { + "name": "DEF Company", + "streetAddress": "Level 2, Industry Offices", + "city": "Singapore", + "postalCode": "612345", + "phoneNumber": "61204028" + }, + "name": "James Lee", + "email": "def@company.com" + }, + "billableItems": [ + { + "description": "Service Fee", + "quantity": "1", + "unitPrice": "200", + "amount": "200" + }, + { + "description": "Labor: 5 hours at $75/hr", + "quantity": "5", + "unitPrice": "75", + "amount": "375" + }, + { + "description": "New client discount", + "quantity": "1", + "unitPrice": "50", + "amount": "50" + } + ], + "subtotal": "625", + "tax": "0", + "taxTotal": "0", + "total": "625", + "links": { + "self": { + "href": "https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.openattestation.com%2Fstatic%2Fdocuments%2Ftradetrust%2Fv3%2Finvoice-stability.json%22%2C%22permittedActions%22%3A%5B%22VIEW%22%5D%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%22%2C%20%22chainId%22%3A%20%22101010%22%20%7D%7D" + } + } + }, + "network": { + "chain": "FREE", + "chainId": "101010" + }, + "proof": { + "type": "OpenAttestationMerkleProofSignature2018", + "proofPurpose": "assertionMethod", + "targetHash": "6aced56cddb6d7c374d5a27a76a3c575f62c593759ab3ca95c6b3b0e0e67c0d9", + "proofs": [], + "merkleRoot": "6aced56cddb6d7c374d5a27a76a3c575f62c593759ab3ca95c6b3b0e0e67c0d9", + "salts": "W3sidmFsdWUiOiI2MzkwNDIwOTMwZWM5MWIwMzExOGZjZWQ4MjdhNmIxYzdkZTJjZjc0NGRkMGYwZmY1ZTI5NjZhNGQ2YzdkNGY1IiwicGF0aCI6InZlcnNpb24ifSx7InZhbHVlIjoiZWE4ZWY1NzVlMDk1YjQwMjIzMWU2ZTI3MzgyNzE2YjY2ZDlhZjAzY2ZjNGY0Y2Y3NDAzMmYyYzZjNWFhOTkwNSIsInBhdGgiOiJAY29udGV4dFswXSJ9LHsidmFsdWUiOiI5NGE2NmJmNDljNjcyZDViMmJiZDM1MTA3NDMwYjYwODIwNjMyMWRkMGU4Zjk0YTc5YmM5NTkwYTUxNzk1N2UzIiwicGF0aCI6IkBjb250ZXh0WzFdIn0seyJ2YWx1ZSI6IjI1NjQ4YjI5ZjA1NjFkNWEzZGJhNTNiZGUwNmE2MDc3NmNiY2VhNGJkN2FmOThkZjliZDhmZmNjMWIxYmUwYjQiLCJwYXRoIjoiQGNvbnRleHRbMl0ifSx7InZhbHVlIjoiNmIyMDg2NGM4Yzk3MTYzZDNmMTVlYjU1ODdiNmI3OGRjNTNhOGViODYyNTFkMGVjYzc3MTZhZGVhMTE4Nzg5MiIsInBhdGgiOiJ0eXBlWzBdIn0seyJ2YWx1ZSI6ImM2MzhlYzNkODY1ODNhNzY2MjIwMWI1YWIwZWYxZTc2YjM2MzlhNzM2ZmI3OTZjMmVkOGI0OTY3ZWQxNGYxYWIiLCJwYXRoIjoidHlwZVsxXSJ9LHsidmFsdWUiOiI4YjQ3NzcwMjFjY2E3N2JjYWUxN2IwNWRlOWZiODg5NmFlNjY5ZTVlYjAwYjY0ODBmNTRlOWQ1YTBiNzZlMTFlIiwicGF0aCI6Imlzc3VhbmNlRGF0ZSJ9LHsidmFsdWUiOiI5NjlkYzYwOTQyMWI5MGQ0YWQwOTE1OWEyYjZlNWEzYmQ0ZjQ4MmMzY2ZkYWIyNjc2YzE3MjhhYmRkNTQyOTE0IiwicGF0aCI6Imlzc3Vlci5pZCJ9LHsidmFsdWUiOiI3YTMwMzg5ZDM2MGNiMjZjZGU2ODM2N2ExZmU1NGY3NjZmMjc1NWI2YmRkNzVkMzc2NTdkYmRhNWQwZjEzMGYwIiwicGF0aCI6Imlzc3Vlci5uYW1lIn0seyJ2YWx1ZSI6IjI3YjJmYTA0YWRlMzU3ODI0NWNkZmFiNTEyNTAxNzZkMGFiZWFkMjFmZWVkYTMzNTkxODFmYTg4ODUzMjQ1YTMiLCJwYXRoIjoiaXNzdWVyLnR5cGUifSx7InZhbHVlIjoiYTE0NDMxODcxODA3NTEwZjJhZWI3YjY5NDZhMWYyNmU4N2M0ODVlNjRiOTVmMzUxNDVmYzk0ZDhjNGQ2YzBlMyIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS50ZW1wbGF0ZS50eXBlIn0seyJ2YWx1ZSI6IjczZTY3NzEwNWI2NGZjMzc4NTYyMzU0NDNiOTMzNDkzMzMxMWY1OWIxMmE5ZjZhNDdhODY3NDBkODc2MmRjNDgiLCJwYXRoIjoib3BlbkF0dGVzdGF0aW9uTWV0YWRhdGEudGVtcGxhdGUubmFtZSJ9LHsidmFsdWUiOiI4NGE0MWQ0MTk2OGIzMjNjZTRiY2I3NWZlNTdhZTRkNDY4MmNkZGEzMDVkOTc3YjBmMzI1NzhjMmI0NzE2OTM4IiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLnRlbXBsYXRlLnVybCJ9LHsidmFsdWUiOiI4ZjBiMDE2ODc5YTYxYzQxNThlNjM1YzlmYzI4ZjFjYzU5YzAwNDU1ZGEyNjAwNDIwNGJhN2YyODc5MmU5YjMxIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLnByb29mLnR5cGUifSx7InZhbHVlIjoiNDJiMzcyYWI0MGMyNGQzNTg4ZGJjZjAyZjhiNmU0NTJjMzJmZmVjODc0OWUyYWQyNDYzMzA1YmMzNzg1NzUwNyIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS5wcm9vZi5tZXRob2QifSx7InZhbHVlIjoiZGJkY2Q2YmU1NTg4MjQxNDY5OWE5OTY1NGYxMGJjODg0NzBhMGNjNTZiOGZhNTU1ODg2MTI5Njc5ZjlkOTJjNyIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS5wcm9vZi52YWx1ZSJ9LHsidmFsdWUiOiI2MTA5MDgzMzVkYmQzYmQ5MzJmZjMyMTgzYzc5MjU0YjViYmQyOGE2OGYzNWY5YjRhMWRjN2QyNGRlZDQ4ZWY3IiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLmlkZW50aXR5UHJvb2YudHlwZSJ9LHsidmFsdWUiOiI1NmNiZWY1YzU3NzIzZjYwNjk2NDJlYTUxMDg4YjRlYTFiMGNlMjI0MmE5N2ViNGIzMGNkZGZjNmVlZjkzNDExIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLmlkZW50aXR5UHJvb2YuaWRlbnRpZmllciJ9LHsidmFsdWUiOiIyODdhMWQ5Yzc3ZDk1ZGE5ZTc5ZWI2N2VlZmY2MDJiZWMxMTgyN2I1ZWRmZGUxZjIzYzIwNTBiOTIxMGE5ZjdmIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0Lm5hbWUifSx7InZhbHVlIjoiZDhjNGY0ZTMzMTJjMTM3ODgxMTUxYTM3MjVkZGJkODMxMDU5MjM2ZmQ0N2ZjNTdkNzRkYmY5NWVhZGU1MzY2NyIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5pZCJ9LHsidmFsdWUiOiI3MzIyZTc5MmU3YzljMTY3OWIyZjc2ZDgwMmU0YzY5ZDRhMzY4NTY0OTUxZWFlNGRiNzA5MzIwYmY4MmYyMmFlIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmRhdGUifSx7InZhbHVlIjoiNTA3ZTU5MDZlNjc2ZjZhZmM5ODMzMzc5NzdiMTQ2YjdlNmUyYjM2ZWRhMWEyZTc5MjE0YzJiYTA2MDBiZmFhMiIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5jdXN0b21lcklkIn0seyJ2YWx1ZSI6ImZmZjVjMWE0NmExOTMwNzQwNGE0OTJjMTU0MTNmMjEwOWM1NmI0NzVmMDNlZmIzYThiY2I0YzFjN2E3ZTEyYmEiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QudGVybXMifSx7InZhbHVlIjoiZDViOWRmNzkzYzlmMzYxMjFhOTZjMzdkYzEwZDc4ZTQ4MzAxNjI1NGEyODM1YTc3MzM3ZjQxNWQ0OWQxOGRjMiIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsRnJvbS5uYW1lIn0seyJ2YWx1ZSI6IjRiZTI1NGFmZmJjYmVlZDc1ZGNmZWMxYTEzYTFkNWZiZGNkZWI4Mjk5OTE3ZjJhZWE4MGJlZWU2ZGVjZjBlMDgiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QuYmlsbEZyb20uc3RyZWV0QWRkcmVzcyJ9LHsidmFsdWUiOiJiZTM0ZWYwMjhkMjE1MDFlZTE0MjFhOWFjMmVkMzlkMWJkZGMyOTJjMjk1NDY1NjNlZGFjZWZjNDdlOGNlZGQ0IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmJpbGxGcm9tLmNpdHkifSx7InZhbHVlIjoiMzA4MDI2MTk2ZTgxMjQ5NDQ3N2E2MmQyYjdmNGFiYTU2YjE3MGE5ZWQ1MDY0NzBmNTVjMGNlMjA2MGY4NjZkZCIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsRnJvbS5wb3N0YWxDb2RlIn0seyJ2YWx1ZSI6IjE2MmVkZmY3NzE5ZTRkZDA2MTAyNzAyZmNhZDUxMGVmM2YwNGM4ZjRjY2U5OTg4OTdiNzRkZjBhYmYxZmJiNjQiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QuYmlsbEZyb20ucGhvbmVOdW1iZXIifSx7InZhbHVlIjoiZTM0MTMwMzQwY2I3NDFmOWZkMDdiZmJhNmNhY2QxOTkxMDRiMTM4YzlhMThmMGE2ZTQ0OWQ0YWI5OWEyNDQxNiIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsVG8uY29tcGFueS5uYW1lIn0seyJ2YWx1ZSI6Ijg0MzQ4NGNlZDViNDdhNGNkMzFmMTEwM2MwYmEyYjc5YjQ4MzE0ZGM0OGQwOTZkMzEzNDc2NTBlM2M2ODM5MzUiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QuYmlsbFRvLmNvbXBhbnkuc3RyZWV0QWRkcmVzcyJ9LHsidmFsdWUiOiIxMGEyN2RjYmEyZDE5YTBkMGFkZmZlYzMwOWJmZjQ3MzQ5MThjZmI4NGFjZmRhZWZkN2E1OTg2ODQyZjJkN2M3IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmJpbGxUby5jb21wYW55LmNpdHkifSx7InZhbHVlIjoiMmQzYjA3ZWU5OGM5MDNjYjJjOTRjYWEyYzQ1MDYzNjE0NzllY2M0ZDgyMzIzYjllNjdkYjZjNjY0MGYxMmMyNSIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsVG8uY29tcGFueS5wb3N0YWxDb2RlIn0seyJ2YWx1ZSI6IjY3MWZjNWUxNDg5OWQxYjU2MTkzM2IzYTMzNjkwMDk0MjFmYjhhZmEwMTRlZGU1YjNiMjdkN2YwMjJkYjc3ZjgiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QuYmlsbFRvLmNvbXBhbnkucGhvbmVOdW1iZXIifSx7InZhbHVlIjoiNmRmMzIyYzhkODhjOTQzYzYzZjlmMDJiYjczMDNiYTExMWVlMzkxZjMxNjMxMDYxYzRhODMxM2I0OTg5YmUzNSIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsVG8ubmFtZSJ9LHsidmFsdWUiOiI2ZWJjZDAzZTI1M2YyYTljZjcyN2M5YTYyYWI2NDcwZDZmM2FhOTY0NjIyODViZGJhZWIxODQzMzJhNGQ1OWVhIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmJpbGxUby5lbWFpbCJ9LHsidmFsdWUiOiIyNjM2MDAzYWE1YzZlNmFjZjU5ZjRlODgxZTdkN2QzMDllNWYwNDY5MTAyODZjN2I3NzJmOWM2MzU2MjQ5M2ZlIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmJpbGxhYmxlSXRlbXNbMF0uZGVzY3JpcHRpb24ifSx7InZhbHVlIjoiMjkxNmYzYWM1YzYxYWVhMDJlOWVkMTI3M2Q3ZjJhMGYwYjFjNWI1ODY3ZDViNDE3OWZjNzUyOTZhNDllYjlkNyIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsYWJsZUl0ZW1zWzBdLnF1YW50aXR5In0seyJ2YWx1ZSI6ImVkOTkyYTc1NTNjMzY2MGYwMjhjYjY1ODU4MzViMzJjYmU2MGI4NWQxZDllOTZlYjNjMjJlYmQxMmM2YWM5NzUiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QuYmlsbGFibGVJdGVtc1swXS51bml0UHJpY2UifSx7InZhbHVlIjoiMDgzMzgzODBhM2FjYjVlMDEzZmJiZDE0ODJkNzdmMzFjOTRkOGY3NzYzMjU3OGNkZjRjZjFmYmZlNjY0YTdmZCIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsYWJsZUl0ZW1zWzBdLmFtb3VudCJ9LHsidmFsdWUiOiJiY2FhYzkzYzA4NGFlOWQyZDRjM2I5MTIzMDE3YTVkMTc4NTUyZGYwNmM5N2I4ZDBkZmMxZWY3YWIzZWU2NzZiIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmJpbGxhYmxlSXRlbXNbMV0uZGVzY3JpcHRpb24ifSx7InZhbHVlIjoiM2I3ZmVlYmJhYzA0MGU2ODdlOTY5NGNhM2ExZWIzNmJjMmEzNTAzMGI2M2RiZjYzMjAxOWQyYWVhNDRjZjc3YiIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsYWJsZUl0ZW1zWzFdLnF1YW50aXR5In0seyJ2YWx1ZSI6IjAwYjJjZDZmNTVkMmQ2YWQyNTRiZWM1ZjAxNjlkOThmZTg2OTFmMWY4MTU2N2YwOTZmNzdhMzQ0ZjdjNzQzN2EiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QuYmlsbGFibGVJdGVtc1sxXS51bml0UHJpY2UifSx7InZhbHVlIjoiOTZhNjQyYzM1NTg3Y2FhNmJmNGE1NjI2ZjhmYTEzZjc1YTM3MDAxOTMxOTBkYmM1MDcwMTA1NzZiMGNjYjEwNSIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsYWJsZUl0ZW1zWzFdLmFtb3VudCJ9LHsidmFsdWUiOiIzYzU4ODBlZmYwOGY2NjVhYjkxMGU5MmYwMzRlYzhkYzQ5NTk3NWZlMzZmMTdjMzk1YzJkNjUxZjk1ZTdlNGVlIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmJpbGxhYmxlSXRlbXNbMl0uZGVzY3JpcHRpb24ifSx7InZhbHVlIjoiYWZhODhmMmQyMWNhZDk3NWU0YzYxM2U5MTRmMzBiNjg0ZGVhNDJhNmM5MDgwODZkNDk5YzZjMjRhOTYzOTkxZiIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsYWJsZUl0ZW1zWzJdLnF1YW50aXR5In0seyJ2YWx1ZSI6ImZlZjgzMzZmYWZkYzNjYTc0NzU3NmZhOTA3MTg0Yjc1ZjhmMjM1ZWJjODE0NDg2NmE1MDQ3ZjM5ZjgyYTA1ZWUiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QuYmlsbGFibGVJdGVtc1syXS51bml0UHJpY2UifSx7InZhbHVlIjoiMDEyNzVhMmY5OTA4Y2I1ZGRmMzc3ZWRmNjI4ZWQ5YTFiMTAzZjI4ODc4OGM2MGU5NmQ1NmU3ZDA4MGI4NDBjNCIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5iaWxsYWJsZUl0ZW1zWzJdLmFtb3VudCJ9LHsidmFsdWUiOiJmYmVhMzIzMzEzYjg4ZGQ2NjU5NDBhYWVhNDA3MDMxOWEyZjM3MDg1NTg1ZmY4NzViMDRlYTIwZTI1YjRiNWQ5IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnN1YnRvdGFsIn0seyJ2YWx1ZSI6ImYyNWVhYmE4ZjJmYTFmOWUyMTQ4ZDk4NTkyNmNmMGY0NjVmMjE0M2EyMjI3M2U3ZjAzNDQ1YWM0YTZlOWIzMjMiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QudGF4In0seyJ2YWx1ZSI6ImViNGNiNjlmYTU0NjAyZjA0NmY2ZDI2ZjQ0ZmI4ZTUyNzk0ZmZmMzE0Y2FkYWU0MmFiY2I1NDg5MmIwNTliZTEiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QudGF4VG90YWwifSx7InZhbHVlIjoiNmIyNDk0M2EyNjdlYjEzMWJhZGM0M2UzZTc1ZjU5YWIyNWFhYTJlNjJjZDJkYjNmODZjYmJkNDhjMTZiYWVmNSIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC50b3RhbCJ9LHsidmFsdWUiOiIzNzI3OGExYjE0ZDhkOGI3Y2IyOWQwYTY4ZWVmNDYxYzJiMjBkYTA3ZWU0NTgxMmU5YjU2YjBmNDRkODFhNWJmIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmxpbmtzLnNlbGYuaHJlZiJ9LHsidmFsdWUiOiI5NTkwMTdmNGYyNDk0YjZmMTg3ZDc5MTE5OGM1MzdmNGI2MTdkY2Q5ODUwNzZmMzQ0MTI5ZjFlOWI3NGRhMzc3IiwicGF0aCI6Im5ldHdvcmsuY2hhaW4ifSx7InZhbHVlIjoiOWFlMjY2ZWNlYzMxMjkzOTU5NGQ4YWYwNGVjMzgyNWE0NzllODBhN2JiMTE2YTI5MzhhODU2OTljZjRiZjVkOCIsInBhdGgiOiJuZXR3b3JrLmNoYWluSWQifV0=", + "privacy": { + "obfuscated": [] + } + } +} diff --git a/src/__tests__/__fixtures__/oa/3.0/signed_wrapped_oa_dns_txt_token_registry_v3.json b/src/__tests__/__fixtures__/oa/3.0/signed_wrapped_oa_dns_txt_token_registry_v3.json new file mode 100644 index 0000000..fc52eb4 --- /dev/null +++ b/src/__tests__/__fixtures__/oa/3.0/signed_wrapped_oa_dns_txt_token_registry_v3.json @@ -0,0 +1,83 @@ +{ + "version": "https://schema.openattestation.com/3.0/schema.json", + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://schemata.openattestation.com/com/openattestation/1.0/OpenAttestation.v3.json", + "https://schemata.tradetrust.io/io/tradetrust/bill-of-lading/1.0/bill-of-lading-context.json" + ], + "type": ["VerifiableCredential", "OpenAttestationCredential"], + "issuer": { + "id": "https://example.com", + "name": "Demo token registry", + "type": "OpenAttestationIssuer" + }, + "issuanceDate": "2010-01-01T19:23:24Z", + "openAttestationMetadata": { + "template": { + "type": "EMBEDDED_RENDERER", + "name": "BILL_OF_LADING", + "url": "https://generic-templates.tradetrust.io" + }, + "proof": { + "type": "OpenAttestationProofMethod", + "method": "TOKEN_REGISTRY", + "value": "0x71D28767662cB233F887aD2Bb65d048d760bA694" + }, + "identityProof": { + "type": "DNS-TXT", + "identifier": "example.tradetrust.io" + } + }, + "credentialSubject": { + "name": "TradeTrust Bill of Lading v3", + "blNumber": "123", + "scac": "DEMO", + "carrierName": "Demo Carrier", + "shipper": { + "name": "Demo Shipper", + "address": { + "street": "One North", + "country": "Singapore" + } + }, + "consignee": { + "name": "Demo Consignee" + }, + "notifyParty": { + "name": "Demo Notify" + }, + "vessel": "1", + "voyageNo": "100", + "portOfLoading": "Singapore Port", + "portOfDischarge": "China Port", + "placeOfReceipt": "Beijing", + "placeOfDelivery": "Singapore", + "packages": [ + { + "description": "Green Apples", + "weight": "20", + "measurement": "100" + } + ], + "links": { + "self": { + "href": "https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.openattestation.com%2Fstatic%2Fdocuments%2Ftradetrust%2Fv3%2Febl-stability.json%22%2C%22permittedActions%22%3A%5B%22VIEW%22%5D%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%22%2C%20%22chainId%22%3A%20%22101010%22%7D%7D" + } + } + }, + "network": { + "chain": "FREE", + "chainId": "101010" + }, + "proof": { + "type": "OpenAttestationMerkleProofSignature2018", + "proofPurpose": "assertionMethod", + "targetHash": "3569b4d361b452af81fcff075f6df202ed6ffa3e58223f3bb43cc55a54968505", + "proofs": [], + "merkleRoot": "3569b4d361b452af81fcff075f6df202ed6ffa3e58223f3bb43cc55a54968505", + "salts": "W3sidmFsdWUiOiI5MWQxYmMwNzc4NjhmODEyMTYwMGRlMjFjMDEzYWIwNTA0YWM5NGM5MmQ4OTQ0YThmN2ViYzcxNTYyMjkwZGRhIiwicGF0aCI6InZlcnNpb24ifSx7InZhbHVlIjoiM2U1ODUyMzQ0NDA4YWVhYTE1MmI5Y2I2NjA3YmRjNDFhN2YzNDk4NTI5MDQ3YzA5MmI1ZDZlZDQwMzUxZmQyNyIsInBhdGgiOiJAY29udGV4dFswXSJ9LHsidmFsdWUiOiJiNjA3MWFhYjM1ZTMxZTBjMmI2ZjM1ODI5ZWMyMDBhNzVlYjc4ZDdiNDlmMjQ5YzAyMDIyM2VlODIxN2VhOWUzIiwicGF0aCI6IkBjb250ZXh0WzFdIn0seyJ2YWx1ZSI6ImVkNTlkMTNiOTdhZWJiNTViNGRkY2YxNDM2ZGU3MjIwNGU3ZGE4NjdjY2NmZDgxYmIwMjgyODZhYWNhMmI0ZDkiLCJwYXRoIjoiQGNvbnRleHRbMl0ifSx7InZhbHVlIjoiNWUzNzVjMzhkNmI3ZDhhNGI2NmM3ZDAzNGJhMjM4Y2U1ODBjZTA2MzZmMWJiNmVlMWRiNDkyNTMyODNjNDQwNyIsInBhdGgiOiJ0eXBlWzBdIn0seyJ2YWx1ZSI6IjFkN2MxMTMyZDE5YTViZTFhMGQ4MDU1M2U5NDA1YzNmZWQ3YWZkMjkzM2Y0NjI5OGJmNDJmODgwYzgyMjg4NTEiLCJwYXRoIjoidHlwZVsxXSJ9LHsidmFsdWUiOiJiMmMxOTFlNDFiMzNlMDViM2FmMTU0N2JkODZhYTlmNGFlZGI3NjViMjk2YWVlZDZmY2I5ZTBlNzhmY2JmYmMwIiwicGF0aCI6Imlzc3Vlci5pZCJ9LHsidmFsdWUiOiJjYmM0YmEwYWYwYzMyYmJmNzdiNzJjN2Y1Njc3NTBhZTYxOWJhZjRlY2I5ZTZlYzE0ZTkwYTFhYTIxZmIxMmY4IiwicGF0aCI6Imlzc3Vlci5uYW1lIn0seyJ2YWx1ZSI6ImJkMzZkNDc0OGM3MTRiNWNlOWZkOTllMzgyNTljMWIyZDI3YWMxNjg2YmM5YTQxNGNhYWE5YTRhMDE4OGUyYWYiLCJwYXRoIjoiaXNzdWVyLnR5cGUifSx7InZhbHVlIjoiN2M4OWVlOTJhYmYyNzEyOWE4MmY2ZTU3NDczYTU1YWI5MjAwOWQ4YzM2NmM2NTQ1NjU5ZWNjODBmMGMxMDQ4NSIsInBhdGgiOiJpc3N1YW5jZURhdGUifSx7InZhbHVlIjoiYWY4ZGQ1YWY1MTEzMDg3YzgzNzMyZDNkMTliYjIxYzJjYjdkMTQ5M2Q0MjRjYjBmOGE3ZDhmODAyOGE3MWE4OCIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS50ZW1wbGF0ZS50eXBlIn0seyJ2YWx1ZSI6IjJmOTRlMjBkMDExNmNmMDUxOWM4YjM1OWYzYTYxYzAzOWMwNzc1ZWMwNzdhZTE2NGUzNWRlOTY2MTAzYTA4MGMiLCJwYXRoIjoib3BlbkF0dGVzdGF0aW9uTWV0YWRhdGEudGVtcGxhdGUubmFtZSJ9LHsidmFsdWUiOiJjYjliYzQxYzI4NDM1ZTU0ZWZlMzRiNjIzODRhNzkzMGU0ZGJhNThjMTYwNmU3MWFhM2QxYzUzODIzZjU0NWNhIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLnRlbXBsYXRlLnVybCJ9LHsidmFsdWUiOiJhNzc0MDg2YjAyMWMyYTk1Mzc3NDg5ZmQxYjhkMjc4ZmE5NWRmNDc4ODM1OTY4ODVkYzhmYWI4MzA4YmQ4ZGNmIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLnByb29mLnR5cGUifSx7InZhbHVlIjoiNTVlYThlZDI1MDg5N2E3MDRjYzMyZTk2N2MwMTZiZjE0M2ZmYWNiYjUwOWRiOTQzMWRiNTQxYWYyMDk4ZTFhMyIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS5wcm9vZi5tZXRob2QifSx7InZhbHVlIjoiOWYyMjZiNjhlZTMwNjc5ODU0YjU0OWVkZTFlMTFjMzE1OGUzNDljOWE5YTlkZTJmZDhkZTAwZWQ4ZGEyY2ZkZSIsInBhdGgiOiJvcGVuQXR0ZXN0YXRpb25NZXRhZGF0YS5wcm9vZi52YWx1ZSJ9LHsidmFsdWUiOiJmMzhkZTI1MzFkMDhhNDA5MDEyYzU3ZDUwMDc0NWNkNTQwNmU5YjY4MDg4ZTQwZmY3MDIyZTc0NWUzOTc2MWJiIiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLmlkZW50aXR5UHJvb2YudHlwZSJ9LHsidmFsdWUiOiJiM2Y5NjE4NGYyNTFmNzg2Y2Q5OTNlOGYwNzZiZWY2NWI5OTQxODlmNmJmNWYwZTdkNWZhZTA1ODM3NGUyZjk4IiwicGF0aCI6Im9wZW5BdHRlc3RhdGlvbk1ldGFkYXRhLmlkZW50aXR5UHJvb2YuaWRlbnRpZmllciJ9LHsidmFsdWUiOiI5MDI0MDFjM2IyNTgwZjRhYzhkYTc0MTdkNGY5YmU4MTUyZjZjMGM3OGIzNjU4NjU1YjFjYTFhNGNiODZhOGRkIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0Lm5hbWUifSx7InZhbHVlIjoiMzIwMzQzMjE5Yzk5ODg2NWQ4MjA2MjI2MTE4MWQ0ODE3ZDk3M2NlNmZlZDNhMzE2NGNjOWYxYTQwY2MyZTljOSIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5ibE51bWJlciJ9LHsidmFsdWUiOiI1NzU4MTZjMDlhOWE3NzJiNjMyZjJiMDU1MmYyYjc0NmFmYmJkY2JhZDQ1ZmRhNjY2YjMxMjQzYzBlYjY2YjgyIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnNjYWMifSx7InZhbHVlIjoiYWVjMDg0Mjc2MmRkZGQ0OThjMDAxN2ViYWE2NmQ2N2VlNDY2Y2Y5OTZlZTI4YTkwZDE5NmNlMGYwM2NiOGQyNCIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5jYXJyaWVyTmFtZSJ9LHsidmFsdWUiOiJjNTQ3MzE2M2JjM2I5NWUxM2NkMGY2MzdmNGNjN2U2ZmY3YTY5M2NkOGE5ZGRlMDlhYzI0MTljODJiYTk1YmZhIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnNoaXBwZXIubmFtZSJ9LHsidmFsdWUiOiIwZWQ0NjJjZDBkMDM2YWVhZjk3N2Q1ZTRlMWViZDM0ZGIzYjdjYTE0YzU0MWE5ODMxOTYwNGMxMWI0MzYwNTgxIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnNoaXBwZXIuYWRkcmVzcy5zdHJlZXQifSx7InZhbHVlIjoiODU5ZDYyYzdkNDU4NzA3MGFhYzIwYjA4NDBhMzczZmQxOTRmODdmNmM5M2I5NmQ1OGY0M2E2Nzg5N2U3NGVlMiIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5zaGlwcGVyLmFkZHJlc3MuY291bnRyeSJ9LHsidmFsdWUiOiI0MTZiOWRlM2E0M2Y4YTEzMjEwYjJlNDMzYjMwOTRjODIyMTcwYmNmNzZiMzg5NzRhMTE2YjJkYmNkNDM2ZDg1IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmNvbnNpZ25lZS5uYW1lIn0seyJ2YWx1ZSI6ImE2Y2UxZGZkZmNlNmNmZjExNzc2ZjYyMzcyZTJlYzA2NWJkM2YxZTIyNjJkMTFlYTQ4NDFkMjY2YWZiNTI5MTMiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3Qubm90aWZ5UGFydHkubmFtZSJ9LHsidmFsdWUiOiI3YjI5MjE0ODczMzA2NzZiNzk2ZmRmYWE2Y2UwY2EyMThmNjI0YzAwNmI0OTMwZjIyYzIxOWNhMDBlM2Q2OTc4IiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnZlc3NlbCJ9LHsidmFsdWUiOiI5MDg5NjY2OTMxZGJhZjE3MzAxYjg1MGUzM2I5YTEwODViYzk5MzY5MzJiN2IxMzQ0OGFiYzc3YTU3N2VlM2RmIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnZveWFnZU5vIn0seyJ2YWx1ZSI6IjE2ZDhhNjA4ZDNjZTA2YzcyZmJmMWYxNWJkNTRiODhhZjk5ZjY0N2M3MTkxMGE0NzgxZWRkZjc2M2ExZDRlNzgiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QucG9ydE9mTG9hZGluZyJ9LHsidmFsdWUiOiIzZjM4OGI3NmNkNTFhNGJhMTA2MGVlZGQyZDM0N2I5YWQ5YWFkY2E4YTUxMDA4NDMzNzhiNDc5MjhlYjc4MmMxIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnBvcnRPZkRpc2NoYXJnZSJ9LHsidmFsdWUiOiJiODcwNjFmY2M1MTQ0NmM3OWE2MzFjOTU5YjQzZWM1ZTM4MjMyNTcxYjRmZTVhOWJlNzRkNzZkZGZiM2M3NGVkIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LnBsYWNlT2ZSZWNlaXB0In0seyJ2YWx1ZSI6IjZkMWRkYTExOGExNWI4ZWM0OWRkMTYxZmFiNzZjMzFhZWExYTQ1YzFkMjg0Mzc1MDU5ZWE1NTQzYWQ4MzEzZmMiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QucGxhY2VPZkRlbGl2ZXJ5In0seyJ2YWx1ZSI6IjEyM2Y0ZGJjZmNiNGY5ZTYzNjg2Nzk5NWNiNWM1NzNhNWI4NTE3ZGVkOGFkZmM0OTliMzMwNTg3MGJhMTc2OGIiLCJwYXRoIjoiY3JlZGVudGlhbFN1YmplY3QucGFja2FnZXNbMF0uZGVzY3JpcHRpb24ifSx7InZhbHVlIjoiMjllMDVlZDQ1ZjdiMjQ3YTQzYjE2NjU0MTcxM2JiMjVkYWQ1Y2UwNDA2Yjk3MzliYWEyYmQyM2I4MjRlNGMzYSIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5wYWNrYWdlc1swXS53ZWlnaHQifSx7InZhbHVlIjoiMzM3OGM0NmRjMjUyZWZhNDhlN2EyYzg1NzI0NWY1Mzk5MTcwZTIyNWIzNThlMjJjZWM5ODJmZjNkOWVjNTA3ZCIsInBhdGgiOiJjcmVkZW50aWFsU3ViamVjdC5wYWNrYWdlc1swXS5tZWFzdXJlbWVudCJ9LHsidmFsdWUiOiIzNTViNjU2NTEwMzc5NTA4ZWU3ZjFhZDllNzc0M2Q1Nzg1NDcyYWEyZWNhZDkyMzYwYzQ2MzU5YTgxNjJkODZhIiwicGF0aCI6ImNyZWRlbnRpYWxTdWJqZWN0LmxpbmtzLnNlbGYuaHJlZiJ9LHsidmFsdWUiOiIxMDM3NjM0NGJiMWM4YmVlNWRmMzQ2NzU1YmVkYjMyMjMwZDdiZGNmYmE3YzM2Zjc0OGI2ODgwYzJjZjMwNjUyIiwicGF0aCI6Im5ldHdvcmsuY2hhaW4ifSx7InZhbHVlIjoiMjM5ZjJkZWMwODkxMzczOTUyNzYzMjYzOWNkYjk5NzE2ZGRkYzg0ODRmYWNmYTdhMDYwODY3MzE5MGMyMWIxNyIsInBhdGgiOiJuZXR3b3JrLmNoYWluSWQifV0=", + "privacy": { + "obfuscated": [] + } + } +} diff --git a/src/__tests__/__fixtures__/w3c/bbs2020_w3c_transferable_record_v1_1.json b/src/__tests__/__fixtures__/w3c/bbs2020_w3c_transferable_record_v1_1.json new file mode 100644 index 0000000..6d99d1b --- /dev/null +++ b/src/__tests__/__fixtures__/w3c/bbs2020_w3c_transferable_record_v1_1.json @@ -0,0 +1,101 @@ +{ + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://trustvc.io/context/bill-of-lading-carrier.json", + "https://trustvc.io/context/attachments-context.json", + "https://trustvc.io/context/render-method-context.json", + "https://trustvc.io/context/transferable-records-context.json", + "https://trustvc.io/context/qrcode-context.json", + "https://w3id.org/security/bbs/v1" + ], + "renderMethod": [ + { + "type": "EMBEDDED_RENDERER", + "templateName": "BILL_OF_LADING_CARRIER", + "id": "https://generic-templates.tradetrust.io" + } + ], + "credentialSubject": { + "type": ["BillOfLadingCarrier"], + "shipperName": "MAERSK Co.", + "shipperAddressStreet": "101 ORCHARD ROAD", + "shipperAddressCountry": "Singapore", + "toOrderOfText": "TO ORDER", + "consigneeName": "ABC Natural Foods Inc.", + "notifyPartyName": "Amanda Green – Import Manager, ABC Natural Foods", + "packages": [ + { + "packagesDescription": "Organic Cashew Kernels (25kg bags)", + "packagesMeasurement": "100 Bags", + "packagesWeight": "2.65 MT" + }, + { + "packagesDescription": "Roasted Chickpeas (20kg packs)", + "packagesMeasurement": "60 Bundles", + "packagesWeight": "\t1.3" + } + ], + "blNumber": "SGCNM21566325", + "scac": "SGPU", + "carrierName": "Vikram Rao", + "logo": "data:image/png;base64,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", + "onwardInlandRouting": "Rail to Johor Port β†’ Trucking to final inland delivery point (Long Beach, USA)", + "vessel": "MAERSK NATALIA", + "voyageNo": "7831W", + "portOfLoading": "Singapore", + "portOfDischarge": "LOS ANGELES, CA", + "placeOfReceipt": "JURONG PORT, SINGAPORE", + "placeOfDelivery": "Long Beach Distribution Center, CA", + "placeOfIssueBL": "Singapore", + "numberOfOriginalBL": "3", + "dateOfIssueBL": "2025-06-05", + "shippedOnBoardDate": "2025-06-05", + "signForTermsAndCondition": "The carrier accepts the goods as described in good order and condition for carriage under the terms stated herein and subject to the Carrier's standard Bill of Lading Terms and Conditions.", + "signedForCarrierText": "John Doe", + "carrierSignature": "data:image/png;base64,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gMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIXVqaAAAAbSSURBVIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBP4/csBUQgAdQDwAAAAASUVORK5CYII=", + "termsOfCarriage": "All shipments are subject to the Hague-Visby Rules. The carrier assumes liability only for loss or damage due to its own negligence. Responsibility ceases at the time goods are delivered to the consignee or their agent. Claims must be submitted within 7 working days of delivery.", + "attachments": [ + { + "data": "JVBERi0xLjYNJeLjz9MNCjI0IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA0L0xlbmd0aCAyMTYvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjePI9RS8MwFIX/yn1bi9jepCQ6GYNpFBTEMsW97CVLbjWYNpImmz/fVsXXcw/f/c4SEFarepPTe4iFok8dU09DgtDBQx6TMwT74vaLTE7uSPDUdXM0Xe/73r1FnVwYYEtHR6d9WdY3kX4ipRMV6oojSmxQMoGyac5RLBAXf63p38aGA7XPorLewyvFcYaJile8rB+D/YcwiRdMMGScszO8/IW0MdhsaKKYGA46gXKTr/cUQVY4We/cYMNpnLVeXPJUXHs9fECr7kAFk+eZ5Xr9LcAAfKpQrA0KZW5kc3RyZWFtDWVuZG9iag0yNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgNC9MZW5ndGggNDkvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjeslAwULCx0XfOL80rUTDU985MKY42NAIKBsXqh1QWpOoHJKanFtvZAQQYAN/6C60NCmVuZHN0cmVhbQ1lbmRvYmoNMjYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDkvTGVuZ3RoIDQyL04gMi9UeXBlL09ialN0bT4+c3RyZWFtDQpo3jJTMFAwVzC0ULCx0fcrzS2OBnENFIJi7eyAIsH6LnZ2AAEGAI2FCDcNCmVuZHN0cmVhbQ1lbmRvYmoNMjcgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDUvTGVuZ3RoIDEyMC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yNFIwULCx0XfOzytJzSspVjAyBgoE6TsX5Rc45VdEGwB5ZoZGCuaWRrH6vqkpmYkYogGJRUCdChZgfUGpxfmlRcmpxUAzA4ryk4NTS6L1A1zc9ENSK0pi7ez0g/JLEktSFQz0QyoLUoF601Pt7AACDADYoCeWDQplbmRzdHJlYW0NZW5kb2JqDTIgMCBvYmoNPDwvTGVuZ3RoIDM1MjUvU3VidHlwZS9YTUwvVHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA2LjAgKFdpbmRvd3MpPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDA2LTAzLTA2VDE1OjA2OjMzLTA1OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZVBTNS5kbGwgVmVyc2lvbiA1LjIuMjwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wNy0xNVQxMDoxMjoyMSswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDctMTVUMTA6MTI6MjErMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnV1aWQ6ZmYzZGNmZDEtMjNmYS00NzZmLTgzOWEtM2U1Y2FlMmRhMmViPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOjM1OTM1MGIzLWFmNDAtNGQ4YS05ZDZjLTAzMTg2YjRmZmIzNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5CbGFuayBQREYgRG9jdW1lbnQ8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+RGVwYXJ0bWVudCBvZiBKdXN0aWNlIChFeGVjdXRpdmUgT2ZmaWNlIG9mIEltbWlncmF0aW9uIFJldmlldyk8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ1lbmRvYmoNMTEgMCBvYmoNPDwvTWV0YWRhdGEgMiAwIFIvUGFnZUxhYmVscyA2IDAgUi9QYWdlcyA4IDAgUi9UeXBlL0NhdGFsb2c+Pg1lbmRvYmoNMjMgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMD4+c3RyZWFtDQpIiQIIMAAAAAABDQplbmRzdHJlYW0NZW5kb2JqDTI4IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA0L1ByZWRpY3RvciAxMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9JRFs8REI3Nzc1Q0NFMjI3RjZCMzBDNDQwREY0MjIxREMzOTA+PEJGQ0NDRjNGNTdGNjEzNEFCRDNDMDRBOUU0Q0ExMDZFPl0vSW5mbyA5IDAgUi9MZW5ndGggODAvUm9vdCAxMSAwIFIvU2l6ZSAyOS9UeXBlL1hSZWYvV1sxIDIgMV0+PnN0cmVhbQ0KaN5iYgACJjDByGzIwPT/73koF0wwMUiBWYxA4v9/EMHA9I/hBVCxoDOQeH8DxH2KrIMIglFwIpD1vh5IMJqBxPpArHYgwd/KABBgAP8bEC0NCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQo0NTc2DQolJUVPRg0K", + "filename": "blank.pdf", + "mimeType": "application/pdf" + }, + { + "data": "e30=", + "filename": "empty.json", + "mimeType": "application/json" + }, + { + "data": "JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==", + "filename": "sample.pdf", + "mimeType": "application/pdf" + }, + { + "data": "JVBERi0xLjYNJeLjz9MNCjI0IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA0L0xlbmd0aCAyMTYvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjePI9RS8MwFIX/yn1bi9jepCQ6GYNpFBTEMsW97CVLbjWYNpImmz/fVsXXcw/f/c4SEFarepPTe4iFok8dU09DgtDBQx6TMwT74vaLTE7uSPDUdXM0Xe/73r1FnVwYYEtHR6d9WdY3kX4ipRMV6oojSmxQMoGyac5RLBAXf63p38aGA7XPorLewyvFcYaJile8rB+D/YcwiRdMMGScszO8/IW0MdhsaKKYGA46gXKTr/cUQVY4We/cYMNpnLVeXPJUXHs9fECr7kAFk+eZ5Xr9LcAAfKpQrA0KZW5kc3RyZWFtDWVuZG9iag0yNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgNC9MZW5ndGggNDkvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjeslAwULCx0XfOL80rUTDU985MKY42NAIKBsXqh1QWpOoHJKanFtvZAQQYAN/6C60NCmVuZHN0cmVhbQ1lbmRvYmoNMjYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDkvTGVuZ3RoIDQyL04gMi9UeXBlL09ialN0bT4+c3RyZWFtDQpo3jJTMFAwVzC0ULCx0fcrzS2OBnENFIJi7eyAIsH6LnZ2AAEGAI2FCDcNCmVuZHN0cmVhbQ1lbmRvYmoNMjcgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDUvTGVuZ3RoIDEyMC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yNFIwULCx0XfOzytJzSspVjAyBgoE6TsX5Rc45VdEGwB5ZoZGCuaWRrH6vqkpmYkYogGJRUCdChZgfUGpxfmlRcmpxUAzA4ryk4NTS6L1A1zc9ENSK0pi7ez0g/JLEktSFQz0QyoLUoF601Pt7AACDADYoCeWDQplbmRzdHJlYW0NZW5kb2JqDTIgMCBvYmoNPDwvTGVuZ3RoIDM1MjUvU3VidHlwZS9YTUwvVHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA2LjAgKFdpbmRvd3MpPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDA2LTAzLTA2VDE1OjA2OjMzLTA1OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZVBTNS5kbGwgVmVyc2lvbiA1LjIuMjwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wNy0xNVQxMDoxMjoyMSswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDctMTVUMTA6MTI6MjErMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnV1aWQ6ZmYzZGNmZDEtMjNmYS00NzZmLTgzOWEtM2U1Y2FlMmRhMmViPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOjM1OTM1MGIzLWFmNDAtNGQ4YS05ZDZjLTAzMTg2YjRmZmIzNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5CbGFuayBQREYgRG9jdW1lbnQ8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+RGVwYXJ0bWVudCBvZiBKdXN0aWNlIChFeGVjdXRpdmUgT2ZmaWNlIG9mIEltbWlncmF0aW9uIFJldmlldyk8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ1lbmRvYmoNMTEgMCBvYmoNPDwvTWV0YWRhdGEgMiAwIFIvUGFnZUxhYmVscyA2IDAgUi9QYWdlcyA4IDAgUi9UeXBlL0NhdGFsb2c+Pg1lbmRvYmoNMjMgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMD4+c3RyZWFtDQpIiQIIMAAAAAABDQplbmRzdHJlYW0NZW5kb2JqDTI4IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA0L1ByZWRpY3RvciAxMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9JRFs8REI3Nzc1Q0NFMjI3RjZCMzBDNDQwREY0MjIxREMzOTA+PEJGQ0NDRjNGNTdGNjEzNEFCRDNDMDRBOUU0Q0ExMDZFPl0vSW5mbyA5IDAgUi9MZW5ndGggODAvUm9vdCAxMSAwIFIvU2l6ZSAyOS9UeXBlL1hSZWYvV1sxIDIgMV0+PnN0cmVhbQ0KaN5iYgACJjDByGzIwPT/73koF0wwMUiBWYxA4v9/EMHA9I/hBVCxoDOQeH8DxH2KrIMIglFwIpD1vh5IMJqBxPpArHYgwd/KABBgAP8bEC0NCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQo0NTc2DQolJUVPRg0K", + "filename": "veryverylongfilenameoverhereveryverylongfilenameoverhere.pdf", + "mimeType": "application/pdf" + } + ] + }, + "type": ["VerifiableCredential"], + "qrCode": { + "type": "TrustVCQRCode", + "uri": "https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.tradetrust.io%2Fstatic%2Fbill-of-lading-operative.json%22%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%2F%22%2C%22chainId%22%3A%22101010%22%7D%7D" + }, + "credentialStatus": { + "type": "TransferableRecords", + "tokenNetwork": { "chain": "FREE", "chainId": 101010 }, + "tokenRegistry": "0x7202363bBDb126036F7C3243Ebac310d9d145040", + "tokenId": "9cb05e6ca63093f2a5d5ee3965fc63653442ed542c41c27a7e4dbb1d4521f93c" + }, + "issuer": "did:web:trustvc.github.io:did:1", + "issuanceDate": "2025-06-05T11:29:32.860Z", + "id": "urn:bnid:_:0198cc65-36f5-7cca-a034-7a141d772a7d", + "proof": { + "type": "BbsBlsSignature2020", + "created": "2025-08-21T11:30:42Z", + "proofPurpose": "assertionMethod", + "proofValue": "i41csJtnGrZYhTJi/6Oe+i1CFev2jroBD1r9CE7Yc9MMEUPag8SUFEccvzdG+oxkTVi6gpUcPkkCBODbBNb7En+DKJjVkRzj29k3yt6vrb5lYE1Nq8yRJAwmWHqlhogOAAgXSIC4aZn5QKHAt0E4Hw==", + "verificationMethod": "did:web:trustvc.github.io:did:1#keys-1" + } +} diff --git a/src/__tests__/__fixtures__/w3c/bbs2020_w3c_verifiable_document_v1_1.json b/src/__tests__/__fixtures__/w3c/bbs2020_w3c_verifiable_document_v1_1.json new file mode 100644 index 0000000..d5194bb --- /dev/null +++ b/src/__tests__/__fixtures__/w3c/bbs2020_w3c_verifiable_document_v1_1.json @@ -0,0 +1,69 @@ +{ + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://trustvc.io/context/invoice.json", + "https://trustvc.io/context/render-method-context.json", + "https://trustvc.io/context/qrcode-context.json", + "https://w3id.org/security/bbs/v1" + ], + "renderMethod": [ + { + "type": "EMBEDDED_RENDERER", + "templateName": "INVOICE", + "id": "https://generic-templates.tradetrust.io" + } + ], + "credentialSubject": { + "type": ["Invoice"], + "billFromName": "ABC Exports Pvt. Ltd.", + "billFromStreetAddress": "12/F, Industrial Plaza, Near MIDC", + "billFromCity": "Navi Mumbai", + "billFromPostalCode": "400703", + "billFromPhoneNumber": "+91-22-4455-9988", + "billToName": "David Thomson", + "billToEmail": "david.thomson@example.co.uk", + "billToCompanyName": "XYZ Foods Ltd.", + "billToCompanyStreetAddress": "Unit 17, Royal Wharf, Docklands Industrial Area", + "billToCompanyCity": "London", + "billToCompanyPostalCode": "E16 2AA", + "billToCompanyPhoneNumber": "+44-20-8899-4455", + "billableItems": [ + { + "billableItemsDescription": "Organic Basmati Rice (20kg Bags)", + "billableItemsQuantity": "100", + "billableItemsUnitPrice": "125", + "billableItemsAmount": "12500" + }, + { + "billableItemsDescription": "Vacuum-Packed Almonds (10kg)", + "billableItemsQuantity": "50", + "billableItemsUnitPrice": "80", + "billableItemsAmount": "4000" + } + ], + "invoiceId": "INV-20250604-001", + "invoiceName": "Export of Organic Basmati Rice", + "date": "2025-06-04", + "customerId": "CUST-UK-55678", + "terms": "Net 30 Days", + "subtotal": "$16,500.00", + "tax": "5%", + "taxTotal": "$825.00", + "total": "$17,325.00" + }, + "type": ["VerifiableCredential"], + "qrCode": { + "type": "TrustVCQRCode", + "uri": "https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.tradetrust.io%2Fstatic%2Finvoice-default.json%22%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%2F%22%2C%22chainId%22%3A%22101010%22%7D%7D" + }, + "issuer": "did:web:trustvc.github.io:did:1", + "issuanceDate": "2025-06-09T09:36:15.971Z", + "id": "urn:bnid:_:0198d00f-e703-700e-8262-3411f6f1a7b4", + "proof": { + "type": "BbsBlsSignature2020", + "created": "2025-08-22T04:35:59Z", + "proofPurpose": "assertionMethod", + "proofValue": "o32r+zLI4dcOeLY1omIXoqQKXwwC6z9ihFkGowUvlpgdk3lBA02NRiOuTNQt8CExDEfRAbq+17MwX8sMkSSN7Drbug0evckYllVnzTy4hzRTItiHNrGr9979b4i486eQCEF3QwrQPSU1k/v3LXx6lQ==", + "verificationMethod": "did:web:trustvc.github.io:did:1#keys-1" + } +} diff --git a/src/__tests__/__fixtures__/w3c/bbs2023_w3c_transferable_document_v2_0.json b/src/__tests__/__fixtures__/w3c/bbs2023_w3c_transferable_document_v2_0.json new file mode 100644 index 0000000..63fde06 --- /dev/null +++ b/src/__tests__/__fixtures__/w3c/bbs2023_w3c_transferable_document_v2_0.json @@ -0,0 +1,100 @@ +{ + "@context": [ + "https://www.w3.org/ns/credentials/v2", + "https://w3id.org/security/data-integrity/v2", + "https://trustvc.io/context/render-method-context-v2.json", + "https://trustvc.io/context/bill-of-lading-carrier.json", + "https://trustvc.io/context/attachments-context.json", + "https://trustvc.io/context/transferable-records-context.json", + "https://trustvc.io/context/qrcode-context.json" + ], + "renderMethod": [ + { + "type": "EMBEDDED_RENDERER", + "templateName": "BILL_OF_LADING_CARRIER", + "id": "https://generic-templates.tradetrust.io" + } + ], + "credentialSubject": { + "type": ["BillOfLadingCarrier"], + "shipperName": "MAERSK Co.", + "shipperAddressStreet": "101 ORCHARD ROAD", + "shipperAddressCountry": "Singapore", + "toOrderOfText": "TO ORDER", + "consigneeName": "ABC Natural Foods Inc.", + "notifyPartyName": "Amanda Green – Import Manager, ABC Natural Foods", + "packages": [ + { + "packagesDescription": "Organic Cashew Kernels (25kg bags)", + "packagesMeasurement": "100 Bags", + "packagesWeight": "2.65 MT" + }, + { + "packagesDescription": "Roasted Chickpeas (20kg packs)", + "packagesMeasurement": "60 Bundles", + "packagesWeight": "1.3" + } + ], + "blNumber": "SGCNM21566325", + "scac": "SGPU", + "carrierName": "Vikram Rao", + "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPMAAAA7CAYAAACuTbzmAAAACXBIWXMAACE3AAAhNwEzWJ96AAAMUklEQVR4nO2dvW8byRXA31IUpWMj/gda9weKhwBptQZSpElMQ02AK8QNDkgRBKZzAZLiCFNgiiDFWcIFsJEipIpDmhCmAbeBpTYIEIr5A271H4gNI4sSN5jVW3s4nJmd/aAoiu8H0DLJ/eDu7Jt5877G8n0f5sGoZTsA4OCh+8WG11OdJua2JQCoAQD7ewEAvWLD8+ZyEQSxRMxFmEctmwnjE+HjUwCoFhvehbBtBwD2xW2LDc8RPmPbVgDgBAC2uI+HrCMoNrx+phdBEEtGLuufO2rZTYkgM3YBoCls60gEOdgWjyPSEQQZ8P1JZhdAEEtK5sKMKrDpd1XNtlMj86hl2wCwo9h2CzsGglhZ5iHM25rvxFG1FOO4cbYliJVjHsJ8HuM7nXo8ZdTCOfHQdHuCWDXmIcyHmu86/Jtiw2PvzyTbDcX5NVJXHPeALNrEqjMvazYT6GfCx0fFhjcjjOhqqnNzZCaUTZVwjlp2lXNNMTrYKRDESjNPP7PNCegJjZwEMV/mJswEQdwt85gzEwSxAEiYCeKBQMJMEA+E/H24jHe//3Hts9ykupnzS5tw09vI3XQ+b/33wmBXgiCQhRvAvv+d09m0rvY3ctfwWW4CmzkfNuHmbCN345BAE4Q5C1WzX//259Urf2P/0i/Ah0ke/jfJweXEgktY27mcrOmCTwiCEJhRs8tulwVjsFRDb9Dei+Ub/umvjpy8dQ3vXn9tlMX0wS9MB5FM2D/X4PsTgLU1mxqLIMz5qGaX3a6DIZS73N4slro+aO8piwX86KtOqWBdN9fhurZuXW+tWzeQt66HmzDubVjj5vevGjMdwje/+aq0mRs3N6zxs4J1BRvB6wMUrA+waV1BwQpU7tOf/OnflAlFEIYEwlx2uyw8sq3Z5WjQ3psJxSz/8u+lnHVzsmbd7BSsMazDNaxb7BUINGzCGDas8WnBujopwBjWrTEUrCs7b42rBbje2swF34NCoA9+9ud/yeKzCYKQkEe1Omp++qzsdnuD9p6gPuebE/82x/iK/WMBAGdPu7x9vxuM9tPfDcGCtzCBPuSCOGsxbfLM4DcRBMFLIyYtiHnGMuozKYt+rgZWHiYopLcCbckE+pbb/x8wQf32L9+FlurmH5/t1/zbQgWsY+n5PnS+/PaELNkEEYM8GrtMmCoOUHa7laAT8HNwK9BW8PmnEdr6uC0KNEtrrLZftWaMY98cHXfE9EiCIOILc9IKHp/2CwQahBE6HJFvhfrSAucfr/5ARfcIYk7kYhTDm1J7Z+bPTKBhDSZ+Hm78Nbjy8zCGPIz94PX83euvSZAJYo4wCexFlOMJkRmkjqfeyQX69J9//TUZswhizuQwMERVjifkeNaSHVCfKfszLdDDKz+vq9ZJEERG8EEjVRx9eTcRG7EPB+09pb+Xc21N17+2JqcAN7XB335hFEXGlcrti4XyCYKIZibRAq3UgXFLMRrrhDq0jBuHgqIQd7hOhHUgdarrRRDxWGjWFNYJ6yv83E91a04RBDHNoosT6AJWaK5NEDFYdHECXcAKrWCRMTiFmvEsDNp7lNDyAFi0MPcVi8yB6NeWgZle7zP+TY/j2AqWjJKQFXdnjFp21vM5tvABJeJwZCLMZbdro1r80SLNjFqD9l5UoEgH3VsyVZt80wQRg9RzZkyf/AEAXmCvv4urWfyn7Ha1AomF8R1hDSpmzXaLDY+WaSUIDmYwHrXsOlv/XLbkcaqRGdVcXR40S51kbiqlUOOCcDYupA60aDpBTIPLPTnCksYzcpJWzTZRhZsm25EQE4QScd02KYmFGYNEVIuf82yxEXxORiXWATzWfC8zjp1FhK9SpzIfdO10qHiWdPvQ2mUCaUZm0zzouTFo713osr7Kblf28cUirNXoFmIvGy31rNPo4zVkdQ4Hz1HCh93L8lqFa4A459DZQEYtW3oPHordBIOjKpzMsOvysl5MMY0wP+gRDAVD5KPwYSx7BecydZnlHrWXOlr6xdJI4TYs86zJwl/LbleazKLzCqAngU1lqjKvQNntDnHkS+Qd4K5B5XUIz9ELryPJeZKCthYxJuGjoOD3YVv1+DBhLh+AR5kbgMsPywYx6T6jll3DthHb/gV+f4bLF/eE/RzOM6TCEYxgXmJhZg912e2eGajawyX128pU9Mdlt3uBLjX+umcCXHAU66mEmIMlqFTLbreu8AErg2fQk3AYUfZpCx+eWlyBxg6rY1BWaou/jkF77y7j6g8l9+0AjUYdIY5B7BSlbazR9iom+6DQ9wx8+uwZejNq2ceYjxB2CE4o8Bp2heOfpnVNRaVOAvZMD4UKNpq2A0NBPjEQ5JCtCK+A7BxhRVWT+m2Av+VlzOO/iXF8CK8D910kJbz/qoCkeWMiyDz7WZTNSiXMOOK6mk2OdG6pJaQZ9XCjWnoSUwhiYeASTHv8asrjt/EYi6JmaJzNHFSRk0TZPUG1PDGpg0ZQpXrEVBs21OPrCAC+kNXaXnJMBDRK7c2Cuamx2Bmpjj/Etn2KryNNlZoOHmsRzPv+61AJ5Bner1BORI5xRE9MJuGcaPRY+ThZNEbtK74eopCEDVZCw4xqe9U5lMY0jKRrcm6bMMw2zkihymQ7RmMcb+jpld1uU1qc4vYY9RV8LmTLKrG2d3gj2ahld/CeMcGuCZZtTxB4WfudC+65/r1Y0nUJOccHODSohH9VmgjrlasSSy8ThlDATUcT1TlkwgY4QnZidBqy458O2nvSEQfPV0M7gaja1hYszGIHeheWdk8hfBXeSFZseDUm0DL3G1rceau7LEmlIyaakDDH51j1YGt87zWVy4bZHXB0izROaQJ1zjW/iZ2jhvtqDUKoWchGfdNIvzfCZ9vsmHftrkLOxNHwjugrtJT3o5b9FjsW5iK7yNqPTsIcjzOd0Ch65OOo7DFmJETXVJT1W9VZmIx+TQPrrmrlzTeKABwT7AVFa1UXVEtOJ6BP8NUetexTFOxOVr9z0ZVGlo0khifT3jeN8SNyX+xQokoqLzyqLyPeZh1dZQrmGOg8PCG7qI15sgyoJGSVz+zgXMtBleIM85kfWk5ykqg30143ce8cIyT0ImJu/lCquyw0OpHNeTFEVax2KyMI6mHbFxteKnnJIp+5g1ExT7gHhc3rXpbdbn+B7on7gmlJnsSle9D4FLVNyeDBohzyjGAhmsWGx6YYz2dqy8t5OWrZqXzzafOZaxFW0h1UAVelxpQsvJWFODZ1oycKo4n7SDXi1A0KIJr4/FW/8SCpoC9hKG+SwUfZtjjaHmKyhRPhKqymmW6lVbNNdP1d9rAalBB6CMhCPbdR3ZIKW0SQxhSaePh9lqShionGziIq1jeYV5fd7rlkBHd0CyFw11FakOU6S3QCJW1DWS4+xmfX0XLdxzl84HLCKDGZOzKVzSKxmq1xY8hYlZFZJZSBsInqMNoa+jFDD1XnYCGUTX5aw/6Pbq84o6Ps+KxDVkZ0cR1SX/wN9xyZ+rvPSvOIH2KopUwLPVds28cOdGYejC4p2X2O8xzMCH6akVnlxpCxEvNmHNlOFWrULtZFCyN3KgnDDjuaGHH28LzA0fsiYYzwoSLdkT3ITtnt9rBzCFXLqhA19gKDSJp3nD2VBFXSzEsUaD6STjVw8dlSFUlG3e6oZfexzfp4LFsxyqu8DTJt7AlGkfXCtkhjAIujNq9SVYhahAtoG4UsUfxwGHEVsdlO0pK6eHzV/HobS9i8QaPne3wvXss2agr33dV1qGmrbS7NUKeB8tMPVVDPDt6zH/CeqbLdVOq9Stb2+bZILMzY6LKAcRkrs8yM4aqaac/Rm1lON9vjdzI4vnvf7SQ4j03TVi7vz0b1Oc19U7mmjKZJd5HPfJBlaZxlAIXBNVz3OuQozqVhJFqcfYZxHjQ8/kGc38ThLoGKHYBx0HHbClCQZ66RxVwnFGhXVdQSzxM5cKbNZ+5jKpzqRhxEWUEfKvgwVwwals2hnyZJF8V9Hhs09CkaIWMJGLbdFyyiynAXtt2jZRHkEBSWsK2ihJpt80i3SikK9HOZcUwCa5vHBqueVqPaOZNVINF6WcUHpsStaLHQubKiplbfRHDQCiyS6Jq4+yMaDXtZqaLoXXCEc1zgOVK3A14DXzCwgu0cFic8SaqBYYmfmfl1seFFekHQcize15M0SQyKGlzBNcaNo8ZAkLCYX2gIDu9Z4LaKeTy+ptknwzKA939aaNLK79QpqAAAAABJRU5ErkJggg==", + "onwardInlandRouting": "Rail to Johor Port β†’ Trucking to final inland delivery point (Long Beach, USA)", + "vessel": "MAERSK NATALIA", + "voyageNo": "7831W", + "portOfLoading": "Singapore", + "portOfDischarge": "LOS ANGELES, CA", + "placeOfReceipt": "JURONG PORT, SINGAPORE", + "placeOfDelivery": "Long Beach Distribution Center, CA", + "placeOfIssueBL": "Singapore", + "numberOfOriginalBL": "3", + "dateOfIssueBL": "2025-06-05", + "shippedOnBoardDate": "2025-06-05", + "signForTermsAndCondition": "The carrier accepts the goods as described in good order and condition for carriage under the terms stated herein and subject to the Carrier's standard Bill of Lading Terms and Conditions.", + "signedForCarrierText": "John Doe", + "carrierSignature": "data:image/png;base64,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gMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIXVqaAAAAbSSURBVIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBP4/csBUQgAdQDwAAAAASUVORK5CYII=", + "termsOfCarriage": "All shipments are subject to the Hague-Visby Rules. The carrier assumes liability only for loss or damage due to its own negligence. Responsibility ceases at the time goods are delivered to the consignee or their agent. Claims must be submitted within 7 working days of delivery.", + "attachments": [ + { + "data": "JVBERi0xLjYNJeLjz9MNCjI0IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA0L0xlbmd0aCAyMTYvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjePI9RS8MwFIX/yn1bi9jepCQ6GYNpFBTEMsW97CVLbjWYNpImmz/fVsXXcw/f/c4SEFarepPTe4iFok8dU09DgtDBQx6TMwT74vaLTE7uSPDUdXM0Xe/73r1FnVwYYEtHR6d9WdY3kX4ipRMV6oojSmxQMoGyac5RLBAXf63p38aGA7XPorLewyvFcYaJile8rB+D/YcwiRdMMGScszO8/IW0MdhsaKKYGA46gXKTr/cUQVY4We/cYMNpnLVeXPJUXHs9fECr7kAFk+eZ5Xr9LcAAfKpQrA0KZW5kc3RyZWFtDWVuZG9iag0yNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgNC9MZW5ndGggNDkvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjeslAwULCx0XfOL80rUTDU985MKY42NAIKBsXqh1QWpOoHJKanFtvZAQQYAN/6C60NCmVuZHN0cmVhbQ1lbmRvYmoNMjYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDkvTGVuZ3RoIDQyL04gMi9UeXBlL09ialN0bT4+c3RyZWFtDQpo3jJTMFAwVzC0ULCx0fcrzS2OBnENFIJi7eyAIsH6LnZ2AAEGAI2FCDcNCmVuZHN0cmVhbQ1lbmRvYmoNMjcgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDUvTGVuZ3RoIDEyMC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yNFIwULCx0XfOzytJzSspVjAyBgoE6TsX5Rc45VdEGwB5ZoZGCuaWRrH6vqkpmYkYogGJRUCdChZgfUGpxfmlRcmpxUAzA4ryk4NTS6L1A1zc9ENSK0pi7ez0g/JLEktSFQz0QyoLUoF601Pt7AACDADYoCeWDQplbmRzdHJlYW0NZW5kb2JqDTIgMCBvYmoNPDwvTGVuZ3RoIDM1MjUvU3VidHlwZS9YTUwvVHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA2LjAgKFdpbmRvd3MpPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDA2LTAzLTA2VDE1OjA2OjMzLTA1OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZVBTNS5kbGwgVmVyc2lvbiA1LjIuMjwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wNy0xNVQxMDoxMjoyMSswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDctMTVUMTA6MTI6MjErMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnV1aWQ6ZmYzZGNmZDEtMjNmYS00NzZmLTgzOWEtM2U1Y2FlMmRhMmViPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOjM1OTM1MGIzLWFmNDAtNGQ4YS05ZDZjLTAzMTg2YjRmZmIzNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5CbGFuayBQREYgRG9jdW1lbnQ8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+RGVwYXJ0bWVudCBvZiBKdXN0aWNlIChFeGVjdXRpdmUgT2ZmaWNlIG9mIEltbWlncmF0aW9uIFJldmlldyk8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ1lbmRvYmoNMTEgMCBvYmoNPDwvTWV0YWRhdGEgMiAwIFIvUGFnZUxhYmVscyA2IDAgUi9QYWdlcyA4IDAgUi9UeXBlL0NhdGFsb2c+Pg1lbmRvYmoNMjMgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMD4+c3RyZWFtDQpIiQIIMAAAAAABDQplbmRzdHJlYW0NZW5kb2JqDTI4IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA0L1ByZWRpY3RvciAxMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9JRFs8REI3Nzc1Q0NFMjI3RjZCMzBDNDQwREY0MjIxREMzOTA+PEJGQ0NDRjNGNTdGNjEzNEFCRDNDMDRBOUU0Q0ExMDZFPl0vSW5mbyA5IDAgUi9MZW5ndGggODAvUm9vdCAxMSAwIFIvU2l6ZSAyOS9UeXBlL1hSZWYvV1sxIDIgMV0+PnN0cmVhbQ0KaN5iYgACJjDByGzIwPT/73koF0wwMUiBWYxA4v9/EMHA9I/hBVCxoDOQeH8DxH2KrIMIglFwIpD1vh5IMJqBxPpArHYgwd/KABBgAP8bEC0NCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQo0NTc2DQolJUVPRg0K", + "filename": "blank.pdf", + "mimeType": "application/pdf" + }, + { + "data": "e30=", + "filename": "empty.json", + "mimeType": "application/json" + }, + { + "data": "JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==", + "filename": "sample.pdf", + "mimeType": "application/pdf" + }, + { + "data": "JVBERi0xLjYNJeLjz9MNCjI0IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA0L0xlbmd0aCAyMTYvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjePI9RS8MwFIX/yn1bi9jepCQ6GYNpFBTEMsW97CVLbjWYNpImmz/fVsXXcw/f/c4SEFarepPTe4iFok8dU09DgtDBQx6TMwT74vaLTE7uSPDUdXM0Xe/73r1FnVwYYEtHR6d9WdY3kX4ipRMV6oojSmxQMoGyac5RLBAXf63p38aGA7XPorLewyvFcYaJile8rB+D/YcwiRdMMGScszO8/IW0MdhsaKKYGA46gXKTr/cUQVY4We/cYMNpnLVeXPJUXHs9fECr7kAFk+eZ5Xr9LcAAfKpQrA0KZW5kc3RyZWFtDWVuZG9iag0yNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgNC9MZW5ndGggNDkvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjeslAwULCx0XfOL80rUTDU985MKY42NAIKBsXqh1QWpOoHJKanFtvZAQQYAN/6C60NCmVuZHN0cmVhbQ1lbmRvYmoNMjYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDkvTGVuZ3RoIDQyL04gMi9UeXBlL09ialN0bT4+c3RyZWFtDQpo3jJTMFAwVzC0ULCx0fcrzS2OBnENFIJi7eyAIsH6LnZ2AAEGAI2FCDcNCmVuZHN0cmVhbQ1lbmRvYmoNMjcgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDUvTGVuZ3RoIDEyMC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yNFIwULCx0XfOzytJzSspVjAyBgoE6TsX5Rc45VdEGwB5ZoZGCuaWRrH6vqkpmYkYogGJRUCdChZgfUGpxfmlRcmpxUAzA4ryk4NTS6L1A1zc9ENSK0pi7ez0g/JLEktSFQz0QyoLUoF601Pt7AACDADYoCeWDQplbmRzdHJlYW0NZW5kb2JqDTIgMCBvYmoNPDwvTGVuZ3RoIDM1MjUvU3VidHlwZS9YTUwvVHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA2LjAgKFdpbmRvd3MpPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDA2LTAzLTA2VDE1OjA2OjMzLTA1OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZVBTNS5kbGwgVmVyc2lvbiA1LjIuMjwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wNy0xNVQxMDoxMjoyMSswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDctMTVUMTA6MTI6MjErMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnV1aWQ6ZmYzZGNmZDEtMjNmYS00NzZmLTgzOWEtM2U1Y2FlMmRhMmViPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOjM1OTM1MGIzLWFmNDAtNGQ4YS05ZDZjLTAzMTg2YjRmZmIzNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5CbGFuayBQREYgRG9jdW1lbnQ8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+RGVwYXJ0bWVudCBvZiBKdXN0aWNlIChFeGVjdXRpdmUgT2ZmaWNlIG9mIEltbWlncmF0aW9uIFJldmlldyk8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ1lbmRvYmoNMTEgMCBvYmoNPDwvTWV0YWRhdGEgMiAwIFIvUGFnZUxhYmVscyA2IDAgUi9QYWdlcyA4IDAgUi9UeXBlL0NhdGFsb2c+Pg1lbmRvYmoNMjMgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMD4+c3RyZWFtDQpIiQIIMAAAAAABDQplbmRzdHJlYW0NZW5kb2JqDTI4IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA0L1ByZWRpY3RvciAxMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9JRFs8REI3Nzc1Q0NFMjI3RjZCMzBDNDQwREY0MjIxREMzOTA+PEJGQ0NDRjNGNTdGNjEzNEFCRDNDMDRBOUU0Q0ExMDZFPl0vSW5mbyA5IDAgUi9MZW5ndGggODAvUm9vdCAxMSAwIFIvU2l6ZSAyOS9UeXBlL1hSZWYvV1sxIDIgMV0+PnN0cmVhbQ0KaN5iYgACJjDByGzIwPT/73koF0wwMUiBWYxA4v9/EMHA9I/hBVCxoDOQeH8DxH2KrIMIglFwIpD1vh5IMJqBxPpArHYgwd/KABBgAP8bEC0NCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQo0NTc2DQolJUVPRg0K", + "filename": "veryverylongfilenameoverhereveryverylongfilenameoverhere.pdf", + "mimeType": "application/pdf" + } + ] + }, + "type": ["VerifiableCredential"], + "credentialStatus": { + "type": "TransferableRecords", + "tokenNetwork": { + "chain": "FREE", + "chainId": 101010 + }, + "tokenRegistry": "0x7202363bBDb126036F7C3243Ebac310d9d145040", + "tokenId": "77b056e4524e69c51fa0d27459ae504b9b2ab88359b4be40e2b4a60ccda2e900" + }, + "issuer": "did:web:trustvc.github.io:did:1", + "validFrom": "2024-04-01T12:19:52Z", + "id": "urn:uuid:019bde89-fa0b-733c-b663-6b46c6a6908b", + "proof": { + "type": "DataIntegrityProof", + "verificationMethod": "did:web:trustvc.github.io:did:1#multikey-2", + "cryptosuite": "bbs-2023", + "proofPurpose": "assertionMethod", + "proofValue": "u2V0ChVhQhzENt_A1gmatFwG5rfZiOth1JD3ALwgh_esbGXFU5Nhs3hrQ4iw_jzpy5-W1c1OrKWdKLgNG2Lj1G6zQyA3myYqrNy4DgtO86ElSV_ewJqdYQD9WZttHrlLy5Yt4KX5JlbD4AqxyPhcyoKk-Wo6FkAtpZsbWIE72P8kG5m7fT_DVEHnjS2aA2qqbQ2cORbU0hWtYYLDx2EM7LXGzSqyTOC8ZKJ9hgD0GHrf59LhRlLV3-pK34L5ohGo8I-g81SD6xVKofBMNiXxFLrp7w56sQlEOkcpISekB2jtn0DeTWzNHrnVwuejhZPM1PPtOuxtkbzj6J1ggi8bJHCZOPnakpm0CkyIIs5xNfTu0U_0e-0iy-iqq2nuCZy9pc3N1ZXJqL3ZhbGlkRnJvbQ" + } +} diff --git a/src/__tests__/__fixtures__/w3c/bbs2023_w3c_verifiable_document_v2_0.json b/src/__tests__/__fixtures__/w3c/bbs2023_w3c_verifiable_document_v2_0.json new file mode 100644 index 0000000..6424d05 --- /dev/null +++ b/src/__tests__/__fixtures__/w3c/bbs2023_w3c_verifiable_document_v2_0.json @@ -0,0 +1,31 @@ +{ + "@context": [ + "https://www.w3.org/ns/credentials/v2", + "https://w3id.org/security/data-integrity/v2", + "https://w3c-ccg.github.io/citizenship-vocab/contexts/citizenship-v2.jsonld" + ], + "credentialStatus": { + "id": "https://trustvc.github.io/did/credentials/statuslist/1#1", + "type": "BitstringStatusListEntry", + "statusPurpose": "revocation", + "statusListIndex": "10", + "statusListCredential": "https://trustvc.github.io/did/credentials/statuslist/1" + }, + "credentialSubject": { + "name": "TrustVC", + "birthDate": "2024-04-01T12:19:52Z", + "type": ["PermanentResident", "Person"] + }, + "validUntil": "2029-12-03T12:19:52Z", + "issuer": "did:web:trustvc.github.io:did:1", + "type": ["VerifiableCredential"], + "validFrom": "2024-04-01T12:19:52Z", + "id": "urn:uuid:019bdac4-15af-7ddf-a904-e29e770cb8d0", + "proof": { + "type": "DataIntegrityProof", + "verificationMethod": "did:web:trustvc.github.io:did:1#multikey-2", + "cryptosuite": "bbs-2023", + "proofPurpose": "assertionMethod", + "proofValue": "u2V0ChVhQl3FQf1iCsd8UOYKoOtE05EwyADb2pFKw3CXYhmAAKstq1lX4o69u58Z67M_2i6RIRZZv-KITPWVH00hkQKuNH3GWNpw9JO1RMQ_iKJm4u-xYQD9WZttHrlLy5Yt4KX5JlbD4AqxyPhcyoKk-Wo6FkAtpZhBXKsdUqNY4_vn1ieMbuZLxuIijh5S1vR5UbeeBlupYYLDx2EM7LXGzSqyTOC8ZKJ9hgD0GHrf59LhRlLV3-pK34L5ohGo8I-g81SD6xVKofBMNiXxFLrp7w56sQlEOkcpISekB2jtn0DeTWzNHrnVwuejhZPM1PPtOuxtkbzj6J1ggQDXmZWDv7Gc0fHBKsyn_bGwKW8HLyTRJZZ-2ielvfxqCZy9pc3N1ZXJqL3ZhbGlkRnJvbQ" + } +} diff --git a/src/__tests__/__fixtures__/w3c/ecdsa_w3c_transferable_document_v2_0.json b/src/__tests__/__fixtures__/w3c/ecdsa_w3c_transferable_document_v2_0.json new file mode 100644 index 0000000..76000f3 --- /dev/null +++ b/src/__tests__/__fixtures__/w3c/ecdsa_w3c_transferable_document_v2_0.json @@ -0,0 +1,105 @@ +{ + "@context": [ + "https://www.w3.org/ns/credentials/v2", + "https://w3id.org/security/data-integrity/v2", + "https://trustvc.io/context/render-method-context-v2.json", + "https://trustvc.io/context/bill-of-lading-carrier.json", + "https://trustvc.io/context/attachments-context.json", + "https://trustvc.io/context/transferable-records-context.json", + "https://trustvc.io/context/qrcode-context.json" + ], + "renderMethod": [ + { + "type": "EMBEDDED_RENDERER", + "templateName": "BILL_OF_LADING_CARRIER", + "id": "https://generic-templates.tradetrust.io" + } + ], + "credentialSubject": { + "type": ["BillOfLadingCarrier"], + "shipperName": "MAERSK Co.", + "shipperAddressStreet": "101 ORCHARD ROAD", + "shipperAddressCountry": "Singapore", + "toOrderOfText": "TO ORDER", + "consigneeName": "ABC Natural Foods Inc.", + "notifyPartyName": "Amanda Green – Import Manager, ABC Natural Foods", + "packages": [ + { + "packagesDescription": "Organic Cashew Kernels (25kg bags)", + "packagesMeasurement": "100 Bags", + "packagesWeight": "2.65 MT" + }, + { + "packagesDescription": "Roasted Chickpeas (20kg packs)", + "packagesMeasurement": "60 Bundles", + "packagesWeight": "1.3" + } + ], + "blNumber": "SGCNM21566325", + "scac": "SGPU", + "carrierName": "Vikram Rao", + "logo": "data:image/png;base64,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", + "onwardInlandRouting": "Rail to Johor Port β†’ Trucking to final inland delivery point (Long Beach, USA)", + "vessel": "MAERSK NATALIA", + "voyageNo": "7831W", + "portOfLoading": "Singapore", + "portOfDischarge": "LOS ANGELES, CA", + "placeOfReceipt": "JURONG PORT, SINGAPORE", + "placeOfDelivery": "Long Beach Distribution Center, CA", + "placeOfIssueBL": "Singapore", + "numberOfOriginalBL": "3", + "dateOfIssueBL": "2025-06-05", + "shippedOnBoardDate": "2025-06-05", + "signForTermsAndCondition": "The carrier accepts the goods as described in good order and condition for carriage under the terms stated herein and subject to the Carrier's standard Bill of Lading Terms and Conditions.", + "signedForCarrierText": "John Doe", + "carrierSignature": "data:image/png;base64,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gMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIXVqaAAAAbSSURBVIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBP4/csBUQgAdQDwAAAAASUVORK5CYII=", + "termsOfCarriage": "All shipments are subject to the Hague-Visby Rules. The carrier assumes liability only for loss or damage due to its own negligence. Responsibility ceases at the time goods are delivered to the consignee or their agent. Claims must be submitted within 7 working days of delivery.", + "attachments": [ + { + "data": "JVBERi0xLjYNJeLjz9MNCjI0IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA0L0xlbmd0aCAyMTYvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjePI9RS8MwFIX/yn1bi9jepCQ6GYNpFBTEMsW97CVLbjWYNpImmz/fVsXXcw/f/c4SEFarepPTe4iFok8dU09DgtDBQx6TMwT74vaLTE7uSPDUdXM0Xe/73r1FnVwYYEtHR6d9WdY3kX4ipRMV6oojSmxQMoGyac5RLBAXf63p38aGA7XPorLewyvFcYaJile8rB+D/YcwiRdMMGScszO8/IW0MdhsaKKYGA46gXKTr/cUQVY4We/cYMNpnLVeXPJUXHs9fECr7kAFk+eZ5Xr9LcAAfKpQrA0KZW5kc3RyZWFtDWVuZG9iag0yNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgNC9MZW5ndGggNDkvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjeslAwULCx0XfOL80rUTDU985MKY42NAIKBsXqh1QWpOoHJKanFtvZAQQYAN/6C60NCmVuZHN0cmVhbQ1lbmRvYmoNMjYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDkvTGVuZ3RoIDQyL04gMi9UeXBlL09ialN0bT4+c3RyZWFtDQpo3jJTMFAwVzC0ULCx0fcrzS2OBnENFIJi7eyAIsH6LnZ2AAEGAI2FCDcNCmVuZHN0cmVhbQ1lbmRvYmoNMjcgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDUvTGVuZ3RoIDEyMC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yNFIwULCx0XfOzytJzSspVjAyBgoE6TsX5Rc45VdEGwB5ZoZGCuaWRrH6vqkpmYkYogGJRUCdChZgfUGpxfmlRcmpxUAzA4ryk4NTS6L1A1zc9ENSK0pi7ez0g/JLEktSFQz0QyoLUoF601Pt7AACDADYoCeWDQplbmRzdHJlYW0NZW5kb2JqDTIgMCBvYmoNPDwvTGVuZ3RoIDM1MjUvU3VidHlwZS9YTUwvVHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA2LjAgKFdpbmRvd3MpPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDA2LTAzLTA2VDE1OjA2OjMzLTA1OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZVBTNS5kbGwgVmVyc2lvbiA1LjIuMjwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wNy0xNVQxMDoxMjoyMSswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDctMTVUMTA6MTI6MjErMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnV1aWQ6ZmYzZGNmZDEtMjNmYS00NzZmLTgzOWEtM2U1Y2FlMmRhMmViPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOjM1OTM1MGIzLWFmNDAtNGQ4YS05ZDZjLTAzMTg2YjRmZmIzNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5CbGFuayBQREYgRG9jdW1lbnQ8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+RGVwYXJ0bWVudCBvZiBKdXN0aWNlIChFeGVjdXRpdmUgT2ZmaWNlIG9mIEltbWlncmF0aW9uIFJldmlldyk8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ1lbmRvYmoNMTEgMCBvYmoNPDwvTWV0YWRhdGEgMiAwIFIvUGFnZUxhYmVscyA2IDAgUi9QYWdlcyA4IDAgUi9UeXBlL0NhdGFsb2c+Pg1lbmRvYmoNMjMgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMD4+c3RyZWFtDQpIiQIIMAAAAAABDQplbmRzdHJlYW0NZW5kb2JqDTI4IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA0L1ByZWRpY3RvciAxMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9JRFs8REI3Nzc1Q0NFMjI3RjZCMzBDNDQwREY0MjIxREMzOTA+PEJGQ0NDRjNGNTdGNjEzNEFCRDNDMDRBOUU0Q0ExMDZFPl0vSW5mbyA5IDAgUi9MZW5ndGggODAvUm9vdCAxMSAwIFIvU2l6ZSAyOS9UeXBlL1hSZWYvV1sxIDIgMV0+PnN0cmVhbQ0KaN5iYgACJjDByGzIwPT/73koF0wwMUiBWYxA4v9/EMHA9I/hBVCxoDOQeH8DxH2KrIMIglFwIpD1vh5IMJqBxPpArHYgwd/KABBgAP8bEC0NCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQo0NTc2DQolJUVPRg0K", + "filename": "blank.pdf", + "mimeType": "application/pdf" + }, + { + "data": "e30=", + "filename": "empty.json", + "mimeType": "application/json" + }, + { + "data": "JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==", + "filename": "sample.pdf", + "mimeType": "application/pdf" + }, + { + "data": "JVBERi0xLjYNJeLjz9MNCjI0IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA0L0xlbmd0aCAyMTYvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjePI9RS8MwFIX/yn1bi9jepCQ6GYNpFBTEMsW97CVLbjWYNpImmz/fVsXXcw/f/c4SEFarepPTe4iFok8dU09DgtDBQx6TMwT74vaLTE7uSPDUdXM0Xe/73r1FnVwYYEtHR6d9WdY3kX4ipRMV6oojSmxQMoGyac5RLBAXf63p38aGA7XPorLewyvFcYaJile8rB+D/YcwiRdMMGScszO8/IW0MdhsaKKYGA46gXKTr/cUQVY4We/cYMNpnLVeXPJUXHs9fECr7kAFk+eZ5Xr9LcAAfKpQrA0KZW5kc3RyZWFtDWVuZG9iag0yNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgNC9MZW5ndGggNDkvTiAxL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjeslAwULCx0XfOL80rUTDU985MKY42NAIKBsXqh1QWpOoHJKanFtvZAQQYAN/6C60NCmVuZHN0cmVhbQ1lbmRvYmoNMjYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDkvTGVuZ3RoIDQyL04gMi9UeXBlL09ialN0bT4+c3RyZWFtDQpo3jJTMFAwVzC0ULCx0fcrzS2OBnENFIJi7eyAIsH6LnZ2AAEGAI2FCDcNCmVuZHN0cmVhbQ1lbmRvYmoNMjcgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDUvTGVuZ3RoIDEyMC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yNFIwULCx0XfOzytJzSspVjAyBgoE6TsX5Rc45VdEGwB5ZoZGCuaWRrH6vqkpmYkYogGJRUCdChZgfUGpxfmlRcmpxUAzA4ryk4NTS6L1A1zc9ENSK0pi7ez0g/JLEktSFQz0QyoLUoF601Pt7AACDADYoCeWDQplbmRzdHJlYW0NZW5kb2JqDTIgMCBvYmoNPDwvTGVuZ3RoIDM1MjUvU3VidHlwZS9YTUwvVHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA2LjAgKFdpbmRvd3MpPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDA2LTAzLTA2VDE1OjA2OjMzLTA1OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZVBTNS5kbGwgVmVyc2lvbiA1LjIuMjwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wNy0xNVQxMDoxMjoyMSswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDctMTVUMTA6MTI6MjErMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnV1aWQ6ZmYzZGNmZDEtMjNmYS00NzZmLTgzOWEtM2U1Y2FlMmRhMmViPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOjM1OTM1MGIzLWFmNDAtNGQ4YS05ZDZjLTAzMTg2YjRmZmIzNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5CbGFuayBQREYgRG9jdW1lbnQ8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+RGVwYXJ0bWVudCBvZiBKdXN0aWNlIChFeGVjdXRpdmUgT2ZmaWNlIG9mIEltbWlncmF0aW9uIFJldmlldyk8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ1lbmRvYmoNMTEgMCBvYmoNPDwvTWV0YWRhdGEgMiAwIFIvUGFnZUxhYmVscyA2IDAgUi9QYWdlcyA4IDAgUi9UeXBlL0NhdGFsb2c+Pg1lbmRvYmoNMjMgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMD4+c3RyZWFtDQpIiQIIMAAAAAABDQplbmRzdHJlYW0NZW5kb2JqDTI4IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA0L1ByZWRpY3RvciAxMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9JRFs8REI3Nzc1Q0NFMjI3RjZCMzBDNDQwREY0MjIxREMzOTA+PEJGQ0NDRjNGNTdGNjEzNEFCRDNDMDRBOUU0Q0ExMDZFPl0vSW5mbyA5IDAgUi9MZW5ndGggODAvUm9vdCAxMSAwIFIvU2l6ZSAyOS9UeXBlL1hSZWYvV1sxIDIgMV0+PnN0cmVhbQ0KaN5iYgACJjDByGzIwPT/73koF0wwMUiBWYxA4v9/EMHA9I/hBVCxoDOQeH8DxH2KrIMIglFwIpD1vh5IMJqBxPpArHYgwd/KABBgAP8bEC0NCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQo0NTc2DQolJUVPRg0K", + "filename": "veryverylongfilenameoverhereveryverylongfilenameoverhere.pdf", + "mimeType": "application/pdf" + } + ] + }, + "type": ["VerifiableCredential"], + "qrCode": { + "type": "TrustVCQRCode", + "uri": "https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.tradetrust.io%2Fstatic%2Fw3c%2Fv2_0%2Fbill-of-lading-operative.json%22%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%2F%22%2C%22chainId%22%3A%22101010%22%7D%7D" + }, + "credentialStatus": { + "type": "TransferableRecords", + "tokenNetwork": { + "chain": "FREE", + "chainId": 101010 + }, + "tokenRegistry": "0x7202363bBDb126036F7C3243Ebac310d9d145040", + "tokenId": "00dc804498ef4be3f85d308f481889862c47427de812ce07fb68451870f568b9" + }, + "issuer": "did:web:trustvc.github.io:did:1", + "validFrom": "2024-04-01T12:19:52Z", + "id": "urn:uuid:01992dfa-c12f-7dde-9b11-39ca137e9302", + "proof": { + "type": "DataIntegrityProof", + "created": "2025-09-09T10:17:12Z", + "verificationMethod": "did:web:trustvc.github.io:did:1#multikey-1", + "cryptosuite": "ecdsa-sd-2023", + "proofPurpose": "assertionMethod", + "proofValue": "u2V0AhVhAhXO0SlwhidFxMbpIV-KYjjIegFgYCcPGZ6VjO1DsGfW6wug2xWoHGUH0doaCXydbwRi0EtOOoJlfDbn5vYj7uVgjgCQCaSm-p60ackROchjdiT5kjv9sKn_mnlp8JaeWVUMJJVFYIIrSdA2TyIuExK3IoAuJIByBnck7lRfeJu6O9gZNpgVXgIZnL2lzc3VlcmovdmFsaWRGcm9tci9jcmVkZW50aWFsU3ViamVjdG0vcmVuZGVyTWV0aG9kcS9jcmVkZW50aWFsU3RhdHVzZy9xckNvZGU" + } +} diff --git a/src/__tests__/__fixtures__/w3c/ecdsa_w3c_verifiable_document_v2_0.json b/src/__tests__/__fixtures__/w3c/ecdsa_w3c_verifiable_document_v2_0.json new file mode 100644 index 0000000..c3f1622 --- /dev/null +++ b/src/__tests__/__fixtures__/w3c/ecdsa_w3c_verifiable_document_v2_0.json @@ -0,0 +1,101 @@ +{ + "@context": [ + "https://www.w3.org/ns/credentials/v2", + "https://w3id.org/security/data-integrity/v2", + "https://trustvc.io/context/render-method-context-v2.json", + "https://trustvc.io/context/coo.json", + "https://trustvc.io/context/attachments-context.json", + "https://trustvc.io/context/qrcode-context.json" + ], + "renderMethod": [ + { + "type": "EMBEDDED_RENDERER", + "templateName": "CHAFTA_COO", + "id": "https://generic-templates.tradetrust.io" + } + ], + "credentialSubject": { + "type": ["Coo"], + "signature": "data:image/png;base64,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gMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIXVqaAAAAbSSURBVIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBAQW4UqiQQQIECBAgAABAgQIECBAgIDAwhggQIAAAQIECBAgQIAAAQIEwgkILMKVRIMIECBAgAABAgQIECBAgAABgYUxQIAAAQIECBAgQIAAAQIECIQTEFiEK4kGESBAgAABAgQIECBAgAABAgILY4AAAQIECBAgQIAAAQIECBAIJyCwCFcSDSJAgAABAgQIECBAgAABAgQEFsYAAQIECBAgQIAAAQIECBAgEE5AYBGuJBpEgAABAgQIECBAgAABAgQICCyMAQIECBAgQIAAAQIECBAgQCCcgMAiXEk0iAABAgQIECBAgAABAgQIEBBYGAMECBAgQIAAAQIECBAgQIBAOAGBRbiSaBABAgQIECBAgAABAgQIECAgsDAGCBAgQIAAAQIECBAgQIAAgXACAotwJdEgAgQIECBAgAABAgQIECBAQGBhDBAgQIAAAQIECBAgQIAAAQLhBP4/csBUQgAdQDwAAAAASUVORK5CYII=", + "supplyChainConsignmentId": "CONS-EX456789", + "exportCountryCode": "IN", + "exporterId": "EXP-IN-00987", + "exporterName": "ABC Exports Pvt. Ltd.", + "exporterLine1": "12/F, Industrial Plaza", + "exporterLine2": "Near MIDC, Vashi", + "exporterCityName": "Navi Mumbai", + "exporterPostcode": "400703", + "exporterCountrySubDivisionName": "Maharashtra", + "exporterCountryCode": "IN", + "importCountryCode": "GB", + "importerId": "IMP-UK-88456", + "importerName": "XYZ Foods Ltd.", + "importerLine1": "Unit 17, Royal Wharf", + "importerLine2": "Docklands Industrial Area", + "importerCityName": "London", + "importerPostcode": "E16 2AA", + "importerCountrySubDivisionName": "Greater London", + "importerCountryCode": "GB", + "includedConsignmentItems": [ + { + "manufacturerId": "MFG-IN-3211", + "manufacturerName": "LMN Grains Co.", + "manufacturerLine1": "Plot 7, Grain Belt Estate", + "manufacturerLine2": "Sector 9", + "manufacturerCityName": "Karnal", + "manufacturerPostcode": "132001", + "manufacturerCountrySubDivisionName": "Haryana", + "manufacturerCountryCode": "IN", + "tradeLineItems": [ + { + "invoiceReferenceId": "INV-904/UK", + "formattedIssueDateTime": "2025-06-06T09:15:00.000Z", + "originCountryCode": "IN", + "tradeProductId": "TP-98121", + "tradeProductDescription": "Basmati Rice, Organic, 20kg Pack", + "harmonisedTariffclassCode": "10063010", + "harmonisedTariffclassName": "Semi-milled or wholly milled rice, whether or not polished or glazed", + "transportPackages": [ + { + "transportPackagesId": "PKG-0101", + "transportPackagesGrossVolume": "3.2", + "transportPackagesGrossWeight": "2050" + } + ], + "sequenceNumber": -4 + } + ], + "includedConsignmentItemsId": "ITEM001", + "includedConsignmentItemsInformation": "Organic Basmati Rice – 20kg vacuum packs", + "originCriteriaText": "Wholly Obtained in India" + } + ], + "loadingBaseportLocationId": "PORT-IN-MUM", + "loadingBaseportLocationName": "Nhava Sheva (JNPT), India", + "mainCarriageTransportMovementId": "MCTM-8458", + "mainCarriageTransportMovementInformation": "Ocean freight via ABC Shipping", + "usedTransportMeansName": "Vessel – XYZ VESSEL 001", + "usedTransportMeansId": "VSL-77381-AZ", + "departureDateTime": "2025-06-05T09:15:00.000Z", + "unloadingBaseportLocationId": "PORT-UK-FEL", + "unloadingBaseportLocationName": "Port of Felixstowe, United Kingdom", + "cooId": "COO-20250604-00", + "issueDateTime": "2025-06-05T21:15:00.000Z" + }, + "type": ["VerifiableCredential"], + "qrCode": { + "type": "TrustVCQRCode", + "uri": "https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.tradetrust.io%2Fstatic%2Fw3c%2Fv2_0%2Fcertificate-of-origin-default.json%22%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%2F%22%2C%22chainId%22%3A%22101010%22%7D%7D" + }, + "issuer": "did:web:trustvc.github.io:did:1", + "validFrom": "2024-04-01T12:19:52Z", + "id": "urn:uuid:01992e71-8f2b-7000-aa91-4e2970c8bf4b", + "proof": { + "type": "DataIntegrityProof", + "created": "2025-09-09T12:26:58Z", + "verificationMethod": "did:web:trustvc.github.io:did:1#multikey-1", + "cryptosuite": "ecdsa-sd-2023", + "proofPurpose": "assertionMethod", + "proofValue": "u2V0AhVhAN0HNoehLZWCVx43aBosJW3XeHtsL7S-C3PvE8tt5qb_mXfBOD5Wgsza84uGljsaqjRG9svPnQbiJTuCsDGXmW1gjgCQDK674hOYZJLdhCH8Vxiir0VYTPbMDx8zSjZo7OAjRcdhYIIFAEQgGCGbGJjfPUROKRgEnjyBP_YzvtAr-xCfkgjZkgIZnL2lzc3VlcmovdmFsaWRGcm9tci9jcmVkZW50aWFsU3ViamVjdG0vcmVuZGVyTWV0aG9kZy9xckNvZGVlL3R5cGU" + } +} diff --git a/src/__tests__/__fixtures__/w3c/expired_bbs2020_w3c_verifiable_document_v1_1.json b/src/__tests__/__fixtures__/w3c/expired_bbs2020_w3c_verifiable_document_v1_1.json new file mode 100644 index 0000000..ad8e64f --- /dev/null +++ b/src/__tests__/__fixtures__/w3c/expired_bbs2020_w3c_verifiable_document_v1_1.json @@ -0,0 +1,70 @@ +{ + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://trustvc.io/context/invoice.json", + "https://trustvc.io/context/render-method-context.json", + "https://trustvc.io/context/qrcode-context.json", + "https://w3id.org/security/bbs/v1" + ], + "renderMethod": [ + { + "type": "EMBEDDED_RENDERER", + "templateName": "INVOICE", + "id": "https://generic-templates.tradetrust.io" + } + ], + "credentialSubject": { + "type": ["Invoice"], + "billFromName": "ABC Exports Pvt. Ltd.", + "billFromStreetAddress": "12/F, Industrial Plaza, Near MIDC", + "billFromCity": "Navi Mumbai", + "billFromPostalCode": "400703", + "billFromPhoneNumber": "+91-22-4455-9988", + "billToName": "David Thomson", + "billToEmail": "david.thomson@example.co.uk", + "billToCompanyName": "XYZ Foods Ltd.", + "billToCompanyStreetAddress": "Unit 17, Royal Wharf, Docklands Industrial Area", + "billToCompanyCity": "London", + "billToCompanyPostalCode": "E16 2AA", + "billToCompanyPhoneNumber": "+44-20-8899-4455", + "billableItems": [ + { + "billableItemsDescription": "Organic Basmati Rice (20kg Bags)", + "billableItemsQuantity": "100", + "billableItemsUnitPrice": "125", + "billableItemsAmount": "12500" + }, + { + "billableItemsDescription": "Vacuum-Packed Almonds (10kg)", + "billableItemsQuantity": "50", + "billableItemsUnitPrice": "80", + "billableItemsAmount": "4000" + } + ], + "invoiceId": "INV-20250604-001", + "invoiceName": "Export of Organic Basmati Rice", + "date": "2025-06-04", + "customerId": "CUST-UK-55678", + "terms": "Net 30 Days", + "subtotal": "$16,500.00", + "tax": "5%", + "taxTotal": "$825.00", + "total": "$17,325.00" + }, + "type": ["VerifiableCredential"], + "qrCode": { + "type": "TrustVCQRCode", + "uri": "https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.tradetrust.io%2Fstatic%2Finvoice-expired.json%22%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%2F%22%2C%22chainId%22%3A%22101010%22%7D%7D" + }, + "issuer": "did:web:trustvc.github.io:did:1", + "issuanceDate": "2025-06-09T09:36:15.971Z", + "expirationDate": "2025-06-09T11:56:12Z", + "id": "urn:bnid:_:0198d013-0fcf-7dde-a0ad-8b5ea02c7af3", + "proof": { + "type": "BbsBlsSignature2020", + "created": "2025-08-22T04:39:26Z", + "proofPurpose": "assertionMethod", + "proofValue": "k8QwxKBS7BXAWfs1xNv8GuGrEO3FB8/pDIOyWNqI2d2wGYp/tQixwqU0M9GAHV8VNef4c84qgcFZsLSBSM2An8tsYuBoKA8SFJ/lDWfG1KE8rVGAm30irXwSs/afEDzoT2K1T+FA8pEMxuqc1YXdyg==", + "verificationMethod": "did:web:trustvc.github.io:did:1#keys-1" + } +} diff --git a/src/__tests__/__fixtures__/w3c/revoked_ecdsa_w3c_verifiable_document_v2_0.json b/src/__tests__/__fixtures__/w3c/revoked_ecdsa_w3c_verifiable_document_v2_0.json new file mode 100644 index 0000000..065681a --- /dev/null +++ b/src/__tests__/__fixtures__/w3c/revoked_ecdsa_w3c_verifiable_document_v2_0.json @@ -0,0 +1,79 @@ +{ + "@context": [ + "https://www.w3.org/ns/credentials/v2", + "https://w3id.org/security/data-integrity/v2", + "https://trustvc.io/context/render-method-context-v2.json", + "https://trustvc.io/context/invoice.json", + "https://trustvc.io/context/qrcode-context.json" + ], + "renderMethod": [ + { + "type": "EMBEDDED_RENDERER", + "templateName": "INVOICE", + "id": "https://generic-templates.tradetrust.io" + } + ], + "credentialStatus": [ + { + "id": "https://trustvc.github.io/did/credentials/statuslist/2#5", + "statusListCredential": "https://trustvc.github.io/did/credentials/statuslist/2", + "statusListIndex": "5", + "statusPurpose": "revocation", + "type": "BitstringStatusListEntry" + } + ], + "credentialSubject": { + "type": ["Invoice"], + "billFromName": "ABC Exports Pvt. Ltd.", + "billFromStreetAddress": "12/F, Industrial Plaza, Near MIDC", + "billFromCity": "Navi Mumbai", + "billFromPostalCode": "400703", + "billFromPhoneNumber": "+91-22-4455-9988", + "billToName": "David Thomson", + "billToEmail": "david.thomson@example.co.uk", + "billToCompanyName": "XYZ Foods Ltd.", + "billToCompanyStreetAddress": "Unit 17, Royal Wharf, Docklands Industrial Area", + "billToCompanyCity": "London", + "billToCompanyPostalCode": "E16 2AA", + "billToCompanyPhoneNumber": "+44-20-8899-4455", + "billableItems": [ + { + "billableItemsDescription": "Organic Basmati Rice (20kg Bags)", + "billableItemsQuantity": "100", + "billableItemsUnitPrice": "125", + "billableItemsAmount": "12500" + }, + { + "billableItemsDescription": "Vacuum-Packed Almonds (10kg)", + "billableItemsQuantity": "50", + "billableItemsUnitPrice": "80", + "billableItemsAmount": "4000" + } + ], + "invoiceId": "INV-20250604-001", + "invoiceName": "Export of Organic Basmati Rice", + "date": "2025-06-04", + "customerId": "CUST-UK-55678", + "terms": "Net 30 Days", + "subtotal": "$16,500.00", + "tax": "5%", + "taxTotal": "$825.00", + "total": "$17,325.00" + }, + "type": ["VerifiableCredential"], + "qrCode": { + "type": "TrustVCQRCode", + "uri": "https://actions.tradetrust.io?q=%7B%22type%22%3A%22DOCUMENT%22%2C%22payload%22%3A%7B%22uri%22%3A%22https%3A%2F%2Fgallery.tradetrust.io%2Fstatic%2Fw3c%2Fv2_0%2Finvoice-revoked.json%22%2C%22redirect%22%3A%22https%3A%2F%2Fref.tradetrust.io%2F%22%2C%22chainId%22%3A%22101010%22%7D%7D" + }, + "issuer": "did:web:trustvc.github.io:did:1", + "validFrom": "2024-04-01T12:19:52Z", + "id": "urn:uuid:019931db-b8b0-7ff3-bdbc-f3ac820c7668", + "proof": { + "type": "DataIntegrityProof", + "created": "2025-09-10T04:21:47Z", + "verificationMethod": "did:web:trustvc.github.io:did:1#multikey-1", + "cryptosuite": "ecdsa-sd-2023", + "proofPurpose": "assertionMethod", + "proofValue": "u2V0AhVhAJkFjMn4zWrJXhY-EqWhy-NvFRdLm_dF7IIMd4UbLPwjGJyJAnuwqqiM79LZT4bxow0jXYfNF4XWL5bqVFI1MPFgjgCQDuTPhBc6tZKIWyZZZKeARqDErduYv0x3bD7QfG1ke0cNYINX2Sd4geOSiHU73zBQ3d9GTYw79js0OaXhYlf15Z9f4mCZYQCF6ABtuDUFHHkHwG-AsYwmKXytxMMNeSwW2rPP9LHvUt0Ip75uLBjhPONLssKKj_nM7jrRnRAVyNegggCILiZVYQJIxUqZt95fsygUkWlvPkHShl9ZYkf6IZIheKS-uR-SZI7-xcffLx4xZAx1i5dWIJGJC58oBmjlUwsQuM_hKKLlYQFFDtmRXcM1WTY4l3tZdgV1XYPDm8TgvM7m0eguGP1Cwmu2LrGQjFOGLK3PWV89h_GJrRY9zqyDV8019GPztc3FYQABL9bzxVJimp-Zx7rhuN4PsHprgE4jnsk037M3Ge7fcLGXS6j81xtdlCRxMrOOuI4A6VKGufmaTCoyOEbw5KkdYQPXhkK7IO60JL1B8N9VJuZISeF2agzBVLIGZ30XhOc6o6eew9kh9mOtGrJsboEdDL1avqJ5ljs9fRbkGNW4ielFYQGsERhavqeEJAPjw-8Nmqasok0dbtIuwSJK3LuQ-Hw2ac3kkvAC1_qs6wrq2NJZAAPb0osrD4AtRbhadvAih5T5YQIJsg5i4MLmJFmB3Xqh8Fgt-2Bj5yE6k97dWW4z7yAkg9pOBQscRSrooVK5UUhD-pxNaN_pAIJEQSgKp83E_gClYQDAkopPK1GYD_EbAPZtismuEeQ1gyGMPV4-F-Hq25L1XekQrT9xgBtPuq7_YJFErgGGCwq1bdMQNj9WCGRYleIlYQLvmP8E8h9YpwLvTyhQc9U2tS9SNN8ygF4H2671VoL8nnlW57Id8aCdn_tUmjbCQfvCXw3ipHX5umiUEC-OZPU5YQDBDLEuMbQaL4pUjAKr5h3HO_llDwJEHfitVFA21wDkye5kEdAazzA9ar7KgD_p3BwjtBJBsJt4zK5n8A5up9lhYQEj3rJ3XuKwu9PuAsEKJyRk1K5uL7uiLgXZAbZuHVH4cLJSFM3QdwJFz_JiA0IvkrbHReUw5HjLEgFdX1RDE7tpYQGDY7GFYBxlA4ZHTBEQSuGphQ8sCoAU0EufbkdUZDDe8-4BSu9c76qkzyJ4cPygBMgyXVpL4rAoPlQN_zvbTukdYQIhO2jtOfbydRUWukWaAS_Gvc_dWwBRxzKhQ2ESUR2iN_bwIPWlYjQhr2Erhw-ELq1TeMoTMsDInS9zHa6FWD2ZYQC93YRsCDVTFoLdA6MZw1sLafxknnrvX9qJQrYQltDjMGqDCLGXF-LWgWrL2qa2q4mOgho-HiRa8vAhwYkfNSpVYQDL9Xk94G1IH82smnWRuSHcTeLnJjnr6c2SOMz9aP4x13WQOd06R4gEjfgnSJQsUUbL_wrqxmauaVz2jXXfRC_JYQNocs3VegQSfmTkvq1C8Z5dVixoG0KhNxJASSuaAztL5GC_kxxYtjcwwlY2q3MzEBrj2UPXdBJL2fyYi5WqJtZVYQLDjRcAQ0krynJpv-yP3cWqsMhM73dCu59gncXaOw5WJ5UgLnYc2YFa1cd-gTXWHGsW-IWnF6tsi90ZYCerPNXVYQJnoq7XnxXv2LgzJEVAkYUz219wZvMzDokZLa6dM0FaUhE73MOz804icZCqNFInVJfEyaiq1NZMmIucLEmM0vVRYQOJrji5BLxnKLgKT7J8Wry_Zk5jKrS0u1gAyvoT7ncae6-_mvBHqwEBTp3RCJCI57CqW3Q88FlZxWVAlXCnCzKxYQEZoZWUtK3Y7LYaI8M5ZV5VeenK1aRf5KinI0OWBMicpTDUxtsvjHY-3gMUc650S1fDfTQiSENCZwmV9FxjoxbdYQKroB5h1N-9QPPC41dpVws0ugwmtcBUkiM2Nnu34TH65Nd9inaM26RNEQkYopXt9VyuCQDjhkKxHA5W2M7nTYQlYQCL2PoH71g3kID39lWoK2zJRGujHo1FrHkdwulPtPdUgS5SDhjXQfmjVRnStBufeSv6vmWN7csQN6nRbt2YcO4xYQBxYT5jPmvyfYDaZ03w7cWcXDXu5Y4kNYDdyjrIOM_fcpMW-VKTWT6wD8_AJVbHCPO-BSM_pQ0Ov_JrDZssi9UJYQCWuFoWeJslXYK9gYE9m0aF9R9MO--92j4Nrxf4lf4PXP357Jt3LiDd0kKa6LoCHHYd1x1DVoAwQn323oECyrIJYQMm00znThXQHQ1H4cPNXO9JLwmYTrm-vygxgXaAhwU4Jzn2GD-0vcLhINVRYc0d8inTS9skpooOLcvxEwrBqa9NYQPBT4mzzUThagwfa6YImH8JQ501YL_yPXw9ztrfKcbTf6JlseTzW0eTyxcNTrpQv5yUlUTu0OOy9FM2TVKB-_KZYQHrO2SxRwP4t2L_S-hkBBi9F5MxWJNL-udV_e92PhPr176bVyT3MJ-DDKg242iRed_dr3QOpcPHxJMzgqfGhpupYQJE_UDT_FvTy0fz8nuQlvEVr0ToTl7lmiMZMi5WWQgxS0Hl9OHi1agMgGIg3H2qt5Qk_j0YcmbSDyPM52uiufyFYQBgcljiVyU03hcQk-ZjvwuvvtFU9WBqWIsyQv1mot-nIql5N0-0kWmSYRAmGCpICh0wodYp3xewB-0W8qRLVtplYQM9kWzMGkAcFtqyNN64H2GCaKEK9aGZ0RTjYh5HcQZ8FghNcHrJ24lBus3TfQNTHnTYe6o8NfnRaaBFw65g6UjJYQPF_qKw0cjByCfTwO4sqgFtZih3KMwcRYH--L9SVaQaYI3UtmH2IvARu8vaw7S4rRg9KlO2EcNATmLD63ipOghdYQEhgvX1uH4X6uACyOIKWNG6QjQQRVlnxdhi8a1iTBqkpZkqwlP1bWHQUHn7lqJ3whWFJmX5cBxgfwGglIBw5znFYQF1pocG5tSvP_EnYB_uZcK0nkN3-p4T0-PA_c5KO8aq__jgsGmAG0aFl3A_ITN7JQ3UXHhuVDX1ubQdHT2v8wRNYQKqG-6HeI66LRORGVywhlpoOPCrYfUYeBCgtApKHgwn6DWz_VpdKv_01gEuu_FWi_tD8KOdSJbBbvBjpDZA_wOhYQBtBYPPaGwEHANhFjhMMBFgHTuxT1a1f56Ij1IqK8EKeUvZsEN8NX3VVsB2_2w0AC1bw4bABzDoE3Ok4FCn5B_tYQLmyeMXuQCJVXbi91StAwvI-Gp5yLDTOACuxd0Bqj4_N8DtxaFvakp3KoSxySdY2O5fixsfhUf_EX_vBXPdZ3S9YQJNPn48f1iUCkuGI9UInd9g6aYoQ1sDmGMpU_D7irjKe1CWPx_6aRLqeT-SqO3X5DzNm689trKLSRfDgX5ucM_JYQEnc98-_RPkcGVdcfIUEOs-WnbDPgf9zacuIaDH_Nx14RhJt0XTZ4x0YQBOd7a6yKo-P_lLizKva4V-uC4p0q6yFZy9pc3N1ZXJqL3ZhbGlkRnJvbW0vcmVuZGVyTWV0aG9kZy9xckNvZGVlL3R5cGU" + } +} diff --git a/src/__tests__/__mocks__/swiper.tsx b/src/__tests__/__mocks__/swiper.tsx new file mode 100644 index 0000000..8db839a --- /dev/null +++ b/src/__tests__/__mocks__/swiper.tsx @@ -0,0 +1,51 @@ +import React, { ReactNode } from 'react' + +export type MockSwiperApi = { + slideNext: () => void + slidePrev: () => void +} + +export function MockSwiper({ + children, + onSwiper, +}: { + children: ReactNode + onSwiper?: (_swiper: MockSwiperApi) => void +}) { + const [slideNumber, setSlideNumber] = React.useState(0) + + const slides = React.Children.toArray(children) + const totalSlides = slides.length + + const swiper = React.useMemo( + () => ({ + slideNext: () => + setSlideNumber(i => (totalSlides === 0 ? 0 : (i + 1) % totalSlides)), + slidePrev: () => + setSlideNumber(i => + totalSlides === 0 ? 0 : (i - 1 + totalSlides) % totalSlides + ), + }), + [totalSlides] + ) + + // Call onSwiper once when the Swiper object is ready + React.useEffect(() => { + onSwiper?.(swiper) + }, [onSwiper, swiper]) + + return
{slides[slideNumber]}
+} + +export function MockSwiperSlide({ + children, + ...rest +}: { + children: ReactNode +}) { + return ( +
+ {children} +
+ ) +} diff --git a/src/__tests__/home.test.tsx b/src/__tests__/home.test.tsx new file mode 100644 index 0000000..64751d1 --- /dev/null +++ b/src/__tests__/home.test.tsx @@ -0,0 +1,56 @@ +import { describe, expect, it, vi } from 'vitest' +import { render, screen, within } from '@testing-library/react' +import { MemoryRouter } from 'react-router-dom' + +import Home from '../pages/Home' +import carouselData from '../data/carousel.json' + +vi.mock('swiper/react', async () => { + const { MockSwiper, MockSwiperSlide } = await import('./__mocks__/swiper') + + return { + Swiper: MockSwiper, + SwiperSlide: MockSwiperSlide, + } +}) + +vi.mock('swiper/modules', () => ({ + Navigation: {}, + Pagination: {}, + Autoplay: {}, +})) + +const renderHome = (isDarkMode: boolean) => + render( + + + + ) + +describe('Home page', () => { + it('renders hero and verify sections', () => { + renderHome(false) + + expect(screen.getByText(/Simple,/i)).toBeInTheDocument() + expect(screen.getByText(/Trustworthy/i)).toBeInTheDocument() + expect( + screen.getByText(/Drop TrustVC files here to verify/i) + ).toBeInTheDocument() + }) + + it('wires the carousel data through the router', () => { + renderHome(false) + + const firstItem = carouselData.items[0] + const firstSlide = screen.getByLabelText('carousel-slide-0') + + expect( + within(firstSlide).getByText(firstItem.content.subtitle) + ).toBeInTheDocument() + }) + + it('renders the Built for Developers section title', () => { + renderHome(false) + expect(screen.getByText(/Built for Developers,/i)).toBeInTheDocument() + }) +}) diff --git a/src/__tests__/useVerify.integration.test.ts b/src/__tests__/useVerify.integration.test.ts new file mode 100644 index 0000000..546c427 --- /dev/null +++ b/src/__tests__/useVerify.integration.test.ts @@ -0,0 +1,226 @@ +// @vitest-environment node +import { describe, it, expect } from 'vitest' +import { + verifyDocument, + getChainId, + isTransferableRecord, + isDocumentRevokable, + isValid, + VerificationFragment, +} from '@trustvc/trustvc' + +// ─── Fixtures ───────────────────────────────────────────────────────────────── + +// OA v2 +import oaDnsDidV2 from './__fixtures__/oa/2.0/signed_wrapped_oa_dns_did_v2.json' +import oaDnsTxtDocstoreV2 from './__fixtures__/oa/2.0/signed_wrapped_oa_dns_txt_docstore_v2.json' +import oaDnsTxtTokenRegistryV2 from './__fixtures__/oa/2.0/signed_wrapped_oa_dns_txt_token_registry_v2.json' +import oaNoNetworkEthereumV2 from './__fixtures__/oa/2.0/oa_dns_txt_docstore_no_network_field_ethereum_v2.json' + +// OA v3 +import oaDnsDidV3 from './__fixtures__/oa/3.0/signed_wrapped_oa_dns_did_v3.json' +import oaDnsTxtDocstoreV3 from './__fixtures__/oa/3.0/signed_wrapped_oa_dns_txt_docstore_v3.json' +import oaDnsTxtTokenRegistryV3 from './__fixtures__/oa/3.0/signed_wrapped_oa_dns_txt_token_registry_v3.json' +import oaNoNetworkStabilityV3 from './__fixtures__/oa/3.0/oa_dns_txt_token_registry_no_network_field_stability_v3.json' + +// W3C +import w3cBbs2020VerifiableDoc from './__fixtures__/w3c/bbs2020_w3c_verifiable_document_v1_1.json' +import w3cBbs2020TransferableRecord from './__fixtures__/w3c/bbs2020_w3c_transferable_record_v1_1.json' +import w3cBbs2023VerifiableDoc from './__fixtures__/w3c/bbs2023_w3c_verifiable_document_v2_0.json' +import w3cBbs2023TransferableDoc from './__fixtures__/w3c/bbs2023_w3c_transferable_document_v2_0.json' +import w3cEcdsaVerifiableDoc from './__fixtures__/w3c/ecdsa_w3c_verifiable_document_v2_0.json' +import w3cEcdsaTransferableDoc from './__fixtures__/w3c/ecdsa_w3c_transferable_document_v2_0.json' +import w3cExpiredDoc from './__fixtures__/w3c/expired_bbs2020_w3c_verifiable_document_v1_1.json' +import w3cRevokedDoc from './__fixtures__/w3c/revoked_ecdsa_w3c_verifiable_document_v2_0.json' + +// ─── Helpers ────────────────────────────────────────────────────────────────── + +interface VerifyOptions { + rpcProviderUrl?: string + network?: string +} + +const verify = async (doc: unknown, options: VerifyOptions = {}) => { + const results = (await verifyDocument( + doc as any, + options + )) as VerificationFragment[] + + return { + results, + isValid: isValid(results), + } +} + +const needsNetworkSelect = (doc: unknown): boolean => { + const chainId = getChainId(doc as any) + return ( + !chainId && + (isTransferableRecord(doc as any) || isDocumentRevokable(doc as any)) + ) +} + +const getRpcUrl = (chainId: string): string | undefined => { + return process.env[`VITE_RPC_URL_${chainId}`] +} + +// ─── Tests ──────────────────────────────────────────────────────────────────── + +describe('verifyDocument β€” integration with real fixtures', () => { + // ── Network-select detection ─────────────────────────────────────────────── + + describe('documents with no network field β†’ need network selection', () => { + it('OA v2 docstore (no network field) β†’ detects need for network selection', () => { + expect(needsNetworkSelect(oaNoNetworkEthereumV2)).toBe(true) + }) + + it('OA v3 token registry (no network field) β†’ detects need for network selection', () => { + expect(needsNetworkSelect(oaNoNetworkStabilityV3)).toBe(true) + }) + }) + + // ── DID-based (no RPC needed) ────────────────────────────────────────────── + + describe('DNS-DID documents β†’ valid', () => { + it('OA v2 DNS-DID', async () => { + const { isValid } = await verify(oaDnsDidV2) + expect(isValid).toBe(true) + }) + + it('OA v3 DNS-DID', async () => { + const { isValid } = await verify(oaDnsDidV3) + expect(isValid).toBe(true) + }) + }) + + // ── W3C verifiable documents ─────────────────────────────────────────────── + + describe('W3C verifiable documents β†’ valid', () => { + it('BBS2020 verifiable document', async () => { + const { isValid } = await verify(w3cBbs2020VerifiableDoc) + expect(isValid).toBe(true) + }) + + it('BBS2020 expired verifiable document', async () => { + const { isValid } = await verify(w3cExpiredDoc) + expect(isValid).toBe(true) + }) + + it('BBS2023 verifiable document', async () => { + const { isValid } = await verify(w3cBbs2023VerifiableDoc) + expect(isValid).toBe(true) + }) + + it('ECDSA verifiable document', async () => { + const { isValid } = await verify(w3cEcdsaVerifiableDoc) + expect(isValid).toBe(true) + }) + }) + + describe.skipIf(!getRpcUrl('101010'))( + 'W3C transferable documents β†’ valid', + () => { + const rpcUrl = getRpcUrl('101010') // Stability + + it('BBS2020 transferable record', async () => { + const { isValid } = await verify(w3cBbs2020TransferableRecord, { + rpcProviderUrl: rpcUrl, + }) + expect(isValid).toBe(true) + }) + + it('BBS2023 transferable document', async () => { + const { isValid } = await verify(w3cBbs2023TransferableDoc, { + rpcProviderUrl: rpcUrl, + }) + expect(isValid).toBe(true) + }) + + it('ECDSA transferable document', async () => { + const { isValid } = await verify(w3cEcdsaTransferableDoc, { + rpcProviderUrl: rpcUrl, + }) + expect(isValid).toBe(true) + }) + } + ) + + // ── W3C invalid documents ────────────────────────────────────────────────── + + describe.skipIf(!getRpcUrl('101010'))( + 'W3C documents expected to be invalid', + () => { + it('revoked ECDSA W3C document β†’ invalid', async () => { + const rpcUrl = getRpcUrl('101010') // Stability + + const { isValid } = await verify(w3cRevokedDoc, { + rpcProviderUrl: rpcUrl, + }) + expect(isValid).toBe(false) + }) + } + ) + + // ── OA blockchain documents ──────────────────────────── + + describe.skipIf(!getRpcUrl('101010'))( + 'OA blockchain documents β†’ valid', + () => { + const stabilityRpcUrl = getRpcUrl('101010') // Stability + + it('OA v2 DNS-TXT docstore', async () => { + const { isValid } = await verify(oaDnsTxtDocstoreV2, { + rpcProviderUrl: stabilityRpcUrl, + }) + expect(isValid).toBe(true) + }) + + it('OA v2 DNS-TXT token registry', async () => { + const { isValid } = await verify(oaDnsTxtTokenRegistryV2, { + rpcProviderUrl: stabilityRpcUrl, + }) + expect(isValid).toBe(true) + }) + + it('OA v3 DNS-TXT docstore', async () => { + const { isValid } = await verify(oaDnsTxtDocstoreV3, { + rpcProviderUrl: stabilityRpcUrl, + }) + expect(isValid).toBe(true) + }) + + it('OA v3 DNS-TXT token registry', async () => { + const { isValid } = await verify(oaDnsTxtTokenRegistryV3, { + rpcProviderUrl: stabilityRpcUrl, + }) + expect(isValid).toBe(true) + }) + } + ) + + // ── Documents without network field (need explicit RPC) ────────────────── + + describe('Documents without embedded network β†’ valid with explicit RPC', () => { + it.skipIf(!getRpcUrl('1'))( + 'OA v2 docstore (no network field) β†’ valid with Ethereum RPC', + async () => { + const ethereumRpcUrl = getRpcUrl('1') + const { isValid } = await verify(oaNoNetworkEthereumV2, { + rpcProviderUrl: ethereumRpcUrl, + }) + expect(isValid).toBe(true) + } + ) + + it.skipIf(!getRpcUrl('101010'))( + 'OA v3 token registry (no network field) β†’ valid with Stability RPC', + async () => { + const stabilityRpcUrl = getRpcUrl('101010') + const { isValid } = await verify(oaNoNetworkStabilityV3, { + rpcProviderUrl: stabilityRpcUrl, + }) + expect(isValid).toBe(true) + } + ) + }) +}) diff --git a/src/assets/icons/ChevronDownIcon.tsx b/src/assets/icons/ChevronDownIcon.tsx new file mode 100644 index 0000000..5a1fdbe --- /dev/null +++ b/src/assets/icons/ChevronDownIcon.tsx @@ -0,0 +1,29 @@ +import React from 'react' + +interface ChevronDownIconProps extends React.SVGProps { + className?: string + fillColor?: string +} + +const ChevronDownIcon: React.FC = ({ + className, + fillColor = '#5B6571', + ...props +}) => ( + + + +) + +export default ChevronDownIcon diff --git a/src/assets/icons/UploadIcon.tsx b/src/assets/icons/UploadIcon.tsx new file mode 100644 index 0000000..514b990 --- /dev/null +++ b/src/assets/icons/UploadIcon.tsx @@ -0,0 +1,24 @@ +import React from 'react' + +interface UploadIconProps extends React.SVGProps { + className?: string +} + +const UploadIcon: React.FC = ({ className, ...props }) => ( + + + +) + +export default UploadIcon diff --git a/src/components/common/AttachmentDropzone/AttachmentDropzone.tsx b/src/components/common/AttachmentDropzone/AttachmentDropzone.tsx new file mode 100644 index 0000000..f7aad12 --- /dev/null +++ b/src/components/common/AttachmentDropzone/AttachmentDropzone.tsx @@ -0,0 +1,93 @@ +import React from 'react' + +interface AttachmentDropzoneProps { + isDarkMode: boolean + dragActive: boolean + onDragEnter: React.DragEventHandler + onDragLeave: React.DragEventHandler + onDragOver: React.DragEventHandler + onDrop: React.DragEventHandler + onFileInput: React.ChangeEventHandler + fileInfoText: string +} + +const AttachmentDropzone = ({ + isDarkMode, + dragActive, + onDragEnter, + onDragLeave, + onDragOver, + onDrop, + onFileInput, + fileInfoText, +}: AttachmentDropzoneProps) => { + const fileInputRef = React.useRef(null) + + return ( +
+
+ Attachment +
+ +
+
+
+ Drop files here to upload screenshots +
+
+
+
or
+
+
+ + +
+
+ +
+
{fileInfoText}
+
+
+ ) +} + +export default AttachmentDropzone diff --git a/src/components/common/AttachmentDropzone/index.ts b/src/components/common/AttachmentDropzone/index.ts new file mode 100644 index 0000000..e723380 --- /dev/null +++ b/src/components/common/AttachmentDropzone/index.ts @@ -0,0 +1 @@ +export { default } from './AttachmentDropzone' diff --git a/src/components/common/AttachmentFileList/AttachmentFileList.tsx b/src/components/common/AttachmentFileList/AttachmentFileList.tsx new file mode 100644 index 0000000..6c60333 --- /dev/null +++ b/src/components/common/AttachmentFileList/AttachmentFileList.tsx @@ -0,0 +1,58 @@ +import React from 'react' +import { FileItem } from '@/components/common/FileItem' +import type { AttachmentItem } from '@/types/attachment' + +interface AttachmentFileListProps { + attachments: AttachmentItem[] + onRemove: (_id: string) => void + onClearAll: () => void + isDarkMode: boolean +} + +export function AttachmentFileList({ + attachments, + onRemove, + onClearAll, + isDarkMode, +}: AttachmentFileListProps) { + if (attachments.length === 0) return null + + return ( +
+
+ +
+
+ {attachments.map(item => ( + + ))} +
+
+ ) +} diff --git a/src/components/common/AttachmentFileList/index.ts b/src/components/common/AttachmentFileList/index.ts new file mode 100644 index 0000000..3937c2f --- /dev/null +++ b/src/components/common/AttachmentFileList/index.ts @@ -0,0 +1 @@ +export { AttachmentFileList } from './AttachmentFileList' diff --git a/src/components/common/FieldError/FieldError.tsx b/src/components/common/FieldError/FieldError.tsx new file mode 100644 index 0000000..73129d8 --- /dev/null +++ b/src/components/common/FieldError/FieldError.tsx @@ -0,0 +1,37 @@ +import clsx from 'clsx' +import React from 'react' + +interface FieldErrorProps { + message: string + id?: string + containerClassName?: string + textClassName?: string + iconClassName?: string +} + +export function FieldError({ + message, + id, + containerClassName, + textClassName, + iconClassName, +}: FieldErrorProps) { + return ( + + ) +} diff --git a/src/components/common/FieldError/index.ts b/src/components/common/FieldError/index.ts new file mode 100644 index 0000000..420ade2 --- /dev/null +++ b/src/components/common/FieldError/index.ts @@ -0,0 +1 @@ +export { FieldError } from './FieldError' diff --git a/src/components/common/FileItem/FileItem.tsx b/src/components/common/FileItem/FileItem.tsx new file mode 100644 index 0000000..7c4ba11 --- /dev/null +++ b/src/components/common/FileItem/FileItem.tsx @@ -0,0 +1,118 @@ +import React from 'react' +import { truncateFilename } from '@/types/attachment' +import type { AttachmentItem } from '@/types/attachment' + +interface FileItemProps { + item: AttachmentItem + onRemove: (_id: string) => void + isDarkMode: boolean +} + +export function FileItem({ item, onRemove, isDarkMode }: FileItemProps) { + const { id, filename, status, progress, error, previewUrl } = item + const displayName = truncateFilename(filename, 36) + const isUploading = status === 'uploading' + const isError = status === 'error' + + const getStatusLabel = () => { + if (isUploading) { + return `Uploading - ${progress}%` + } + if (status === 'uploaded') { + return 'Uploaded' + } + if (status === 'pending') { + return '' + } + return error || 'Error' + } + + return ( +
+
+ {isError ? ( + ! + ) : previewUrl ? ( + {filename} + ) : isUploading ? ( +
+ + + + +
+ ) : ( + + Preview + + )} +
+
+

+ {displayName} +

+

+ {getStatusLabel()} +

+
+ +
+ ) +} diff --git a/src/components/common/FileItem/index.ts b/src/components/common/FileItem/index.ts new file mode 100644 index 0000000..1ef09e0 --- /dev/null +++ b/src/components/common/FileItem/index.ts @@ -0,0 +1 @@ +export { FileItem } from './FileItem' diff --git a/src/components/common/FormAlert/FormAlert.test.tsx b/src/components/common/FormAlert/FormAlert.test.tsx new file mode 100644 index 0000000..f3df005 --- /dev/null +++ b/src/components/common/FormAlert/FormAlert.test.tsx @@ -0,0 +1,35 @@ +import { describe, it, expect } from 'vitest' +import { render, screen } from '@testing-library/react' +import FormAlert from './FormAlert' + +describe('FormAlert', () => { + it('renders nothing when no error or success is provided', () => { + const { container } = render() + expect(container.firstChild).toBeNull() + }) + + it('renders nothing when error and success are null', () => { + const { container } = render( + + ) + expect(container.firstChild).toBeNull() + }) + + it('renders error message', () => { + render() + expect(screen.getByText('Something went wrong')).toBeInTheDocument() + }) + + it('renders success message', () => { + render() + expect(screen.getByText('Request submitted')).toBeInTheDocument() + }) + + it('prioritises error over success when both are provided', () => { + render( + + ) + expect(screen.getByText('Error msg')).toBeInTheDocument() + expect(screen.queryByText('Success msg')).not.toBeInTheDocument() + }) +}) diff --git a/src/components/common/FormAlert/FormAlert.tsx b/src/components/common/FormAlert/FormAlert.tsx new file mode 100644 index 0000000..229e59b --- /dev/null +++ b/src/components/common/FormAlert/FormAlert.tsx @@ -0,0 +1,37 @@ +interface FormAlertProps { + isDarkMode: boolean + error?: string | null + success?: string | null +} + +const FormAlert = ({ isDarkMode, error, success }: FormAlertProps) => { + const message = error || success + if (!message) return null + + return ( +
+ {error && ( + + )} + {message} +
+ ) +} + +export default FormAlert diff --git a/src/components/common/FormAlert/index.ts b/src/components/common/FormAlert/index.ts new file mode 100644 index 0000000..db211e9 --- /dev/null +++ b/src/components/common/FormAlert/index.ts @@ -0,0 +1 @@ +export { default } from './FormAlert' diff --git a/src/components/common/Icons/Icons.test.tsx b/src/components/common/Icons/Icons.test.tsx new file mode 100644 index 0000000..589a279 --- /dev/null +++ b/src/components/common/Icons/Icons.test.tsx @@ -0,0 +1,135 @@ +import { describe, it, expect } from 'vitest' +import { render } from '@testing-library/react' +import { + CheckCircle, + CrossCircle, + QRCodeIcon, + PrinterIcon, + DownloadIcon, + FileIcon, +} from './Icons' + +describe('CheckCircle', () => { + it('renders an SVG element', () => { + const { container } = render() + const svg = container.querySelector('svg') + expect(svg).toBeTruthy() + expect(svg?.getAttribute('width')).toBe('20') + expect(svg?.getAttribute('height')).toBe('20') + }) + + it('uses green stroke color', () => { + const { container } = render() + const path = container.querySelector('path') + expect(path?.getAttribute('stroke')).toBe('#3AAF86') + }) +}) + +describe('CrossCircle', () => { + it('renders an SVG element', () => { + const { container } = render() + const svg = container.querySelector('svg') + expect(svg).toBeTruthy() + expect(svg?.getAttribute('width')).toBe('20') + }) + + it('uses red stroke color', () => { + const { container } = render() + const circle = container.querySelector('circle') + expect(circle?.getAttribute('stroke')).toBe('#ef4444') + }) +}) + +describe('QRCodeIcon', () => { + it('renders a 24x24 SVG', () => { + const { container } = render() + const svg = container.querySelector('svg') + expect(svg?.getAttribute('width')).toBe('24') + expect(svg?.getAttribute('height')).toBe('24') + }) +}) + +describe('PrinterIcon', () => { + it('renders a 24x24 SVG', () => { + const { container } = render() + const svg = container.querySelector('svg') + expect(svg?.getAttribute('width')).toBe('24') + expect(svg?.getAttribute('height')).toBe('24') + }) +}) + +describe('DownloadIcon', () => { + it('renders a 24x24 SVG', () => { + const { container } = render() + const svg = container.querySelector('svg') + expect(svg?.getAttribute('width')).toBe('24') + expect(svg?.getAttribute('height')).toBe('24') + }) +}) + +describe('FileIcon', () => { + it('renders an SVG element', () => { + const { container } = render( + + ) + const svg = container.querySelector('svg') + expect(svg).toBeTruthy() + expect(svg?.getAttribute('width')).toBe('40') + expect(svg?.getAttribute('height')).toBe('48') + }) + + it('shows PDF extension badge for PDF files', () => { + const { container } = render( + + ) + const text = container.querySelector('text') + expect(text?.textContent).toBe('PDF') + }) + + it('shows JSON extension badge for JSON files', () => { + const { container } = render( + + ) + const text = container.querySelector('text') + expect(text?.textContent).toBe('JSON') + }) + + it('uses red color for PDF badge', () => { + const { container } = render( + + ) + const rect = container.querySelectorAll('rect') + // The extension badge rect + const badge = Array.from(rect).find( + r => r.getAttribute('fill') === '#DC2626' + ) + expect(badge).toBeTruthy() + }) + + it('uses blue color for PNG badge', () => { + const { container } = render( + + ) + const rect = container.querySelectorAll('rect') + const badge = Array.from(rect).find( + r => r.getAttribute('fill') === '#2563EB' + ) + expect(badge).toBeTruthy() + }) + + it('falls back to FILE for unknown types', () => { + const { container } = render( + + ) + const text = container.querySelector('text') + expect(text?.textContent).toBe('FILE') + }) + + it('prefers filename extension over mime type', () => { + const { container } = render( + + ) + const text = container.querySelector('text') + expect(text?.textContent).toBe('CSV') + }) +}) diff --git a/src/components/common/Icons/Icons.tsx b/src/components/common/Icons/Icons.tsx new file mode 100644 index 0000000..467b6b0 --- /dev/null +++ b/src/components/common/Icons/Icons.tsx @@ -0,0 +1,164 @@ +import { getFileExtension } from '../../../utils/helper' + +export const CheckCircle = () => ( + +) + +export const CrossCircle = () => ( + +) + +export const QRCodeIcon = () => ( + +) + +export const PrinterIcon = () => ( + +) + +export const DownloadIcon = () => ( + +) + +const FILE_TYPE_COLORS: Record = { + PDF: '#DC2626', + PNG: '#2563EB', + JPG: '#2563EB', + JPEG: '#2563EB', + JSON: '#D97706', + CSV: '#059669', + XML: '#7C3AED', + TXT: '#4B5563', +} + +export const FileIcon = ({ + filename, + type, +}: { + filename: string + type: string +}) => { + const ext = getFileExtension(filename, type?.toLowerCase() || '') + const color = FILE_TYPE_COLORS[ext] || '#5B5BB3' + + return ( + + ) +} diff --git a/src/components/common/Icons/index.ts b/src/components/common/Icons/index.ts new file mode 100644 index 0000000..b29c6a8 --- /dev/null +++ b/src/components/common/Icons/index.ts @@ -0,0 +1,8 @@ +export { + CheckCircle, + CrossCircle, + QRCodeIcon, + PrinterIcon, + DownloadIcon, + FileIcon, +} from './Icons' diff --git a/src/components/common/LinkButton/LinkButton.test.tsx b/src/components/common/LinkButton/LinkButton.test.tsx new file mode 100644 index 0000000..d846e8c --- /dev/null +++ b/src/components/common/LinkButton/LinkButton.test.tsx @@ -0,0 +1,63 @@ +import { describe, expect, it } from 'vitest' +import { render, screen } from '@testing-library/react' +import LinkButton from './LinkButton' + +describe('LinkButton', () => { + it('renders children correctly', () => { + render( + + Click me + + ) + expect(screen.getByText('Click me')).toBeInTheDocument() + }) + + it('renders as disabled when no href provided', () => { + render(Disabled) + const button = screen.getByText('Disabled').closest('a') + expect(button).toHaveClass('opacity-50') + expect(button).toHaveClass('cursor-not-allowed') + }) + + it('renders as disabled when isDisabled is true', () => { + render( + + Disabled + + ) + const button = screen.getByText('Disabled').closest('a') + expect(button).toHaveClass('opacity-50') + }) + + it('applies dark mode styles', () => { + render( + + Dark Mode + + ) + const button = screen.getByText('Dark Mode').closest('a') + expect(button).toHaveClass('text-black') + expect(button).toHaveClass('bg-primary-60') + }) + + it('applies light mode styles', () => { + render( + + Light Mode + + ) + const button = screen.getByText('Light Mode').closest('a') + expect(button).toHaveClass('text-white') + expect(button).toHaveClass('bg-primary-60') + }) + + it('applies custom className', () => { + render( + + Custom + + ) + const button = screen.getByText('Custom').closest('a') + expect(button).toHaveClass('custom-class') + }) +}) diff --git a/src/components/common/LinkButton/LinkButton.tsx b/src/components/common/LinkButton/LinkButton.tsx new file mode 100644 index 0000000..0852a0a --- /dev/null +++ b/src/components/common/LinkButton/LinkButton.tsx @@ -0,0 +1,46 @@ +import clsx from 'clsx' +import { ReactNode } from 'react' + +interface LinkButtonProps { + className?: string + href?: string + children: ReactNode + isDarkMode: boolean + isDisabled?: boolean +} + +const LinkButton = ({ + className = '', + href, + children, + isDarkMode, + isDisabled, +}: LinkButtonProps) => { + const disabled = isDisabled || !href + + return ( + { + if (disabled) { + event.preventDefault() + } + }} + className={clsx( + 'bg-primary-60', + isDarkMode ? 'bg-primary-60 text-black' : 'text-white', + 'inline-flex w-fit px-4 py-2 rounded-lg font-bold', + disabled ? 'cursor-not-allowed opacity-50 pointer-events-none' : '', + className + )} + > + {children} + + ) +} + +export default LinkButton diff --git a/src/components/common/LinkButton/index.ts b/src/components/common/LinkButton/index.ts new file mode 100644 index 0000000..a6cb95b --- /dev/null +++ b/src/components/common/LinkButton/index.ts @@ -0,0 +1 @@ +export { default } from './LinkButton' diff --git a/src/components/common/Logo/Logo.test.tsx b/src/components/common/Logo/Logo.test.tsx new file mode 100644 index 0000000..c323b85 --- /dev/null +++ b/src/components/common/Logo/Logo.test.tsx @@ -0,0 +1,52 @@ +import { describe, it, expect } from 'vitest' +import { render } from '@testing-library/react' +import Logo from './Logo' + +describe('Logo Component', () => { + it('renders logo with icon and text', () => { + const { container } = render() + + // Check if logo wrapper exists + const logoWrapper = container.querySelector('.logo-wrapper') + expect(logoWrapper).toBeInTheDocument() + + // Check if both SVGs are rendered + const svgs = container.querySelectorAll('svg') + expect(svgs).toHaveLength(2) + }) + + it('renders with light mode colors', () => { + const { container } = render() + + const logoText = container.querySelector('.logo-light') + expect(logoText).toBeInTheDocument() + expect(logoText).not.toHaveClass('logo-dark') + }) + + it('renders with dark mode colors', () => { + const { container } = render() + + const logoText = container.querySelector('.logo-dark') + expect(logoText).toBeInTheDocument() + expect(logoText).not.toHaveClass('logo-light') + }) + + it('has a link to homepage', () => { + const { container } = render() + + const link = container.querySelector('a[href="/"]') + expect(link).toBeInTheDocument() + }) + + it('generates unique gradient IDs', () => { + const { container: container1 } = render() + const { container: container2 } = render() + + const gradient1 = container1.querySelector('linearGradient') + const gradient2 = container2.querySelector('linearGradient') + + expect(gradient1?.id).toBeDefined() + expect(gradient2?.id).toBeDefined() + expect(gradient1?.id).not.toBe(gradient2?.id) + }) +}) diff --git a/src/components/common/Logo/Logo.tsx b/src/components/common/Logo/Logo.tsx new file mode 100644 index 0000000..101fda2 --- /dev/null +++ b/src/components/common/Logo/Logo.tsx @@ -0,0 +1,58 @@ +interface LogoProps { + isDarkMode: boolean +} + +const Logo = ({ isDarkMode }: LogoProps) => { + const gradientId = `logo-gradient-${Math.random().toString(36).substr(2, 9)}` + + return ( + + ) +} + +export default Logo diff --git a/src/components/common/Logo/index.ts b/src/components/common/Logo/index.ts new file mode 100644 index 0000000..93dce23 --- /dev/null +++ b/src/components/common/Logo/index.ts @@ -0,0 +1 @@ +export { default } from './Logo' diff --git a/src/components/common/Navbar/Navbar.test.tsx b/src/components/common/Navbar/Navbar.test.tsx new file mode 100644 index 0000000..e3f0653 --- /dev/null +++ b/src/components/common/Navbar/Navbar.test.tsx @@ -0,0 +1,127 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest' +import { render, screen, fireEvent } from '@testing-library/react' +import Navbar from './Navbar' + +describe('Navbar Component', () => { + const mockSetIsDarkMode = vi.fn() + + beforeEach(() => { + mockSetIsDarkMode.mockClear() + }) + + it('renders navbar with logo', () => { + render() + + // Logo should be present + const logos = screen.getAllByRole('link', { name: '' }) + expect(logos.length).toBeGreaterThan(0) + }) + + it('renders navigation links', () => { + render() + + expect(screen.getByText('Home')).toBeInTheDocument() + expect(screen.getByText('Ecosystem')).toBeInTheDocument() + expect(screen.getByText('Gallery')).toBeInTheDocument() + expect(screen.getByText('News & Updates')).toBeInTheDocument() + }) + + it('renders Contact Us button', () => { + render() + + const contactButtons = screen.getAllByText('Contact Us') + expect(contactButtons.length).toBeGreaterThan(0) + }) + + it('toggles dark mode when sun icon is clicked', () => { + render() + + // Find sun icon button (first theme toggle button) + const themeButtons = screen.getAllByRole('button') + const sunButton = themeButtons.find(btn => + btn.querySelector('svg path[d*="M12 19.3755"]') + ) + + if (sunButton) { + fireEvent.click(sunButton) + expect(mockSetIsDarkMode).toHaveBeenCalledWith(false) + } + }) + + it('toggles dark mode when moon icon is clicked', () => { + render() + + // Find moon icon button + const themeButtons = screen.getAllByRole('button') + const moonButton = themeButtons.find(btn => + btn.querySelector('svg path[d*="M10.0762"]') + ) + + if (moonButton) { + fireEvent.click(moonButton) + expect(mockSetIsDarkMode).toHaveBeenCalledWith(true) + } + }) + + it('opens mobile menu when hamburger is clicked', () => { + render() + + // Find hamburger button + const hamburgerButton = screen + .getAllByRole('button') + .find(btn => btn.querySelector('svg path[d*="M20.1694 16.75"]')) + + expect(hamburgerButton).toBeInTheDocument() + + if (hamburgerButton) { + fireEvent.click(hamburgerButton) + + // Mobile menu should appear with navigation items + const homeLinks = screen.getAllByText('Home') + expect(homeLinks.length).toBeGreaterThan(1) // Desktop + Mobile + } + }) + + it('opens ecosystem dropdown on hover', () => { + render() + + const ecosystemButtons = screen.getAllByText('Ecosystem') + const desktopEcosystemButton = ecosystemButtons[0] + + // Hover over Ecosystem + fireEvent.mouseEnter(desktopEcosystemButton) + + // Dropdown items should appear + const placeholders = screen.getAllByText('Placeholder') + expect(placeholders.length).toBeGreaterThan(0) + }) + + it('applies correct CSS classes for light mode', () => { + const { container } = render( + + ) + + const nav = container.querySelector('nav') + expect(nav).toHaveClass('navbar-light') + expect(nav).not.toHaveClass('navbar-dark') + }) + + it('applies correct CSS classes for dark mode', () => { + const { container } = render( + + ) + + const nav = container.querySelector('nav') + expect(nav).toHaveClass('navbar-dark') + expect(nav).not.toHaveClass('navbar-light') + }) + + it('renders contact button with correct CSS class', () => { + const { container } = render( + + ) + + const contactButtons = container.querySelectorAll('.contact-button') + expect(contactButtons.length).toBeGreaterThan(0) + }) +}) diff --git a/src/components/common/Navbar/Navbar.tsx b/src/components/common/Navbar/Navbar.tsx new file mode 100644 index 0000000..13bffa8 --- /dev/null +++ b/src/components/common/Navbar/Navbar.tsx @@ -0,0 +1,636 @@ +import { useState, useRef, useEffect, Dispatch, SetStateAction } from 'react' +import Logo from '../Logo' + +interface NavbarProps { + isDarkMode: boolean + setIsDarkMode: Dispatch> +} + +const Navbar = ({ isDarkMode, setIsDarkMode }: NavbarProps) => { + const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false) + const [isEcosystemOpen, setIsEcosystemOpen] = useState(false) + const navRef = useRef(null) + + useEffect(() => { + const handleClickOutside = (e: MouseEvent) => { + if ( + isMobileMenuOpen && + navRef.current && + !navRef.current.contains(e.target as Node) + ) { + setIsMobileMenuOpen(false) + setIsEcosystemOpen(false) + } + } + document.addEventListener('mousedown', handleClickOutside) + return () => document.removeEventListener('mousedown', handleClickOutside) + }, [isMobileMenuOpen]) + + return ( + + ) +} + +export default Navbar diff --git a/src/components/common/Navbar/index.ts b/src/components/common/Navbar/index.ts new file mode 100644 index 0000000..e6400ae --- /dev/null +++ b/src/components/common/Navbar/index.ts @@ -0,0 +1 @@ +export { default } from './Navbar' diff --git a/src/components/common/Overlay/Overlay.test.tsx b/src/components/common/Overlay/Overlay.test.tsx new file mode 100644 index 0000000..969ebc2 --- /dev/null +++ b/src/components/common/Overlay/Overlay.test.tsx @@ -0,0 +1,74 @@ +import { describe, it, expect, vi } from 'vitest' +import { render, fireEvent } from '@testing-library/react' +import Overlay from './Overlay' + +describe('Overlay', () => { + it('renders children', () => { + const { getByText } = render( + + Hello + + ) + expect(getByText('Hello')).toBeTruthy() + }) + + it('applies custom className', () => { + const { container } = render( + + Content + + ) + const overlay = container.querySelector('.overlay') + expect(overlay?.classList.contains('custom-class')).toBe(true) + }) + + it('has role="dialog" and aria-modal="true"', () => { + const { container } = render( + + Content + + ) + const overlay = container.querySelector('.overlay') + expect(overlay?.getAttribute('role')).toBe('dialog') + expect(overlay?.getAttribute('aria-modal')).toBe('true') + }) + + it('calls onClose when clicking overlay background', () => { + const onClose = vi.fn() + const { container } = render( + + Content + + ) + const overlay = container.querySelector('.overlay') as HTMLElement + fireEvent.click(overlay) + expect(onClose).toHaveBeenCalledOnce() + }) + + it('does not call onClose when clicking children', () => { + const onClose = vi.fn() + const { getByText } = render( + + Content + + ) + fireEvent.click(getByText('Content')) + expect(onClose).not.toHaveBeenCalled() + }) + + it('locks body scroll on mount and restores on unmount', () => { + document.body.style.overflow = 'auto' + try { + const { unmount } = render( + + Content + + ) + expect(document.body.style.overflow).toBe('hidden') + unmount() + expect(document.body.style.overflow).toBe('auto') + } finally { + document.body.style.overflow = '' + } + }) +}) diff --git a/src/components/common/Overlay/Overlay.tsx b/src/components/common/Overlay/Overlay.tsx new file mode 100644 index 0000000..b42b235 --- /dev/null +++ b/src/components/common/Overlay/Overlay.tsx @@ -0,0 +1,39 @@ +import React, { useEffect } from 'react' + +interface OverlayProps { + children: React.ReactNode + className?: string + onClose?: () => void +} + +const Overlay: React.FC = ({ children, className, onClose }) => { + const handleOverlayClick = (e: React.MouseEvent) => { + // Only trigger onClose if clicking the overlay itself, not its children + if (e.target === e.currentTarget && onClose) { + onClose() + } + } + + // Lock body scroll when overlay is mounted + useEffect(() => { + const originalOverflow = document.body.style.overflow + document.body.style.overflow = 'hidden' + + return () => { + document.body.style.overflow = originalOverflow + } + }, []) + + return ( +
+
{children}
+
+ ) +} + +export default Overlay diff --git a/src/components/common/Overlay/index.tsx b/src/components/common/Overlay/index.tsx new file mode 100644 index 0000000..3638ac7 --- /dev/null +++ b/src/components/common/Overlay/index.tsx @@ -0,0 +1 @@ +export { default } from './Overlay' diff --git a/src/components/common/PrimaryButton/PrimaryButton.test.tsx b/src/components/common/PrimaryButton/PrimaryButton.test.tsx new file mode 100644 index 0000000..f5dc433 --- /dev/null +++ b/src/components/common/PrimaryButton/PrimaryButton.test.tsx @@ -0,0 +1,79 @@ +import { describe, it, expect, vi } from 'vitest' +import { render, fireEvent } from '@testing-library/react' +import PrimaryButton from './PrimaryButton' + +describe('PrimaryButton', () => { + it('renders children text', () => { + const { getByText } = render(Click Me) + expect(getByText('Click Me')).toBeTruthy() + }) + + it('renders as a button by default', () => { + const { container } = render(Test) + const button = container.querySelector('button') + expect(button).toBeTruthy() + expect(button?.type).toBe('button') + }) + + it('renders as a label when as="label"', () => { + const { container } = render( + + Browse + + ) + const label = container.querySelector('label') + expect(label).toBeTruthy() + expect(label?.getAttribute('for')).toBe('file-input') + expect(container.querySelector('button')).toBeNull() + }) + + it('calls onClick when clicked', () => { + const onClick = vi.fn() + const { getByText } = render( + Click + ) + fireEvent.click(getByText('Click')) + expect(onClick).toHaveBeenCalledOnce() + }) + + it('applies custom className', () => { + const { container } = render( + Test + ) + const button = container.querySelector('button') + expect(button?.classList.contains('standard-button-primary')).toBe(true) + expect(button?.classList.contains('my-class')).toBe(true) + }) + + it('renders icon when provided', () => { + const { container } = render( + *}> + With Icon + + ) + const iconFrame = container.querySelector('.contextual-icon-frame') + expect(iconFrame).toBeTruthy() + }) + + it('does not render icon frame when no icon', () => { + const { container } = render(No Icon) + const iconFrame = container.querySelector('.contextual-icon-frame') + expect(iconFrame).toBeNull() + }) + + it('supports disabled state', () => { + const { container } = render( + Disabled + ) + const button = container.querySelector('button') + expect(button?.disabled).toBe(true) + }) + + it('supports submit type', () => { + const { container } = render( + Submit + ) + const button = container.querySelector('button') + expect(button?.type).toBe('submit') + }) +}) diff --git a/src/components/common/PrimaryButton/PrimaryButton.tsx b/src/components/common/PrimaryButton/PrimaryButton.tsx new file mode 100644 index 0000000..e43abb3 --- /dev/null +++ b/src/components/common/PrimaryButton/PrimaryButton.tsx @@ -0,0 +1,63 @@ +import clsx from 'clsx' +import { ReactNode } from 'react' + +interface PrimaryButtonProps { + className?: string + onClick?: () => void + children: ReactNode + type?: 'button' | 'submit' | 'reset' + disabled?: boolean + icon?: ReactNode + htmlFor?: string + as?: 'button' | 'label' +} + +const PrimaryButton = ({ + className = '', + onClick, + children, + type = 'button', + disabled = false, + icon, + htmlFor, + as = 'button', +}: PrimaryButtonProps) => { + const content = ( +
+
+ {icon &&
{icon}
} +
+
{children}
+
+
+
+ ) + + if (as === 'label') { + return ( +
+