From a15bbeac11f5879c5c3c14ab6441dc48cbc32549 Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 11:26:29 -0700 Subject: [PATCH 01/60] ci(mobile): cache deps + parallelize OTA + decouple lint to speed up OTA ~3x (#14326) --- .github/workflows/mobile.yml | 211 ++++++++++++++++++++++++++++------- 1 file changed, 170 insertions(+), 41 deletions(-) diff --git a/.github/workflows/mobile.yml b/.github/workflows/mobile.yml index df1369dc3e0..64a3e6ccf0f 100644 --- a/.github/workflows/mobile.yml +++ b/.github/workflows/mobile.yml @@ -28,10 +28,74 @@ env: NODE_VERSION: '22.21.1' jobs: - # Initialize: Install dependencies, lint & typecheck - mobile-init: - name: Mobile Init (Install, Lint & Typecheck) + # Install dependencies and warm the node_modules cache shared by every downstream job. + # Kept separate from lint/typecheck so OTA + build jobs don't wait on verify (~3.5 min). + mobile-install: + name: Mobile Install runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: 'npm' + cache-dependency-path: package-lock.json + + - name: Create concatenated patch file + id: patch-file + run: | + ls -d -- packages/*/patches/*.patch 2>/dev/null | xargs cat > combined-patch-file.txt || touch combined-patch-file.txt + echo "patch_checksum=$(sha256sum combined-patch-file.txt | cut -d' ' -f1)" >> $GITHUB_OUTPUT + + - name: Cache node modules + id: cache-node-modules + uses: actions/cache@v4 + with: + path: | + node_modules + packages/mobile/node_modules + packages/common/node_modules + packages/libs/node_modules + packages/libs/dist + packages/sdk/node_modules + packages/sdk/dist + packages/harmony/node_modules + packages/dotenv-linter/bin + key: npm-cache-mobile-${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}-${{ steps.patch-file.outputs.patch_checksum }} + restore-keys: | + npm-cache-mobile-${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}- + npm-cache-mobile-${{ runner.os }}-${{ hashFiles('package-lock.json') }}- + + - name: Install dependencies + env: + CI: true + NODE_OPTIONS: --max-old-space-size=8192 + run: | + if [[ -d node_modules ]]; then + echo "Using cached node_modules, running postinstall..." + npm run postinstall + # Ensure dotenv-linter binary is installed (install script downloads it) + if [[ ! -f packages/dotenv-linter/bin/dotenv-linter ]]; then + echo "dotenv-linter binary missing, running install script..." + (cd packages/dotenv-linter && npm run install) + fi + else + echo "No cache found, running fresh install..." + # Clear npm cache to avoid EEXIST conflicts + npm cache clean --force || true + # Try npm ci first, fallback to npm install if lock file is out of sync + npm ci --prefer-offline || npm install --prefer-offline + fi + + # Verify: lint & typecheck. Runs in parallel with OTA/build jobs — failure still fails the workflow, + # but does not block the OTA publish on the critical path. + mobile-verify: + name: Mobile Verify (Lint & Typecheck) + runs-on: ubuntu-latest + needs: mobile-install steps: - name: Checkout code uses: actions/checkout@v4 @@ -81,16 +145,13 @@ jobs: if [[ -d node_modules ]]; then echo "Using cached node_modules, running postinstall..." npm run postinstall - # Ensure dotenv-linter binary is installed (install script downloads it) if [[ ! -f packages/dotenv-linter/bin/dotenv-linter ]]; then echo "dotenv-linter binary missing, running install script..." (cd packages/dotenv-linter && npm run install) fi else echo "No cache found, running fresh install..." - # Clear npm cache to avoid EEXIST conflicts npm cache clean --force || true - # Try npm ci first, fallback to npm install if lock file is out of sync npm ci --prefer-offline || npm install --prefer-offline fi @@ -100,7 +161,7 @@ jobs: mobile-version-check: name: Mobile Version Change Check runs-on: ubuntu-latest - needs: mobile-init + needs: mobile-install if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' outputs: current_version: ${{ steps.version-check.outputs.current_version }} @@ -129,12 +190,17 @@ jobs: echo "version_unchanged=false" >> "$GITHUB_OUTPUT" fi - # OTA Release: publish JS bundle updates when native app version is unchanged + # OTA Release: publish JS bundle updates when native app version is unchanged. + # Matrixed over platforms so iOS and Android publish in parallel. mobile-ota-release: - name: Mobile OTA Release (CodePush) + name: Mobile OTA Release (CodePush, ${{ matrix.platform }}) runs-on: ubuntu-latest - needs: [mobile-init, mobile-version-check] + needs: [mobile-install, mobile-version-check] if: (github.event_name == 'push' && github.ref == 'refs/heads/main' && needs.mobile-version-check.outputs.version_unchanged == 'true') || (github.event_name == 'workflow_dispatch' && (github.event.inputs.ota_channel == 'rc' || github.event.inputs.ota_channel == '')) + strategy: + fail-fast: false + matrix: + platform: [ios, android] steps: - name: Checkout code uses: actions/checkout@v4 @@ -148,11 +214,48 @@ jobs: cache: 'npm' cache-dependency-path: package-lock.json + - name: Create concatenated patch file + id: patch-file + run: | + ls -d -- packages/*/patches/*.patch 2>/dev/null | xargs cat > combined-patch-file.txt || touch combined-patch-file.txt + echo "patch_checksum=$(sha256sum combined-patch-file.txt | cut -d' ' -f1)" >> $GITHUB_OUTPUT + + - name: Cache node modules + id: cache-node-modules + uses: actions/cache@v4 + with: + path: | + node_modules + packages/mobile/node_modules + packages/common/node_modules + packages/libs/node_modules + packages/libs/dist + packages/sdk/node_modules + packages/sdk/dist + packages/harmony/node_modules + packages/dotenv-linter/bin + key: npm-cache-mobile-${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}-${{ steps.patch-file.outputs.patch_checksum }} + restore-keys: | + npm-cache-mobile-${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}- + npm-cache-mobile-${{ runner.os }}-${{ hashFiles('package-lock.json') }}- + - name: Install dependencies env: CI: true NODE_OPTIONS: --max-old-space-size=8192 - run: npm ci --prefer-offline || npm install --prefer-offline + run: | + if [[ -d node_modules ]]; then + echo "Using cached node_modules, running postinstall..." + npm run postinstall + if [[ ! -f packages/dotenv-linter/bin/dotenv-linter ]]; then + echo "dotenv-linter binary missing, running install script..." + (cd packages/dotenv-linter && npm run install) + fi + else + echo "No cache found, running fresh install..." + npm cache clean --force || true + npm ci --prefer-offline || npm install --prefer-offline + fi - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 @@ -170,7 +273,7 @@ jobs: echo "channel=rc" >> "$GITHUB_OUTPUT" fi - - name: Publish OTA updates (iOS + Android) + - name: Publish OTA update (${{ matrix.platform }}) env: OTA_S3_BUCKET: ${{ secrets.OTA_S3_BUCKET }} OTA_S3_PREFIX: mobile-ota @@ -185,32 +288,29 @@ jobs: OTA_APP_VERSION="${MAJOR}.${MINOR}.${OTA_PATCH}" cd packages/mobile - npx code-push create-history --binary-version "$BINARY_VERSION" --platform ios --identifier "$OTA_CHANNEL" || true - npx code-push create-history --binary-version "$BINARY_VERSION" --platform android --identifier "$OTA_CHANNEL" || true - - npx code-push release \ - --binary-version "$BINARY_VERSION" \ - --app-version "$OTA_APP_VERSION" \ - --platform ios \ - --identifier "$OTA_CHANNEL" \ - --entry-file index.js + npx code-push create-history --binary-version "$BINARY_VERSION" --platform ${{ matrix.platform }} --identifier "$OTA_CHANNEL" || true npx code-push release \ --binary-version "$BINARY_VERSION" \ --app-version "$OTA_APP_VERSION" \ - --platform android \ + --platform ${{ matrix.platform }} \ --identifier "$OTA_CHANNEL" \ --entry-file index.js - # OTA Release (Production): manual + environment approval gate + # OTA Release (Production): manual + environment approval gate. + # Matrixed over platforms so iOS and Android publish in parallel. mobile-ota-release-production: - name: Mobile OTA Release (Production, Approved) + name: Mobile OTA Release (Production, ${{ matrix.platform }}) runs-on: ubuntu-latest - needs: [mobile-init, mobile-version-check] + needs: [mobile-install, mobile-version-check] if: github.event_name == 'workflow_dispatch' && github.event.inputs.ota_channel == 'production' environment: name: mobile-production-ota url: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} + strategy: + fail-fast: false + matrix: + platform: [ios, android] steps: - name: Checkout code uses: actions/checkout@v4 @@ -224,11 +324,48 @@ jobs: cache: 'npm' cache-dependency-path: package-lock.json + - name: Create concatenated patch file + id: patch-file + run: | + ls -d -- packages/*/patches/*.patch 2>/dev/null | xargs cat > combined-patch-file.txt || touch combined-patch-file.txt + echo "patch_checksum=$(sha256sum combined-patch-file.txt | cut -d' ' -f1)" >> $GITHUB_OUTPUT + + - name: Cache node modules + id: cache-node-modules + uses: actions/cache@v4 + with: + path: | + node_modules + packages/mobile/node_modules + packages/common/node_modules + packages/libs/node_modules + packages/libs/dist + packages/sdk/node_modules + packages/sdk/dist + packages/harmony/node_modules + packages/dotenv-linter/bin + key: npm-cache-mobile-${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}-${{ steps.patch-file.outputs.patch_checksum }} + restore-keys: | + npm-cache-mobile-${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}- + npm-cache-mobile-${{ runner.os }}-${{ hashFiles('package-lock.json') }}- + - name: Install dependencies env: CI: true NODE_OPTIONS: --max-old-space-size=8192 - run: npm ci --prefer-offline || npm install --prefer-offline + run: | + if [[ -d node_modules ]]; then + echo "Using cached node_modules, running postinstall..." + npm run postinstall + if [[ ! -f packages/dotenv-linter/bin/dotenv-linter ]]; then + echo "dotenv-linter binary missing, running install script..." + (cd packages/dotenv-linter && npm run install) + fi + else + echo "No cache found, running fresh install..." + npm cache clean --force || true + npm ci --prefer-offline || npm install --prefer-offline + fi - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 @@ -237,7 +374,7 @@ jobs: aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: us-east-1 - - name: Publish OTA updates to production (iOS + Android) + - name: Publish OTA update to production (${{ matrix.platform }}) env: OTA_S3_BUCKET: ${{ secrets.OTA_S3_BUCKET }} OTA_S3_PREFIX: mobile-ota @@ -251,20 +388,12 @@ jobs: OTA_APP_VERSION="${MAJOR}.${MINOR}.${OTA_PATCH}" cd packages/mobile - npx code-push create-history --binary-version "$BINARY_VERSION" --platform ios --identifier "$OTA_CHANNEL" || true - npx code-push create-history --binary-version "$BINARY_VERSION" --platform android --identifier "$OTA_CHANNEL" || true - - npx code-push release \ - --binary-version "$BINARY_VERSION" \ - --app-version "$OTA_APP_VERSION" \ - --platform ios \ - --identifier "$OTA_CHANNEL" \ - --entry-file index.js + npx code-push create-history --binary-version "$BINARY_VERSION" --platform ${{ matrix.platform }} --identifier "$OTA_CHANNEL" || true npx code-push release \ --binary-version "$BINARY_VERSION" \ --app-version "$OTA_APP_VERSION" \ - --platform android \ + --platform ${{ matrix.platform }} \ --identifier "$OTA_CHANNEL" \ --entry-file index.js @@ -272,7 +401,7 @@ jobs: mobile-build-upload-releasecandidate-ios: name: iOS Release Candidate Build & Upload runs-on: macos-15 - needs: [mobile-init, mobile-version-check] + needs: [mobile-install, mobile-version-check] if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' && needs.mobile-version-check.outputs.version_changed == 'true' steps: - name: Checkout code @@ -446,7 +575,7 @@ jobs: mobile-build-upload-releasecandidate-android: name: Android Release Candidate Build & Upload runs-on: ubuntu-latest - needs: [mobile-init, mobile-version-check] + needs: [mobile-install, mobile-version-check] if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' && needs.mobile-version-check.outputs.version_changed == 'true' steps: - name: Checkout code @@ -662,7 +791,7 @@ jobs: mobile-build-upload-production-ios-main: name: iOS Production Build & Upload runs-on: macos-15 - needs: [mobile-init, mobile-version-check] + needs: [mobile-install, mobile-version-check] if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' && needs.mobile-version-check.outputs.version_changed == 'true' environment: name: mobile-production-ios @@ -823,7 +952,7 @@ jobs: mobile-build-upload-production-android-main: name: Android Production Build & Upload runs-on: ubuntu-latest - needs: [mobile-init, mobile-version-check] + needs: [mobile-install, mobile-version-check] if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' && needs.mobile-version-check.outputs.version_changed == 'true' environment: name: mobile-production-android From 342a671a79f486ec6146cd25a49c319cb3bd309c Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 11:26:58 -0700 Subject: [PATCH 02/60] chore: remove solana-relay and relay from monorepo (#14312) --- .circleci/config.yml | 1 - .circleci/scripts/docker-tag-images.sh | 1 - .circleci/src/jobs/@integration-jobs.yml | 1 - .circleci/src/workflows/discovery.yml | 2 +- .circleci/src/workflows/release.yml | 2 +- .../compose/docker-compose.pedalboard.dev.yml | 9 - .../docker-compose.pedalboard.prod.yml | 36 - dev-tools/compose/docker-compose.yml | 6 - dev-tools/compose/nginx_ingress.conf | 21 - monitoring/vector/vector.toml | 2 - package-lock.json | 45903 +++++++--------- packages/compose/package.json | 1 - .../nginx_conf/nginx_container.conf | 7 - .../pedalboard/apps/solana-relay/.eslintrc.js | 4 - .../pedalboard/apps/solana-relay/README.md | 46 - .../pedalboard/apps/solana-relay/package.json | 72 - .../apps/solana-relay/src/config.ts | 223 - .../pedalboard/apps/solana-relay/src/db.ts | 12 - .../apps/solana-relay/src/errors.ts | 23 - .../pedalboard/apps/solana-relay/src/index.ts | 78 - .../apps/solana-relay/src/logger.ts | 16 - .../src/middleware/assertRateLimiter.test.ts | 97 - .../src/middleware/errorHandler.ts | 29 - .../solana-relay/src/middleware/locals.ts | 16 - .../solana-relay/src/middleware/logging.ts | 42 - .../src/middleware/rateLimiter.ts | 81 - .../src/middleware/signerRecovery.ts | 65 - .../pedalboard/apps/solana-relay/src/redis.ts | 162 - .../apps/solana-relay/src/routes/cache.ts | 35 - .../apps/solana-relay/src/routes/feePayer.ts | 29 - .../solana-relay/src/routes/health/health.ts | 12 - .../src/routes/instruction/location.ts | 48 - .../src/routes/launchpad/claim_fees.ts | 238 - .../routes/launchpad/claim_vested_coins.ts | 400 - .../src/routes/launchpad/constants.ts | 6 - .../src/routes/launchpad/curve.ts | 324 - .../derive_eth_address_for_mint.test.ts | 74 - .../launchpad/derive_eth_address_for_mint.ts | 36 - .../src/routes/launchpad/first_buy_quote.ts | 323 - .../src/routes/launchpad/getKeypair.ts | 20 - .../src/routes/launchpad/launch_coin.ts | 539 - .../src/routes/launchpad/reward_pool.ts | 172 - .../listen/assertListenRateLimiter.test.ts | 272 - .../solana-relay/src/routes/listen/listen.ts | 283 - .../routes/listen/trackListenInstructions.ts | 251 - .../src/routes/meteora/constants.ts | 2 - .../src/routes/meteora/swap_coin.ts | 344 - .../src/routes/meteora/swap_coin_quote.ts | 265 - .../relay/InvalidRelayInstructionError.ts | 6 - .../src/routes/relay/antiAbuse.ts | 28 - .../assertRelayAllowedInstructions.test.ts | 1574 - .../relay/assertRelayAllowedInstructions.ts | 722 - .../routes/relay/associateExternalWallet.ts | 41 - .../src/routes/relay/getAllowedMints.ts | 10 - .../solana-relay/src/routes/relay/relay.ts | 151 - .../solana-relay/src/utils/connections.ts | 23 - .../apps/solana-relay/src/utils/delay.ts | 17 - .../apps/solana-relay/src/utils/ipData.ts | 64 - .../apps/solana-relay/src/utils/sortKeys.ts | 12 - .../solana-relay/src/utils/transaction.ts | 291 - .../src/utils/verifySignatures.test.ts | 71 - .../src/utils/verifySignatures.ts | 30 - .../apps/solana-relay/tsconfig.json | 11 - 63 files changed, 20288 insertions(+), 33394 deletions(-) delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/.eslintrc.js delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/README.md delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/package.json delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/config.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/db.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/errors.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/index.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/logger.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/assertRateLimiter.test.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/errorHandler.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/locals.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/logging.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/rateLimiter.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/signerRecovery.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/redis.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/cache.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/feePayer.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/health/health.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/instruction/location.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/claim_fees.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/claim_vested_coins.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/constants.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/curve.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/derive_eth_address_for_mint.test.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/derive_eth_address_for_mint.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/first_buy_quote.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/getKeypair.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/launch_coin.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/reward_pool.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/assertListenRateLimiter.test.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/listen.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/trackListenInstructions.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/constants.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/swap_coin.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/swap_coin_quote.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/InvalidRelayInstructionError.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/antiAbuse.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/assertRelayAllowedInstructions.test.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/assertRelayAllowedInstructions.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/associateExternalWallet.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/getAllowedMints.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/relay.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/connections.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/delay.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/ipData.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/sortKeys.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/transaction.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/verifySignatures.test.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/verifySignatures.ts delete mode 100644 packages/discovery-provider/plugins/pedalboard/apps/solana-relay/tsconfig.json diff --git a/.circleci/config.yml b/.circleci/config.yml index f7090d45b2c..702181cb0fe 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -91,7 +91,6 @@ jobs: - ./packages/ddex-entrypoint/node_modules - ./packages/create-audius-app/node_modules - ./packages/dotenv-linter/bin - - ./packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules generate-release-branch: working_directory: ~/apps diff --git a/.circleci/scripts/docker-tag-images.sh b/.circleci/scripts/docker-tag-images.sh index 3ec9b90ab0d..23b6f7bc8e9 100755 --- a/.circleci/scripts/docker-tag-images.sh +++ b/.circleci/scripts/docker-tag-images.sh @@ -40,7 +40,6 @@ discovery=( discovery-provider-notifications discovery-provider-openresty es-indexer - solana-relay staking anti-abuse archiver diff --git a/.circleci/src/jobs/@integration-jobs.yml b/.circleci/src/jobs/@integration-jobs.yml index d8bc8d9308c..5e078240c3d 100644 --- a/.circleci/src/jobs/@integration-jobs.yml +++ b/.circleci/src/jobs/@integration-jobs.yml @@ -26,7 +26,6 @@ e2e-init: - packages/libs/dist - packages/sdk/node_modules - packages/sdk/dist - - packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules e2e-test: machine: true diff --git a/.circleci/src/workflows/discovery.yml b/.circleci/src/workflows/discovery.yml index c57bcd529ec..18ee48a711c 100644 --- a/.circleci/src/workflows/discovery.yml +++ b/.circleci/src/workflows/discovery.yml @@ -3,7 +3,7 @@ jobs: - push-docker-image: name: push-discovery-provider context: [Vercel, dockerhub] - service: discovery-provider discovery-provider-openresty discovery-provider-notifications staking solana-relay es-indexer anti-abuse archiver + service: discovery-provider discovery-provider-openresty discovery-provider-notifications staking es-indexer anti-abuse archiver filters: branches: only: main diff --git a/.circleci/src/workflows/release.yml b/.circleci/src/workflows/release.yml index d748f9c1a9d..36f0e198061 100644 --- a/.circleci/src/workflows/release.yml +++ b/.circleci/src/workflows/release.yml @@ -8,7 +8,7 @@ jobs: - push-docker-image: name: push-discovery-provider context: [Vercel, dockerhub, slack-secrets] - service: discovery-provider discovery-provider-notifications discovery-provider-openresty solana-relay staking es-indexer anti-abuse archiver + service: discovery-provider discovery-provider-notifications discovery-provider-openresty staking es-indexer anti-abuse archiver notify_slack_on_failure: true - commit-audius-docker-compose-and-notify: context: [slack-secrets, github] diff --git a/dev-tools/compose/docker-compose.pedalboard.dev.yml b/dev-tools/compose/docker-compose.pedalboard.dev.yml index 04886390b5c..f43ebdd737c 100644 --- a/dev-tools/compose/docker-compose.pedalboard.dev.yml +++ b/dev-tools/compose/docker-compose.pedalboard.dev.yml @@ -35,15 +35,6 @@ services: volumes: - ${PROJECT_ROOT}:/app - solana-relay: - extends: - file: docker-compose.pedalboard.prod.yml - service: solana-relay - build: - dockerfile: ${PROJECT_ROOT}/packages/discovery-provider/plugins/pedalboard/docker/Dockerfile.dev - volumes: - - ${PROJECT_ROOT}:/app - archiver: user: ${DOCKER_UID:-root}:${DOCKER_GID:-root} extends: diff --git a/dev-tools/compose/docker-compose.pedalboard.prod.yml b/dev-tools/compose/docker-compose.pedalboard.prod.yml index 4a6285a6871..172eaf1e569 100644 --- a/dev-tools/compose/docker-compose.pedalboard.prod.yml +++ b/dev-tools/compose/docker-compose.pedalboard.prod.yml @@ -45,42 +45,6 @@ services: profiles: - pedalboard - solana-relay: - build: - context: ${PROJECT_ROOT} - dockerfile: ${PROJECT_ROOT}/packages/discovery-provider/plugins/pedalboard/docker/Dockerfile.prod - args: - app_name: solana-relay - TURBO_TEAM: '${TURBO_TEAM:-}' - TURBO_TOKEN: '${TURBO_TOKEN:-}' - env_file: .env # used by the startup script - environment: - audius_solana_rewards_manager_program_address: '${SOLANA_REWARD_MANAGER_PUBLIC_KEY}' - audius_solana_rewards_manager_account: '${SOLANA_REWARD_MANAGER_PDA_PUBLIC_KEY}' - audius_solana_user_bank_program_address: '${SOLANA_CLAIMABLE_TOKENS_PUBLIC_KEY}' - audius_solana_payment_router_program_address: '${SOLANA_PAYMENT_ROUTER_PUBLIC_KEY}' - audius_solana_waudio_mint: '${SOLANA_TOKEN_MINT_PUBLIC_KEY}' - audius_solana_usdc_mint: '${SOLANA_USDC_TOKEN_MINT_PUBLIC_KEY}' - audius_solana_fee_payer_wallets: '[{"privateKey":${SOLANA_FEEPAYER_SECRET_KEY}}]' - restart: always - profiles: - - discovery - deploy: - mode: replicated - replicas: '${DISCOVERY_PROVIDER_REPLICAS}' - healthcheck: - test: ['CMD', 'curl', '-f', 'http://127.0.0.1:6002/solana/health_check'] - interval: 1s - timeout: 1s - retries: 120 - depends_on: - db: - condition: service_healthy - discovery-provider-redis: - condition: service_healthy - solana-test-validator: - condition: service_healthy - archiver: container_name: archiver build: diff --git a/dev-tools/compose/docker-compose.yml b/dev-tools/compose/docker-compose.yml index adc91cc6c07..79125ae052b 100644 --- a/dev-tools/compose/docker-compose.yml +++ b/dev-tools/compose/docker-compose.yml @@ -172,12 +172,6 @@ services: service: staking <<: *common - solana-relay: - extends: - file: docker-compose.pedalboard.${DOCKERCOMPOSE_ENV_TYPE:-dev}.yml - service: solana-relay - <<: *common - anti-abuse: extends: file: docker-compose.pedalboard.${DOCKERCOMPOSE_ENV_TYPE:-dev}.yml diff --git a/dev-tools/compose/nginx_ingress.conf b/dev-tools/compose/nginx_ingress.conf index 50486b4f3e6..617d328c0f6 100644 --- a/dev-tools/compose/nginx_ingress.conf +++ b/dev-tools/compose/nginx_ingress.conf @@ -22,13 +22,6 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } - location ~ ^/solana(/.*)?$ { - resolver 127.0.0.11 valid=30s; - proxy_pass http://audius-solana-relay-1:6002/solana$1; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - location ~ ^/console(/.*)?$ { resolver 127.0.0.11 valid=30s; proxy_pass http://audiusd-1:26659/console$1; @@ -64,13 +57,6 @@ server { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } - - location ~ ^/solana(/.*)?$ { - resolver 127.0.0.11 valid=30s; - proxy_pass http://audius-solana-relay-2:6002/solana$1; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } } server { @@ -84,13 +70,6 @@ server { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } - - location ~ ^/solana(/.*)?$ { - resolver 127.0.0.11 valid=30s; - proxy_pass http://audius-solana-relay-3:6002/solana$1; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } } # diff --git a/monitoring/vector/vector.toml b/monitoring/vector/vector.toml index 62d29813d68..9fee4fb2a4d 100644 --- a/monitoring/vector/vector.toml +++ b/monitoring/vector/vector.toml @@ -12,8 +12,6 @@ "notifications", "chain", "mediorum", - "relay", - "solana-relay", "core", "audiusd" ] diff --git a/package-lock.json b/package-lock.json index 65fe58ea243..985b4c4caa0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6080,14 +6080,6 @@ "node": ">=11" } }, - "node_modules/@coral-xyz/anchor-errors": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz", - "integrity": "sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ==", - "engines": { - "node": ">=10" - } - }, "node_modules/@coral-xyz/anchor/node_modules/camelcase": { "version": "6.3.0", "license": "MIT", @@ -7893,16 +7885,6 @@ "node": ">= 10.0.0" } }, - "node_modules/@emnapi/runtime": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", - "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", - "license": "MIT", - "optional": 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", @@ -12958,456 +12940,6 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.4.tgz", - "integrity": "sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.0.2" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.4.tgz", - "integrity": "sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.2" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz", - "integrity": "sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "macos": ">=11", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz", - "integrity": "sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "macos": ">=10.13", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz", - "integrity": "sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz", - "integrity": "sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz", - "integrity": "sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz", - "integrity": "sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz", - "integrity": "sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz", - "integrity": "sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.4.tgz", - "integrity": "sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.2" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.4.tgz", - "integrity": "sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.2" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.4.tgz", - "integrity": "sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.31", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.2" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.4.tgz", - "integrity": "sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.2" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.4.tgz", - "integrity": "sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.2" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.4.tgz", - "integrity": "sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.2" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.4.tgz", - "integrity": "sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.1.1" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.4.tgz", - "integrity": "sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.4.tgz", - "integrity": "sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, "node_modules/@improbable-eng/grpc-web": { "version": "0.14.1", "license": "Apache-2.0", @@ -14266,5695 +13798,4664 @@ "multiformats": "^9.5.4" } }, - "node_modules/@irys/arweave": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@irys/arweave/-/arweave-0.0.2.tgz", - "integrity": "sha512-ddE5h4qXbl0xfGlxrtBIwzflaxZUDlDs43TuT0u1OMfyobHul4AA1VEX72Rpzw2bOh4vzoytSqA1jCM7x9YtHg==", + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", "dependencies": { - "asn1.js": "^5.4.1", - "async-retry": "^1.3.3", - "axios": "^1.4.0", - "base64-js": "^1.5.1", - "bignumber.js": "^9.1.1" + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" } }, - "node_modules/@irys/arweave/node_modules/axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "license": "ISC", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "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/@irys/arweave/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" - } - ], + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=12" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@irys/arweave/node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "license": "MIT", "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" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">= 6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@irys/bundles": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@irys/bundles/-/bundles-0.0.1.tgz", - "integrity": "sha512-yeQNzElERksFbfbNxJQsMkhtkI3+tNqIMZ/Wwxh76NVBmCnCP5huefOv7ET0MOO7TEQL+TqvKSqmFklYSvTyHw==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/providers": "^5.7.2", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wallet": "^5.7.0", - "@irys/arweave": "^0.0.2", - "@noble/ed25519": "^1.6.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "keccak": "^3.0.2", - "secp256k1": "^5.0.0" + "ansi-regex": "^6.0.1" }, - "optionalDependencies": { - "@randlabs/myalgo-connect": "^1.1.2", - "algosdk": "^1.13.1", - "arweave-stream-tx": "^1.1.0", - "multistream": "^4.1.0", - "tmp-promise": "^3.0.2" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "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" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@irys/bundles/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" - } - ], - "dependencies": { - "@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/@isaacs/ttlcache": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", + "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", + "license": "ISC", + "engines": { + "node": ">=12" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "license": "ISC", "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" + "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/@irys/bundles/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" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.8.0" + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/console": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/properties": "^5.8.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "bn.js": "^5.2.1" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.8.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@irys/bundles/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" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.8.0" + "node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "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" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core": { + "version": "29.7.0", + "dev": true, + "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" + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/@jest/environment": { + "version": "29.7.0", + "dev": true, + "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" + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/@jest/fake-timers": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "js-sha3": "0.8.0" + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/bundles/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" - } - ] - }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/logger": "^5.8.0" + "type-detect": "4.0.8" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/sha2": "^5.8.0" + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.8.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "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" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@irys/bundles/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" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0" + "node_modules/@jest/core/node_modules/emittery": { + "version": "0.13.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/jest-docblock": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0" + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/jest-environment-node": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "hash.js": "1.1.7" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/jest-leak-detector": { + "version": "29.7.0", + "dev": true, + "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" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/jest-runner": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/logger": "^5.8.0" + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/bundles/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" - } - ], + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "29.7.0", + "dev": true, + "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" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/bundles/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" - } - ], - "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/@irys/bundles/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" - } - ], - "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/@jest/core/node_modules/react-is": { + "version": "18.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/@irys/bundles/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" - } - ], - "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/@jest/core/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@irys/bundles/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + "node_modules/@jest/core/node_modules/source-map-support": { + "version": "0.5.13", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } }, - "node_modules/@irys/bundles/node_modules/algosdk": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", - "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", - "optional": true, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.2", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "node_modules/@irys/bundles/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/@irys/bundles/node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, - "node_modules/@irys/bundles/node_modules/secp256k1": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.1.tgz", - "integrity": "sha512-lDFs9AAIaWP9UCdtWrotXWWF9t8PWgQDcxqgAnpM9rMqxb3Oaq2J0thzPVSxBwdJgyQtkU/sYtFtbM1RSt/iYA==", - "hasInstallScript": true, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "elliptic": "^6.5.7", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" + "jest-get-type": "^29.6.3" }, "engines": { - "node": ">=18.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/bundles/node_modules/vlq": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", - "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==", - "optional": true - }, - "node_modules/@irys/bundles/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "node_modules/@jest/globals": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/query": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@irys/query/-/query-0.0.9.tgz", - "integrity": "sha512-uBIy8qeOQupUSBzR+1KU02JJXFp5Ue9l810PIbBF/ylUB8RTreUFkyyABZ7J3FUaOIXFYrT7WVFSJSzXM7P+8w==", + "node_modules/@jest/globals/node_modules/@jest/environment": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "async-retry": "^1.3.3", - "axios": "^1.4.0" + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" }, "engines": { - "node": ">=16.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/query/node_modules/axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "node_modules/@jest/globals/node_modules/@jest/expect": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/@irys/query/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" - } - ], - "engines": { - "node": ">=4.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/query/node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "node_modules/@jest/globals/node_modules/@jest/fake-timers": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "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" + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/upload": { - "version": "0.0.14", - "resolved": "https://registry.npmjs.org/@irys/upload/-/upload-0.0.14.tgz", - "integrity": "sha512-6XdkyS5cVINcPjv1MzA6jDsawfG7Bw6sq5wilNx5B4X7nNotBPC3SuRrZs06G/0BTUj15W+TRO/tZTDWRUfZzA==", + "node_modules/@jest/globals/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@irys/bundles": "^0.0.1", - "@irys/upload-core": "^0.0.9", - "async-retry": "^1.3.3", - "axios": "^1.7.5", - "base64url": "^3.0.1", - "bignumber.js": "^9.1.2", - "csv-parse": "^5.5.6", - "csv-stringify": "^6.5.1", - "inquirer": "^8.2.0", - "mime-types": "^2.1.35" + "type-detect": "4.0.8" } }, - "node_modules/@irys/upload-core": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@irys/upload-core/-/upload-core-0.0.9.tgz", - "integrity": "sha512-Ha4pX8jgYBA3dg5KHDPk+Am0QO+SmvnmgCwKa6uiDXZKuVr0neSx4V1OAHoP+As+j7yYgfChdsdrvsNzZGGehA==", + "node_modules/@jest/globals/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@irys/bundles": "^0.0.1", - "@irys/query": "^0.0.9", - "@supercharge/promise-pool": "^3.1.1", - "async-retry": "^1.3.3", - "axios": "^1.7.5", - "base64url": "^3.0.1", - "bignumber.js": "^9.1.2" + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@irys/upload-core/node_modules/axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/@irys/upload-core/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" - } - ], + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, "engines": { - "node": ">=4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "debug": { + "node-notifier": { "optional": true } } }, - "node_modules/@irys/upload-core/node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", "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" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@irys/upload-solana": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@irys/upload-solana/-/upload-solana-0.1.8.tgz", - "integrity": "sha512-pJyG8uJ3NIpbIGDA9hYRHij5xF1DrU0QMa4i2mVJlYwbSdQfNdcJ8SdT4ZsrTh1g/+OWMzbo2l/ziMY1Js9HGA==", - "dependencies": { - "@irys/bundles": "^0.0.3", - "@irys/upload": "^0.0.15", - "@irys/upload-core": "^0.0.10", - "@solana/spl-token": "^0.4.8", - "@solana/web3.js": "^1.95.3", - "async-retry": "^1.3.3", - "bignumber.js": "^9.1.2", - "bs58": "5.0.0", - "tweetnacl": "^1.0.3" + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "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/@irys/upload-solana/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" - } - ], + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "dev": true, + "license": "BSD-3-Clause", "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" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/reporters/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "@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" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/reporters/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", "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" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@irys/upload-solana/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" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.8.0" + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/properties": "^5.8.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/reporters/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "bn.js": "^5.2.1" + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/source-map": { + "version": "29.6.3", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.8.0" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/test-result": { + "version": "29.7.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.8.0" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "dev": true, + "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" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/upload-solana/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" - } - ], - "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/@jest/test-sequencer/node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/transform": { + "version": "29.7.0", + "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" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "js-sha3": "0.8.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@irys/upload-solana/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" - } - ] - }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.8.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@irys/upload-solana/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" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/sha2": "^5.8.0" + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.8.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "4.0.2", + "license": "ISC", "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" + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/types": { + "version": "29.6.3", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "hash.js": "1.1.7" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "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" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jimp/bmp": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/logger": "^5.8.0" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0", + "bmp-js": "^0.1.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/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" - } - ], + "node_modules/@jimp/core": { + "version": "0.14.0", + "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" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" } }, - "node_modules/@irys/upload-solana/node_modules/@ethersproject/wallet": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz", - "integrity": "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==", + "node_modules/@jimp/core/node_modules/buffer": { + "version": "5.7.1", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "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/@irys/upload-solana/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": "patreon", + "url": "https://www.patreon.com/feross" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "consulting", + "url": "https://feross.org/support" } ], + "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" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/@irys/upload-solana/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" - } - ], - "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/@jimp/core/node_modules/file-type": { + "version": "9.0.0", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/@irys/upload-solana/node_modules/@irys/bundles": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@irys/bundles/-/bundles-0.0.3.tgz", - "integrity": "sha512-zSorcWJO0W7WHBPaTF6C3FNig1ZrCSKIDqnkk91SLl9jcybz5bWmthUFL2D7ywzh1XV5tZQC09bkNJRcXeeGOA==", + "node_modules/@jimp/custom": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/providers": "^5.7.2", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wallet": "^5.7.0", - "@irys/arweave": "^0.0.2", - "@noble/ed25519": "^1.6.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "keccak": "^3.0.2", - "secp256k1": "^5.0.0", - "starknet": "^6.21.0" - }, - "optionalDependencies": { - "@randlabs/myalgo-connect": "^1.1.2", - "algosdk": "^1.13.1", - "arweave-stream-tx": "^1.1.0", - "multistream": "^4.1.0", - "tmp-promise": "^3.0.2" + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.14.0" } }, - "node_modules/@irys/upload-solana/node_modules/@irys/bundles/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "node_modules/@jimp/gif": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "base-x": "^3.0.2" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0", + "gifwrap": "^0.9.2", + "omggif": "^1.0.9" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/node_modules/@irys/upload": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@irys/upload/-/upload-0.0.15.tgz", - "integrity": "sha512-VS1ieI8Hipv7F/odL2rDfn0S9VCwj3GFhROI8el0RjzpcaXCobezP0V4yuvppyB+E4Oiu6xQTXooaIBh/S7xPA==", + "node_modules/@jimp/jpeg": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@irys/bundles": "^0.0.3", - "@irys/upload-core": "^0.0.10", - "async-retry": "^1.3.3", - "axios": "^1.7.5", - "base64url": "^3.0.1", - "bignumber.js": "^9.1.2", - "csv-parse": "^5.5.6", - "csv-stringify": "^6.5.1", - "inquirer": "^8.2.0", - "mime-types": "^2.1.35" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0", + "jpeg-js": "^0.4.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/node_modules/@irys/upload-core": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/@irys/upload-core/-/upload-core-0.0.10.tgz", - "integrity": "sha512-E7kCNSOTPqwBbnd2wnnklPrR0HtLnENmu5NVhgs+B9cUeyN9AcvzRDOJLKNmYS6q514bDwb/PUgB+vP/070now==", + "node_modules/@jimp/plugin-blit": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@irys/bundles": "^0.0.3", - "@irys/query": "^0.0.9", - "@supercharge/promise-pool": "^3.1.1", - "async-retry": "^1.3.3", - "axios": "^1.7.5", - "base64url": "^3.0.1", - "bignumber.js": "^9.1.2" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/node_modules/@solana/spl-token": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.4.13.tgz", - "integrity": "sha512-cite/pYWQZZVvLbg5lsodSovbetK/eA24gaR0eeUeMuBAMNrT8XFCwaygKy0N2WSg3gSyjjNpIeAGBAKZaY/1w==", + "node_modules/@jimp/plugin-blur": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "@solana/spl-token-group": "^0.0.7", - "@solana/spl-token-metadata": "^0.1.6", - "buffer": "^6.0.3" - }, - "engines": { - "node": ">=16" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" }, "peerDependencies": { - "@solana/web3.js": "^1.95.5" + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" - }, - "node_modules/@irys/upload-solana/node_modules/algosdk": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", - "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", - "optional": true, + "node_modules/@jimp/plugin-circle": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.2", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/node_modules/axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "node_modules/@jimp/plugin-color": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0", + "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/@irys/upload-solana/node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "node_modules/@jimp/plugin-contain": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "base-x": "^4.0.0" - } - }, - "node_modules/@irys/upload-solana/node_modules/bs58/node_modules/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==" - }, - "node_modules/@irys/upload-solana/node_modules/csv-parse": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.6.0.tgz", - "integrity": "sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==" - }, - "node_modules/@irys/upload-solana/node_modules/csv-stringify": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.6.0.tgz", - "integrity": "sha512-YW32lKOmIBgbxtu3g5SaiqWNwa/9ISQt2EcgOq0+RAIFufFp9is6tqNnKahqE5kuKvrnYAzs28r+s6pXJR8Vcw==" - }, - "node_modules/@irys/upload-solana/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" - } - ], - "engines": { - "node": ">=4.0" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "node_modules/@jimp/plugin-cover": { + "version": "0.14.0", + "license": "MIT", "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" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, - "node_modules/@irys/upload-solana/node_modules/secp256k1": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.1.tgz", - "integrity": "sha512-lDFs9AAIaWP9UCdtWrotXWWF9t8PWgQDcxqgAnpM9rMqxb3Oaq2J0thzPVSxBwdJgyQtkU/sYtFtbM1RSt/iYA==", - "hasInstallScript": true, + "node_modules/@jimp/plugin-crop": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "elliptic": "^6.5.7", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" }, - "engines": { - "node": ">=18.0.0" + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload-solana/node_modules/vlq": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", - "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==", - "optional": true - }, - "node_modules/@irys/upload-solana/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "engines": { - "node": ">=10.0.0" + "node_modules/@jimp/plugin-displace": { + "version": "0.14.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload/node_modules/axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "node_modules/@jimp/plugin-dither": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/upload/node_modules/csv-parse": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.6.0.tgz", - "integrity": "sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==" - }, - "node_modules/@irys/upload/node_modules/csv-stringify": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.6.0.tgz", - "integrity": "sha512-YW32lKOmIBgbxtu3g5SaiqWNwa/9ISQt2EcgOq0+RAIFufFp9is6tqNnKahqE5kuKvrnYAzs28r+s6pXJR8Vcw==" + "node_modules/@jimp/plugin-fisheye": { + "version": "0.14.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } }, - "node_modules/@irys/upload/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" - } - ], - "engines": { - "node": ">=4.0" + "node_modules/@jimp/plugin-flip": { + "version": "0.14.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-rotate": ">=0.3.5" } }, - "node_modules/@irys/upload/node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "node_modules/@jimp/plugin-gaussian": { + "version": "0.14.0", + "license": "MIT", "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" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/web-upload": { - "version": "0.0.14", - "resolved": "https://registry.npmjs.org/@irys/web-upload/-/web-upload-0.0.14.tgz", - "integrity": "sha512-vBIslG2KSGyeJjZNTbSvLmGO/bbHS1jcDkD0A1aLgx7xkiTpfdbXOrn4hznPkzQhPtluX4aL44On0GXrEcD8eQ==", + "node_modules/@jimp/plugin-invert": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@irys/bundles": "^0.0.1", - "@irys/upload-core": "^0.0.9", - "async-retry": "^1.3.3", - "axios": "^1.7.5", - "base64url": "^3.0.1", - "bignumber.js": "^9.1.2", - "mime-types": "^2.1.35" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@irys/web-upload-solana/-/web-upload-solana-0.1.8.tgz", - "integrity": "sha512-jzPihVOFbvTiJRwsWDOiip8CNk2I5TAkyZwWbkeFJQRvX95HOw1iI4KlbeBTDc6EJcyj8BWsxkMqIE/cBqlKoQ==", - "dependencies": { - "@irys/bundles": "^0.0.3", - "@irys/upload-core": "^0.0.10", - "@irys/web-upload": "^0.0.15", - "@solana/spl-token": "^0.4.8", - "@solana/web3.js": "^1.95.3", - "async-retry": "^1.3.3", - "bignumber.js": "^9.1.2", - "bs58": "5.0.0", - "tweetnacl": "^1.0.3" + "node_modules/@jimp/plugin-mask": { + "version": "0.14.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/plugin-normalize": { + "version": "0.14.0", + "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" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/plugin-print": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@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" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0", + "load-bmfont": "^1.4.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/plugin-resize": { + "version": "0.14.0", + "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" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/plugin-rotate": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/plugin-scale": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/properties": "^5.8.0" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/plugin-shadow": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "bn.js": "^5.2.1" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blur": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/plugin-threshold": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.8.0" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-color": ">=0.8.0", + "@jimp/plugin-resize": ">=0.8.0" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/plugins": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.8.0" + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.14.0", + "@jimp/plugin-blur": "^0.14.0", + "@jimp/plugin-circle": "^0.14.0", + "@jimp/plugin-color": "^0.14.0", + "@jimp/plugin-contain": "^0.14.0", + "@jimp/plugin-cover": "^0.14.0", + "@jimp/plugin-crop": "^0.14.0", + "@jimp/plugin-displace": "^0.14.0", + "@jimp/plugin-dither": "^0.14.0", + "@jimp/plugin-fisheye": "^0.14.0", + "@jimp/plugin-flip": "^0.14.0", + "@jimp/plugin-gaussian": "^0.14.0", + "@jimp/plugin-invert": "^0.14.0", + "@jimp/plugin-mask": "^0.14.0", + "@jimp/plugin-normalize": "^0.14.0", + "@jimp/plugin-print": "^0.14.0", + "@jimp/plugin-resize": "^0.14.0", + "@jimp/plugin-rotate": "^0.14.0", + "@jimp/plugin-scale": "^0.14.0", + "@jimp/plugin-shadow": "^0.14.0", + "@jimp/plugin-threshold": "^0.14.0", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/png": { + "version": "0.14.0", + "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" + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.14.0", + "pngjs": "^3.3.3" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/tiff": { + "version": "0.14.0", + "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" + "@babel/runtime": "^7.7.2", + "utif": "^2.0.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/types": { + "version": "0.14.0", + "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" + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.14.0", + "@jimp/gif": "^0.14.0", + "@jimp/jpeg": "^0.14.0", + "@jimp/png": "^0.14.0", + "@jimp/tiff": "^0.14.0", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jimp/utils": { + "version": "0.14.0", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "js-sha3": "0.8.0" + "@babel/runtime": "^7.7.2", + "regenerator-runtime": "^0.13.3" } }, - "node_modules/@irys/web-upload-solana/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" - } - ] + "node_modules/@josephg/resolvable": { + "version": "1.0.1", + "dev": true, + "license": "ISC" }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dependencies": { - "@ethersproject/logger": "^5.8.0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "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==", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/sha2": "^5.8.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.8.0" + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "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" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "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==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@juggle/resize-observer": { + "version": "3.3.1", + "license": "Apache-2.0" + }, + "node_modules/@kurkle/color": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==" + }, + "node_modules/@lezer/common": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.1.tgz", + "integrity": "sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==", + "license": "MIT" + }, + "node_modules/@lezer/css": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.3.1.tgz", + "integrity": "sha512-PYAKeUVBo3HFThruRyp/iK91SwiZJnzXh8QzkQlwijB5y+N5iB28+iLk78o2zmKqqV0uolNhCwFqB8LA7b0Svg==", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0" + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.3.0" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@irys/web-upload-solana/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" - } - ], - "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/@irys/web-upload-solana/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" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@irys/web-upload-solana/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" - } - ], - "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/@irys/web-upload-solana/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" - } - ], - "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/@irys/web-upload-solana/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" - } - ], + "node_modules/@lezer/highlight": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", + "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", + "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" + "@lezer/common": "^1.3.0" } }, - "node_modules/@irys/web-upload-solana/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" - } - ], + "node_modules/@lezer/html": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.13.tgz", + "integrity": "sha512-oI7n6NJml729m7pjm9lvLvmXbdoMoi2f+1pwSDJkl9d68zGr7a9Btz8NdHTGQZtW2DA25ybeuv/SyDb9D5tseg==", + "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" + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" } }, - "node_modules/@irys/web-upload-solana/node_modules/@irys/bundles": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@irys/bundles/-/bundles-0.0.3.tgz", - "integrity": "sha512-zSorcWJO0W7WHBPaTF6C3FNig1ZrCSKIDqnkk91SLl9jcybz5bWmthUFL2D7ywzh1XV5tZQC09bkNJRcXeeGOA==", + "node_modules/@lezer/javascript": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.5.4.tgz", + "integrity": "sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/providers": "^5.7.2", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wallet": "^5.7.0", - "@irys/arweave": "^0.0.2", - "@noble/ed25519": "^1.6.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "keccak": "^3.0.2", - "secp256k1": "^5.0.0", - "starknet": "^6.21.0" - }, - "optionalDependencies": { - "@randlabs/myalgo-connect": "^1.1.2", - "algosdk": "^1.13.1", - "arweave-stream-tx": "^1.1.0", - "multistream": "^4.1.0", - "tmp-promise": "^3.0.2" + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.1.3", + "@lezer/lr": "^1.3.0" } }, - "node_modules/@irys/web-upload-solana/node_modules/@irys/bundles/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "node_modules/@lezer/json": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.3.tgz", + "integrity": "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==", + "license": "MIT", "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/@irys/web-upload-solana/node_modules/@irys/upload-core": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/@irys/upload-core/-/upload-core-0.0.10.tgz", - "integrity": "sha512-E7kCNSOTPqwBbnd2wnnklPrR0HtLnENmu5NVhgs+B9cUeyN9AcvzRDOJLKNmYS6q514bDwb/PUgB+vP/070now==", - "dependencies": { - "@irys/bundles": "^0.0.3", - "@irys/query": "^0.0.9", - "@supercharge/promise-pool": "^3.1.1", - "async-retry": "^1.3.3", - "axios": "^1.7.5", - "base64url": "^3.0.1", - "bignumber.js": "^9.1.2" - } - }, - "node_modules/@irys/web-upload-solana/node_modules/@irys/web-upload": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@irys/web-upload/-/web-upload-0.0.15.tgz", - "integrity": "sha512-ajwy+CHEL+OH6UpO3dDT6xAK5XmJy2xK9Qb4aj+7uphSUczEiSxuSsO0sz/ekAgO/Ymwgkdozk3U1WAnUjbxMg==", - "dependencies": { - "@irys/bundles": "^0.0.3", - "@irys/upload-core": "^0.0.10", - "async-retry": "^1.3.3", - "axios": "^1.7.5", - "base64url": "^3.0.1", - "bignumber.js": "^9.1.2", - "mime-types": "^2.1.35" + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" } }, - "node_modules/@irys/web-upload-solana/node_modules/@solana/spl-token": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.4.13.tgz", - "integrity": "sha512-cite/pYWQZZVvLbg5lsodSovbetK/eA24gaR0eeUeMuBAMNrT8XFCwaygKy0N2WSg3gSyjjNpIeAGBAKZaY/1w==", + "node_modules/@lezer/lr": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", + "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", + "license": "MIT", "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "@solana/spl-token-group": "^0.0.7", - "@solana/spl-token-metadata": "^0.1.6", - "buffer": "^6.0.3" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.95.5" + "@lezer/common": "^1.0.0" } }, - "node_modules/@irys/web-upload-solana/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" - }, - "node_modules/@irys/web-upload-solana/node_modules/algosdk": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", - "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", - "optional": true, + "node_modules/@lezer/xml": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.6.tgz", + "integrity": "sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==", + "license": "MIT", "dependencies": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.2", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" - }, - "engines": { - "node": ">=14.0.0" + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" } }, - "node_modules/@irys/web-upload-solana/node_modules/axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "node_modules/@lezer/yaml": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.4.tgz", + "integrity": "sha512-2lrrHqxalACEbxIbsjhqGpSW8kWpUKuY6RHgnSAFZa6qK62wvnPxA8hGOwOoDbwHcOFs5M4o27mjGu+P7TvBmw==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.4.0" } }, - "node_modules/@irys/web-upload-solana/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", + "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==", + "license": "BSD-3-Clause" }, - "node_modules/@irys/web-upload-solana/node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "node_modules/@lit/reactive-element": { + "version": "1.6.3", + "license": "BSD-3-Clause", "dependencies": { - "base-x": "^4.0.0" + "@lit-labs/ssr-dom-shim": "^1.0.0" } }, - "node_modules/@irys/web-upload-solana/node_modules/bs58/node_modules/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==" - }, - "node_modules/@irys/web-upload-solana/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==", + "node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, "funding": [ { "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" } ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/@irys/web-upload-solana/node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "Apache-2.0", "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" + "cross-spawn": "^7.0.1" }, "engines": { - "node": ">= 6" + "node": ">= 12.13.0" } }, - "node_modules/@irys/web-upload-solana/node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, - "node_modules/@irys/web-upload-solana/node_modules/secp256k1": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.1.tgz", - "integrity": "sha512-lDFs9AAIaWP9UCdtWrotXWWF9t8PWgQDcxqgAnpM9rMqxb3Oaq2J0thzPVSxBwdJgyQtkU/sYtFtbM1RSt/iYA==", - "hasInstallScript": true, + "node_modules/@malept/cross-spawn-promise/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, + "license": "MIT", "dependencies": { - "elliptic": "^6.5.7", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@irys/web-upload-solana/node_modules/vlq": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", - "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==", - "optional": true - }, - "node_modules/@irys/web-upload-solana/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "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/@irys/web-upload/node_modules/axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "node": ">= 8" } }, - "node_modules/@irys/web-upload/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" - } - ], + "node_modules/@malept/cross-spawn-promise/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, + "license": "MIT", "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@irys/web-upload/node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "node_modules/@malept/cross-spawn-promise/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, + "license": "MIT", "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" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "node_modules/@malept/cross-spawn-promise/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">=8" } }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", "dev": true, "license": "MIT", "dependencies": { - "@isaacs/balanced-match": "^4.0.1" + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" }, "engines": { - "node": "20 || >=22" + "node": ">= 10.0.0" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "license": "ISC", + "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "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" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", + "node_modules/@malept/flatpak-bundler/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "universalify": "^2.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", + "node_modules/@malept/flatpak-bundler/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 10.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", + "node_modules/@manypkg/find-root": { + "version": "1.1.0", "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@babel/runtime": "^7.5.5", + "@types/node": "^12.7.1", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", + "node_modules/@manypkg/find-root/node_modules/@types/node": { + "version": "12.20.55", + "license": "MIT" + }, + "node_modules/@manypkg/get-packages": { + "version": "1.1.3", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "@babel/runtime": "^7.5.5", + "@changesets/types": "^4.0.1", + "@manypkg/find-root": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "^11.0.0", + "read-yaml-file": "^1.1.0" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", + "node_modules/@manypkg/get-packages/node_modules/@changesets/types": { + "version": "4.1.0", + "license": "MIT" + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@isaacs/ttlcache": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", - "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", - "license": "ISC", - "engines": { - "node": ">=12" - } + "node_modules/@mdx-js/mdx/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==", + "license": "MIT" }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "license": "ISC", + "node_modules/@mdx-js/mdx/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "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" + "@types/unist": "*" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", + "node_modules/@mdx-js/mdx/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@types/unist": "*" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx/node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.4.0" } }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@jest/console/node_modules/slash": { + "node_modules/@mdx-js/mdx/node_modules/estree-util-is-identifier-name": { "version": "3.0.0", - "dev": true, + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", "license": "MIT", - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@types/estree": "^1.0.0" } }, - "node_modules/@jest/core/node_modules/@jest/environment": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@jest/core/node_modules/@jest/fake-timers": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core/node_modules/@sinonjs/commons": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@jest/core/node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@jest/core/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@jest/core/node_modules/emittery": { - "version": "0.13.1", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "license": "MIT", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jest/core/node_modules/jest-docblock": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", "license": "MIT", "dependencies": { - "detect-newline": "^3.0.0" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/core/node_modules/jest-environment-node": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/core/node_modules/jest-leak-detector": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/core/node_modules/jest-runner": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/core/node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/core/node_modules/source-map-support": { - "version": "0.5.13", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3" + "@types/mdast": "^4.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/globals/node_modules/@jest/environment": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/globals/node_modules/@jest/expect": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/globals/node_modules/@jest/fake-timers": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals/node_modules/@sinonjs/commons": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@jest/globals/node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", "license": "MIT", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "micromark-util-types": "^2.0.0" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jest/reporters/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", + "node_modules/@mdx-js/mdx/node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/reporters/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", + "node_modules/@mdx-js/mdx/node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/reporters/node_modules/slash": { - "version": "3.0.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" } }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/reporters/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", + "node_modules/@mdx-js/mdx/node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@jest/test-sequencer/node_modules/slash": { - "version": "3.0.0", - "dev": true, + "node_modules/@mdx-js/mdx/node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", + "node_modules/@mdx-js/mdx/node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/@mdx-js/mdx/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", + "node_modules/@mdx-js/mdx/node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/@jest/transform/node_modules/slash": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/write-file-atomic": { - "version": "4.0.2", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "node_modules/@mdx-js/mdx/node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, - "node_modules/@jest/types": { - "version": "29.6.3", + "node_modules/@mdx-js/mdx/node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "node_modules/@mdx-js/mdx/node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", + "node_modules/@mdx-js/mdx/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/@mdx-js/mdx/node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jimp/bmp": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0", - "bmp-js": "^0.1.0" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@jimp/core": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0", - "any-base": "^1.1.0", - "buffer": "^5.2.0", - "exif-parser": "^0.1.12", - "file-type": "^9.0.0", - "load-bmfont": "^1.3.1", - "mkdirp": "^0.5.1", - "phin": "^2.9.1", - "pixelmatch": "^4.0.2", - "tinycolor2": "^1.4.1" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@jimp/core/node_modules/buffer": { - "version": "5.7.1", + "node_modules/@mdx-js/mdx/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/@mdx-js/mdx/node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/@jimp/core/node_modules/file-type": { - "version": "9.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } + "license": "MIT" }, - "node_modules/@jimp/custom": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/core": "^0.14.0" + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@jimp/gif": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx/node_modules/remark-mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0", - "gifwrap": "^0.9.2", - "omggif": "^1.0.9" + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/jpeg": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0", - "jpeg-js": "^0.4.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-blit": { - "version": "0.14.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "node_modules/@mdx-js/mdx/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" } }, - "node_modules/@jimp/plugin-blur": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-circle": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/unist": "^3.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-color": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0", - "tinycolor2": "^1.4.1" + "@types/unist": "^3.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-contain": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/unist": "^3.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blit": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5", - "@jimp/plugin-scale": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-cover": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-crop": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5", - "@jimp/plugin-scale": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-crop": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-displace": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-dither": { - "version": "0.14.0", + "node_modules/@mdx-js/mdx/node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-fisheye": { - "version": "0.14.0", + "node_modules/@mdx-js/react": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", + "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" }, "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "@types/react": ">=16", + "react": ">=16" } }, - "node_modules/@jimp/plugin-flip": { - "version": "0.14.0", + "node_modules/@mdx-js/rollup": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/rollup/-/rollup-3.1.1.tgz", + "integrity": "sha512-v8satFmBB+DqDzYohnm1u2JOvxx6Hl3pUvqzJvfs2Zk/ngZ1aRUhsWpXvwPkNeGN9c2NCm/38H29ZqXQUjf8dw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@mdx-js/mdx": "^3.0.0", + "@rollup/pluginutils": "^5.0.0", + "source-map": "^0.7.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" }, "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-rotate": ">=0.3.5" + "rollup": ">=2" } }, - "node_modules/@jimp/plugin-gaussian": { - "version": "0.14.0", + "node_modules/@mdx-js/rollup/node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@jimp/plugin-invert": { - "version": "0.14.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "node_modules/@mdx-js/rollup/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==", + "license": "MIT" + }, + "node_modules/@mdx-js/rollup/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@mdx-js/rollup/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@jimp/plugin-mask": { - "version": "0.14.0", + "node_modules/@mdx-js/rollup/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@mdx-js/rollup/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/unist": "^3.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-normalize": { - "version": "0.14.0", + "node_modules/@mdx-js/rollup/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-print": { - "version": "0.14.0", + "node_modules/@mdx-js/rollup/node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0", - "load-bmfont": "^1.4.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blit": ">=0.3.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@jimp/plugin-resize": { - "version": "0.14.0", - "license": "MIT", + "node_modules/@metamask/eth-json-rpc-provider": { + "version": "1.0.1", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@metamask/json-rpc-engine": "^7.0.0", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^5.0.1" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@jimp/plugin-rotate": { - "version": "0.14.0", - "license": "MIT", + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/safe-event-emitter": { + "version": "3.1.1", + "license": "ISC", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/utils": { + "version": "5.0.2", + "license": "ISC", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@ethereumjs/tx": "^4.1.2", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "semver": "^7.3.8", + "superstruct": "^1.0.3" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blit": ">=0.3.5", - "@jimp/plugin-crop": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@jimp/plugin-scale": { - "version": "0.14.0", - "license": "MIT", + "node_modules/@metamask/eth-json-rpc-provider/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "yallist": "^4.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5" + "engines": { + "node": ">=10" } }, - "node_modules/@jimp/plugin-shadow": { - "version": "0.14.0", - "license": "MIT", + "node_modules/@metamask/eth-json-rpc-provider/node_modules/semver": { + "version": "7.6.0", + "license": "ISC", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "lru-cache": "^6.0.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blur": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@jimp/plugin-threshold": { - "version": "0.14.0", - "license": "MIT", + "node_modules/@metamask/eth-json-rpc-provider/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/@metamask/json-rpc-engine": { + "version": "7.3.3", + "license": "ISC", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0" + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-color": ">=0.8.0", - "@jimp/plugin-resize": ">=0.8.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@jimp/plugins": { - "version": "0.14.0", - "license": "MIT", + "node_modules/@metamask/json-rpc-engine/node_modules/@metamask/safe-event-emitter": { + "version": "3.1.1", + "license": "ISC", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", + "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", + "license": "ISC", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/plugin-blit": "^0.14.0", - "@jimp/plugin-blur": "^0.14.0", - "@jimp/plugin-circle": "^0.14.0", - "@jimp/plugin-color": "^0.14.0", - "@jimp/plugin-contain": "^0.14.0", - "@jimp/plugin-cover": "^0.14.0", - "@jimp/plugin-crop": "^0.14.0", - "@jimp/plugin-displace": "^0.14.0", - "@jimp/plugin-dither": "^0.14.0", - "@jimp/plugin-fisheye": "^0.14.0", - "@jimp/plugin-flip": "^0.14.0", - "@jimp/plugin-gaussian": "^0.14.0", - "@jimp/plugin-invert": "^0.14.0", - "@jimp/plugin-mask": "^0.14.0", - "@jimp/plugin-normalize": "^0.14.0", - "@jimp/plugin-print": "^0.14.0", - "@jimp/plugin-resize": "^0.14.0", - "@jimp/plugin-rotate": "^0.14.0", - "@jimp/plugin-scale": "^0.14.0", - "@jimp/plugin-shadow": "^0.14.0", - "@jimp/plugin-threshold": "^0.14.0", - "timm": "^1.6.1" + "@metamask/json-rpc-engine": "^8.0.2", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0", + "readable-stream": "^3.6.2" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@jimp/png": { - "version": "0.14.0", - "license": "MIT", + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/json-rpc-engine": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", + "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", + "license": "ISC", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.14.0", - "pngjs": "^3.3.3" + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@jimp/tiff": { - "version": "0.14.0", - "license": "MIT", + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/safe-event-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.2.tgz", + "integrity": "sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==", + "license": "ISC", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/object-multiplex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@metamask/object-multiplex/-/object-multiplex-2.1.0.tgz", + "integrity": "sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==", + "license": "ISC", "dependencies": { - "@babel/runtime": "^7.7.2", - "utif": "^2.0.1" + "once": "^1.4.0", + "readable-stream": "^3.6.2" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": "^16.20 || ^18.16 || >=20" } }, - "node_modules/@jimp/types": { - "version": "0.14.0", + "node_modules/@metamask/onboarding": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@metamask/onboarding/-/onboarding-1.0.1.tgz", + "integrity": "sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/bmp": "^0.14.0", - "@jimp/gif": "^0.14.0", - "@jimp/jpeg": "^0.14.0", - "@jimp/png": "^0.14.0", - "@jimp/tiff": "^0.14.0", - "timm": "^1.6.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "bowser": "^2.9.0" } }, - "node_modules/@jimp/utils": { - "version": "0.14.0", + "node_modules/@metamask/providers": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", + "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "regenerator-runtime": "^0.13.3" + "@metamask/json-rpc-engine": "^8.0.1", + "@metamask/json-rpc-middleware-stream": "^7.0.1", + "@metamask/object-multiplex": "^2.0.0", + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.1.1", + "@metamask/utils": "^8.3.0", + "detect-browser": "^5.2.0", + "extension-port-stream": "^3.0.0", + "fast-deep-equal": "^3.1.3", + "is-stream": "^2.0.0", + "readable-stream": "^3.6.2", + "webextension-polyfill": "^0.10.0" + }, + "engines": { + "node": "^18.18 || >=20" } }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "node_modules/@metamask/providers/node_modules/@metamask/json-rpc-engine": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", + "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", + "license": "ISC", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" + }, + "engines": { + "node": ">=16.0.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==", + "node_modules/@metamask/providers/node_modules/@metamask/safe-event-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.2.tgz", + "integrity": "sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==", + "license": "ISC", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/rpc-errors": { + "version": "6.2.1", "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" + "@metamask/utils": "^8.3.0", + "fast-safe-stringify": "^2.0.6" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", + "node_modules/@metamask/safe-event-emitter": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/@metamask/superstruct": { + "version": "3.1.0", "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=16.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "license": "MIT", + "node_modules/@metamask/utils": { + "version": "8.4.0", + "license": "ISC", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@ethereumjs/tx": "^4.2.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "superstruct": "^1.0.3", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.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==", - "license": "MIT" + "node_modules/@metamask/utils/node_modules/@scure/base": { + "version": "1.1.3", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "node_modules/@metamask/utils/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@juggle/resize-observer": { - "version": "3.3.1", - "license": "Apache-2.0" - }, - "node_modules/@kurkle/color": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", - "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==" - }, - "node_modules/@lezer/common": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.1.tgz", - "integrity": "sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==", - "license": "MIT" - }, - "node_modules/@lezer/css": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.3.1.tgz", - "integrity": "sha512-PYAKeUVBo3HFThruRyp/iK91SwiZJnzXh8QzkQlwijB5y+N5iB28+iLk78o2zmKqqV0uolNhCwFqB8LA7b0Svg==", - "license": "MIT", + "node_modules/@metamask/utils/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@lezer/highlight": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", - "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", + "node_modules/@metamask/utils/node_modules/uuid": { + "version": "9.0.1", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", - "dependencies": { - "@lezer/common": "^1.3.0" + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@lezer/html": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.13.tgz", - "integrity": "sha512-oI7n6NJml729m7pjm9lvLvmXbdoMoi2f+1pwSDJkl9d68zGr7a9Btz8NdHTGQZtW2DA25ybeuv/SyDb9D5tseg==", - "license": "MIT", + "node_modules/@metamask/utils/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/@metaplex-foundation/beet": { + "version": "0.7.2", + "license": "Apache-2.0", "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" + "ansicolors": "^0.3.2", + "assert": "^2.1.0", + "bn.js": "^5.2.0", + "debug": "^4.3.3" } }, - "node_modules/@lezer/javascript": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.5.4.tgz", - "integrity": "sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==", - "license": "MIT", + "node_modules/@metaplex-foundation/beet-solana": { + "version": "0.4.1", + "license": "Apache-2.0", "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.1.3", - "@lezer/lr": "^1.3.0" + "@metaplex-foundation/beet": ">=0.1.0", + "@solana/web3.js": "^1.56.2", + "bs58": "^5.0.0", + "debug": "^4.3.4" } }, - "node_modules/@lezer/json": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.3.tgz", - "integrity": "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==", + "node_modules/@metaplex-foundation/beet-solana/node_modules/base-x": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/@metaplex-foundation/beet-solana/node_modules/bs58": { + "version": "5.0.0", "license": "MIT", "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" + "base-x": "^4.0.0" } }, - "node_modules/@lezer/lr": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", - "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", + "node_modules/@metaplex-foundation/beet/node_modules/assert": { + "version": "2.1.0", "license": "MIT", "dependencies": { - "@lezer/common": "^1.0.0" + "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/@lezer/xml": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.6.tgz", - "integrity": "sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } + "node_modules/@metaplex-foundation/cusper": { + "version": "0.0.2", + "license": "Apache-2.0" }, - "node_modules/@lezer/yaml": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.4.tgz", - "integrity": "sha512-2lrrHqxalACEbxIbsjhqGpSW8kWpUKuY6RHgnSAFZa6qK62wvnPxA8hGOwOoDbwHcOFs5M4o27mjGu+P7TvBmw==", - "license": "MIT", + "node_modules/@metaplex-foundation/mpl-token-metadata": { + "version": "3.2.1", + "license": "Apache-2.0", "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.4.0" + "@metaplex-foundation/mpl-toolbox": "^0.9.4" + }, + "peerDependencies": { + "@metaplex-foundation/umi": ">= 0.8.2 < 1" } }, - "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", - "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==", - "license": "BSD-3-Clause" + "node_modules/@metaplex-foundation/mpl-toolbox": { + "version": "0.9.4", + "license": "Apache-2.0", + "peerDependencies": { + "@metaplex-foundation/umi": ">= 0.8.2 < 1" + } }, - "node_modules/@lit/reactive-element": { - "version": "1.6.3", - "license": "BSD-3-Clause", + "node_modules/@metaplex-foundation/umi": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi/-/umi-1.2.0.tgz", + "integrity": "sha512-SIcDO8O9gRYL2C5ntsedVfpRBICK7ZoMB5ap8P5N2TEJ/QC205UxDzhdQsImdWQG1DQ7XJsDXWiiFzccpFZcSg==", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" + "@metaplex-foundation/umi-options": "^1.2.0", + "@metaplex-foundation/umi-public-keys": "^1.2.0", + "@metaplex-foundation/umi-serializers": "^1.2.0" } }, - "node_modules/@malept/cross-spawn-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", - "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/malept" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" - } - ], - "license": "Apache-2.0", + "node_modules/@metaplex-foundation/umi-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-options/-/umi-options-1.2.0.tgz", + "integrity": "sha512-dNEfhDg9PUoosU46SnmB8PzdhgAF7qJ0RUkn5keLKU2s0Xy2DKZVtdaELTfMZZckhaDvOzRTKdphTRrEwIjbyw==" + }, + "node_modules/@metaplex-foundation/umi-public-keys": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-public-keys/-/umi-public-keys-1.2.0.tgz", + "integrity": "sha512-UZISKLcrsAQ3M17JCkNIXtacoKHpSNEgXHGcxyJp7zfJkdLDq5Qlvd7KeyZoYC7A7XuA3lAlVY14qhhIwC5p5w==", "dependencies": { - "cross-spawn": "^7.0.1" - }, - "engines": { - "node": ">= 12.13.0" + "@metaplex-foundation/umi-serializers-encodings": "^1.2.0" } }, - "node_modules/@malept/cross-spawn-promise/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, - "license": "MIT", + "node_modules/@metaplex-foundation/umi-serializers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-serializers/-/umi-serializers-1.2.0.tgz", + "integrity": "sha512-7ivgqVP6ZouN13EBN5aMirjoX2x0Ja7IuzrBeIa8YYrxGcy7YQp+fUj4YCPtMClzsETgJ5jL8EZnZPpZX4dxaQ==", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" + "@metaplex-foundation/umi-options": "^1.2.0", + "@metaplex-foundation/umi-public-keys": "^1.2.0", + "@metaplex-foundation/umi-serializers-core": "^1.2.0", + "@metaplex-foundation/umi-serializers-encodings": "^1.2.0", + "@metaplex-foundation/umi-serializers-numbers": "^1.2.0" } }, - "node_modules/@malept/cross-spawn-promise/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, - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/@metaplex-foundation/umi-serializers-core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-serializers-core/-/umi-serializers-core-1.2.0.tgz", + "integrity": "sha512-9scqhjkjW8tJ+/q1veh73jQjo9vvgTN5iN4OfOYFMtFVTT8/y2AVxGmniV/DbQC5wIgx7WTZkAnJmqOMs2904Q==" }, - "node_modules/@malept/cross-spawn-promise/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, - "license": "MIT", + "node_modules/@metaplex-foundation/umi-serializers-encodings": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-serializers-encodings/-/umi-serializers-encodings-1.2.0.tgz", + "integrity": "sha512-Yo3TPI9ei8Z5eTJ1UeT12+pYaQ1zMSn57/M/3r4WAOTFtTCOuKsDRKg8eBQCpBuffH8yGUbRs0poy1n25IzeNg==", "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" + "@metaplex-foundation/umi-serializers-core": "^1.2.0" } }, - "node_modules/@malept/cross-spawn-promise/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/@metaplex-foundation/umi-serializers-numbers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-serializers-numbers/-/umi-serializers-numbers-1.2.0.tgz", + "integrity": "sha512-ZBVb498GHYlfB+1JzOcczJ1LrCYWr0IiiXjeEAf+64mSSp3IFwK7D3rjL6RZ05bjxBzuWDJVRzI+mFVFC9UgtQ==", + "dependencies": { + "@metaplex-foundation/umi-serializers-core": "^1.2.0" } }, - "node_modules/@malept/flatpak-bundler": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", - "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", - "dev": true, + "node_modules/@motionone/animation": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.18.0.tgz", + "integrity": "sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==", "license": "MIT", "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^9.0.0", - "lodash": "^4.17.15", - "tmp-promise": "^3.0.2" - }, - "engines": { - "node": ">= 10.0.0" + "@motionone/easing": "^10.18.0", + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" } }, - "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, + "node_modules/@motionone/dom": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.18.0.tgz", + "integrity": "sha512-bKLP7E0eyO4B2UaHBBN55tnppwRnaE3KFfh3Ps9HhnAkar3Cb69kUCJY9as8LrccVYKgHA+JY5dOQqJLOPhF5A==", "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "@motionone/animation": "^10.18.0", + "@motionone/generators": "^10.18.0", + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" } }, - "node_modules/@malept/flatpak-bundler/node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "dev": true, + "node_modules/@motionone/easing": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz", + "integrity": "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==", "license": "MIT", "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" } }, - "node_modules/@malept/flatpak-bundler/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, + "node_modules/@motionone/generators": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.18.0.tgz", + "integrity": "sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==", "license": "MIT", - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" } }, - "node_modules/@manypkg/find-root": { - "version": "1.1.0", + "node_modules/@motionone/svelte": { + "version": "10.16.4", + "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.4.tgz", + "integrity": "sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" + "@motionone/dom": "^10.16.4", + "tslib": "^2.3.1" } }, - "node_modules/@manypkg/find-root/node_modules/@types/node": { - "version": "12.20.55", + "node_modules/@motionone/types": { + "version": "10.17.1", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz", + "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==", "license": "MIT" }, - "node_modules/@manypkg/get-packages": { - "version": "1.1.3", + "node_modules/@motionone/utils": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.18.0.tgz", + "integrity": "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.5.5", - "@changesets/types": "^4.0.1", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" + "@motionone/types": "^10.17.1", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" } }, - "node_modules/@manypkg/get-packages/node_modules/@changesets/types": { - "version": "4.1.0", - "license": "MIT" - }, - "node_modules/@marijn/find-cluster-break": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", - "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", - "license": "MIT" - }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", - "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "node_modules/@motionone/vue": { + "version": "10.16.4", + "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.4.tgz", + "integrity": "sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==", + "deprecated": "Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion", "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "acorn": "^8.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@motionone/dom": "^10.16.4", + "tslib": "^2.3.1" } }, - "node_modules/@mdx-js/mdx/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==", - "license": "MIT" + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@mdx-js/mdx/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@mdx-js/mdx/node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@mdx-js/mdx/node_modules/@types/unist": { + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@mdx-js/mdx/node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@mswjs/cookies": { + "version": "0.2.2", + "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@types/set-cookie-parser": "^2.4.0", + "set-cookie-parser": "^2.4.6" }, "engines": { - "node": ">=0.4.0" + "node": ">=14" } }, - "node_modules/@mdx-js/mdx/node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "node_modules/@mswjs/interceptors": { + "version": "0.17.10", + "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "@open-draft/until": "^1.0.3", + "@types/debug": "^4.1.7", + "@xmldom/xmldom": "^0.8.3", + "debug": "^4.3.3", + "headers-polyfill": "3.2.5", + "outvariant": "^1.2.1", + "strict-event-emitter": "^0.2.4", + "web-encoding": "^1.1.5" + }, + "engines": { + "node": ">=14" } }, - "node_modules/@mdx-js/mdx/node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "node_modules/@mswjs/interceptors/node_modules/events": { + "version": "3.3.0", + "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">=0.8.x" } }, - "node_modules/@mdx-js/mdx/node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "node_modules/@mswjs/interceptors/node_modules/strict-event-emitter": { + "version": "0.2.8", + "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "dependencies": { + "events": "^3.3.0" } }, - "node_modules/@mdx-js/mdx/node_modules/estree-util-visit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", - "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", - "license": "MIT", + "node_modules/@multiformats/base-x": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/@multiformats/murmur3": { + "version": "1.1.3", + "license": "(Apache-2.0 AND MIT)", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "multiformats": "^9.5.4", + "murmurhash3js-revisited": "^3.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "license": "Apache-2.0", "dependencies": { - "@types/estree": "^1.0.0" + "bs58": "^5.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/@mysten/bcs/node_modules/base-x": { + "version": "4.0.0", + "license": "MIT" }, - "node_modules/@mdx-js/mdx/node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "node_modules/@mysten/bcs/node_modules/bs58": { + "version": "5.0.0", "license": "MIT", "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/@mdx-js/mdx/node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "base-x": "^4.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/@mdx-js/mdx/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "license": "MIT", - "engines": { - "node": ">=12" + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "license": "Apache-2.0", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=16" } }, - "node_modules/@mdx-js/mdx/node_modules/mdast-util-from-markdown": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", - "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "node_modules/@nestjs/common": { + "version": "8.2.6", + "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" + "axios": "0.24.0", + "iterare": "1.2.1", + "tslib": "2.3.1", + "uuid": "8.3.2" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "cache-manager": "*", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "cache-manager": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } } }, - "node_modules/@mdx-js/mdx/node_modules/mdast-util-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", - "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "node_modules/@nestjs/common/node_modules/axios": { + "version": "0.24.0", + "dev": true, "license": "MIT", "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "follow-redirects": "^1.14.4" } }, - "node_modules/@mdx-js/mdx/node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "node_modules/@nestjs/common/node_modules/follow-redirects": { + "version": "1.15.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" + "engines": { + "node": ">=4.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/@mdx-js/mdx/node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "node_modules/@nestjs/common/node_modules/tslib": { + "version": "2.3.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/@nestjs/common/node_modules/uuid": { + "version": "8.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@nestjs/core": { + "version": "8.2.6", + "dev": true, + "hasInstallScript": true, "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "object-hash": "2.2.0", + "path-to-regexp": "3.2.0", + "tslib": "2.3.1", + "uuid": "8.3.2" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0", + "@nestjs/microservices": "^8.0.0", + "@nestjs/platform-express": "^8.0.0", + "@nestjs/websockets": "^8.0.0", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } } }, - "node_modules/@mdx-js/mdx/node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "node_modules/@nestjs/core/node_modules/tslib": { + "version": "2.3.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/@nestjs/core/node_modules/uuid": { + "version": "8.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@next/eslint-plugin-next": { + "version": "13.5.6", "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" + "glob": "7.1.7" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob": { + "version": "7.1.7", + "license": "ISC", + "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": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@mdx-js/mdx/node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, + "eslint-scope": "5.1.1" + } + }, + "node_modules/@noble/ciphers": { + "version": "0.4.1", + "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@mdx-js/mdx/node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "node_modules/@noble/curves": { + "version": "1.2.0", "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" + "@noble/hashes": "1.3.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@mdx-js/mdx/node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "node_modules/@noble/hashes": { + "version": "1.3.2", "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" + "engines": { + "node": ">= 16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "node_modules/@noble/secp256k1": { + "version": "1.7.0", "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "individual", + "url": "https://paulmillr.com/funding/" } ], + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", "license": "MIT", "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "engines": { + "node": ">= 8" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdx-expression": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", - "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", - "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", - "license": "MIT", + "node_modules/@npmcli/config": { + "version": "6.4.0", + "dev": true, + "license": "ISC", "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" + "@npmcli/map-workspaces": "^3.0.2", + "ci-info": "^3.8.0", + "ini": "^4.1.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdx-md": { + "node_modules/@npmcli/config/node_modules/abbrev": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", - "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", - "license": "MIT", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/config/node_modules/ini": { + "version": "4.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/config/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "micromark-util-types": "^2.0.0" + "yallist": "^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=10" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdxjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", - "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", - "license": "MIT", + "node_modules/@npmcli/config/node_modules/nopt": { + "version": "7.2.0", + "dev": true, + "license": "ISC", "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^3.0.0", - "micromark-extension-mdx-jsx": "^3.0.0", - "micromark-extension-mdx-md": "^2.0.0", - "micromark-extension-mdxjs-esm": "^3.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" + "abbrev": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-extension-mdxjs-esm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", - "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", - "license": "MIT", + "node_modules/@npmcli/config/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" + "lru-cache": "^6.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/config/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "license": "ISC", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/fs/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-factory-mdx-expression": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", - "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/fs/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/@npmcli/git": { + "version": "4.1.0", + "dev": true, + "license": "ISC", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@npmcli/promise-spawn": "^6.0.0", + "lru-cache": "^7.4.4", + "npm-pick-manifest": "^8.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/git/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/git/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/git/node_modules/which": { + "version": "3.0.1", + "dev": true, + "license": "ISC", "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/git/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "dev": true, + "license": "ISC", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/map-workspaces": { + "version": "3.0.4", + "dev": true, + "license": "ISC", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-combine-extensions": { + "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "dev": true, "license": "MIT", "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" + "balanced-match": "^1.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@npmcli/map-workspaces/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/map-workspaces/node_modules/foreground-child": { + "version": "3.1.1", + "dev": true, + "license": "ISC", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-events-to-acorn": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", - "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/map-workspaces/node_modules/glob": { + "version": "10.3.10", + "dev": true, + "license": "ISC", "dependencies": { - "@types/estree": "^1.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" + "node_modules/@npmcli/map-workspaces/node_modules/minipass": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@npmcli/map-workspaces/node_modules/path-key": { + "version": "3.1.1", + "dev": true, "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-subtokenize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@npmcli/map-workspaces/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, "license": "MIT", "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/@mdx-js/mdx/node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/@mdx-js/mdx/node_modules/parse-entities": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", - "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "node_modules/@npmcli/map-workspaces/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">=8" } }, - "node_modules/@mdx-js/mdx/node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/@mdx-js/mdx/node_modules/remark-mdx": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", - "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" + "node_modules/@npmcli/map-workspaces/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@mdx-js/mdx/node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "license": "BSD-3-Clause", "engines": { - "node": ">= 12" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" + "bin": { + "mkdirp": "bin/cmd.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=10" } }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-is": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", - "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", - "license": "MIT", + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", "dependencies": { - "@types/unist": "^3.0.0" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-position-from-estree": { + "node_modules/@npmcli/name-from-folder": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", - "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "6.0.2", + "dev": true, + "license": "ISC", "dependencies": { - "@types/unist": "^3.0.0" + "which": "^3.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-visit": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", - "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", - "license": "MIT", + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "3.0.1", + "dev": true, + "license": "ISC", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" + "isexe": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-visit-parents": { + "node_modules/@npmcli/run-script": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", - "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", - "license": "MIT", + "dev": true, + "license": "ISC", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^6.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^3.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "3.0.1", + "dev": true, + "license": "ISC", "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" + "isexe": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/vfile-message": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", - "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "node_modules/@nsure-ai/web-client-sdk": { + "version": "1.1.92", + "resolved": "https://registry.npmjs.org/@nsure-ai/web-client-sdk/-/web-client-sdk-1.1.92.tgz", + "integrity": "sha512-ofhBJX0z1JdD24dyzZ4Y7kktM0IYIAxJvVICA0JoQ/Hjc2s0MNfy8jfHQN4JG7tEtODi7wkUA9rDnnvu4gDe4w==", + "license": "ISC" + }, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", + "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" } }, - "node_modules/@mdx-js/react": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", - "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", + "node_modules/@nuxtjs/opencollective/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { - "@types/mdx": "^2.0.0" + "color-convert": "^2.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@mdx-js/rollup": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@mdx-js/rollup/-/rollup-3.1.1.tgz", - "integrity": "sha512-v8satFmBB+DqDzYohnm1u2JOvxx6Hl3pUvqzJvfs2Zk/ngZ1aRUhsWpXvwPkNeGN9c2NCm/38H29ZqXQUjf8dw==", + "node_modules/@nuxtjs/opencollective/node_modules/chalk": { + "version": "4.1.2", + "dev": true, "license": "MIT", "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@rollup/pluginutils": "^5.0.0", - "source-map": "^0.7.0", - "vfile": "^6.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=10" }, - "peerDependencies": { - "rollup": ">=2" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@mdx-js/rollup/node_modules/@rollup/pluginutils": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", - "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "node_modules/@nuxtjs/opencollective/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@mdx-js/rollup/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==", + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "dev": true, "license": "MIT" }, - "node_modules/@mdx-js/rollup/node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "dev": true }, - "node_modules/@mdx-js/rollup/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dev": true, + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" } }, - "node_modules/@mdx-js/rollup/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" - } + "node_modules/@open-draft/until": { + "version": "1.0.3", + "dev": true, + "license": "MIT" }, - "node_modules/@mdx-js/rollup/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", + "node_modules/@openapitools/openapi-generator-cli": { + "version": "2.4.26", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@types/unist": "^3.0.0" + "@nestjs/common": "8.2.6", + "@nestjs/core": "8.2.6", + "@nuxtjs/opencollective": "0.3.2", + "chalk": "4.1.2", + "commander": "8.3.0", + "compare-versions": "3.6.0", + "concurrently": "6.5.1", + "console.table": "0.10.0", + "fs-extra": "10.0.0", + "glob": "7.1.6", + "inquirer": "8.2.0", + "lodash": "4.17.21", + "reflect-metadata": "0.1.13", + "rxjs": "7.5.2", + "tslib": "2.0.3" + }, + "bin": { + "openapi-generator-cli": "main.js" + }, + "engines": { + "node": ">=10.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/openapi_generator" } }, - "node_modules/@mdx-js/rollup/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "node_modules/@openapitools/openapi-generator-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@mdx-js/rollup/node_modules/vfile-message": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", - "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "node_modules/@openapitools/openapi-generator-cli/node_modules/chalk": { + "version": "4.1.2", + "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@metamask/eth-json-rpc-provider": { - "version": "1.0.1", + "node_modules/@openapitools/openapi-generator-cli/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/json-rpc-engine": "^7.0.0", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^5.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/safe-event-emitter": { - "version": "3.1.1", - "license": "ISC", - "engines": { - "node": ">=12.0.0" + "node": ">=8" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/utils": { - "version": "5.0.2", + "node_modules/@openapitools/openapi-generator-cli/node_modules/cliui": { + "version": "7.0.4", + "dev": true, "license": "ISC", "dependencies": { - "@ethereumjs/tx": "^4.1.2", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "semver": "^7.3.8", - "superstruct": "^1.0.3" - }, - "engines": { - "node": ">=14.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/commander": { + "version": "8.3.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 12" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/semver": { - "version": "7.6.0", - "license": "ISC", + "node_modules/@openapitools/openapi-generator-cli/node_modules/concurrently": { + "version": "6.5.1", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "chalk": "^4.1.0", + "date-fns": "^2.16.1", + "lodash": "^4.17.21", + "rxjs": "^6.6.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^16.2.0" }, "bin": { - "semver": "bin/semver.js" + "concurrently": "bin/concurrently.js" }, "engines": { - "node": ">=10" + "node": ">=10.0.0" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@metamask/json-rpc-engine": { - "version": "7.3.3", - "license": "ISC", + "node_modules/@openapitools/openapi-generator-cli/node_modules/concurrently/node_modules/rxjs": { + "version": "6.6.7", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0" + "tslib": "^1.9.0" }, "engines": { - "node": ">=16.0.0" + "npm": ">=2.0.0" } }, - "node_modules/@metamask/json-rpc-engine/node_modules/@metamask/safe-event-emitter": { - "version": "3.1.1", - "license": "ISC", + "node_modules/@openapitools/openapi-generator-cli/node_modules/concurrently/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/fs-extra": { + "version": "10.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": ">=12.0.0" + "node": ">=12" } }, - "node_modules/@metamask/json-rpc-middleware-stream": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", - "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", + "node_modules/@openapitools/openapi-generator-cli/node_modules/glob": { + "version": "7.1.6", + "dev": true, "license": "ISC", "dependencies": { - "@metamask/json-rpc-engine": "^8.0.2", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0", - "readable-stream": "^3.6.2" + "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": ">=16.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/json-rpc-engine": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", - "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", - "license": "ISC", + "node_modules/@openapitools/openapi-generator-cli/node_modules/inquirer": { + "version": "8.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.2.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, "engines": { - "node": ">=16.0.0" + "node": ">=8.0.0" } }, - "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/safe-event-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.2.tgz", - "integrity": "sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==", - "license": "ISC", + "node_modules/@openapitools/openapi-generator-cli/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/rxjs": { + "version": "7.5.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/rxjs/node_modules/tslib": { + "version": "2.6.2", + "dev": true, + "license": "0BSD" + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/tslib": { + "version": "2.0.3", + "dev": true, + "license": "0BSD" + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12.0.0" + "node": ">= 10.0.0" } }, - "node_modules/@metamask/object-multiplex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@metamask/object-multiplex/-/object-multiplex-2.1.0.tgz", - "integrity": "sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==", - "license": "ISC", + "node_modules/@openapitools/openapi-generator-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "once": "^1.4.0", - "readable-stream": "^3.6.2" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@metamask/onboarding": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@metamask/onboarding/-/onboarding-1.0.1.tgz", - "integrity": "sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==", + "node_modules/@openapitools/openapi-generator-cli/node_modules/yargs": { + "version": "16.2.0", + "dev": true, "license": "MIT", "dependencies": { - "bowser": "^2.9.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@metamask/providers": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", - "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", - "license": "MIT", + "node_modules/@opencensus/core": { + "version": "0.0.9", + "license": "Apache-2.0", "dependencies": { - "@metamask/json-rpc-engine": "^8.0.1", - "@metamask/json-rpc-middleware-stream": "^7.0.1", - "@metamask/object-multiplex": "^2.0.0", - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.1.1", - "@metamask/utils": "^8.3.0", - "detect-browser": "^5.2.0", - "extension-port-stream": "^3.0.0", - "fast-deep-equal": "^3.1.3", - "is-stream": "^2.0.0", - "readable-stream": "^3.6.2", - "webextension-polyfill": "^0.10.0" + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" }, "engines": { - "node": "^18.18 || >=20" + "node": ">=6.0" } }, - "node_modules/@metamask/providers/node_modules/@metamask/json-rpc-engine": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", - "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", + "node_modules/@opencensus/core/node_modules/semver": { + "version": "5.7.2", "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@opencensus/propagation-b3": { + "version": "0.0.8", + "license": "Apache-2.0", "dependencies": { - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0" + "@opencensus/core": "^0.0.8", + "uuid": "^3.2.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.0" } }, - "node_modules/@metamask/providers/node_modules/@metamask/safe-event-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.2.tgz", - "integrity": "sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==", + "node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": { + "version": "0.0.8", + "license": "Apache-2.0", + "dependencies": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@opencensus/propagation-b3/node_modules/semver": { + "version": "5.7.2", "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.3.0", + "license": "Apache-2.0", "engines": { - "node": ">=12.0.0" + "node": ">=8.0.0" } }, - "node_modules/@metamask/rpc-errors": { - "version": "6.2.1", - "license": "MIT", + "node_modules/@opentelemetry/api-metrics": { + "version": "0.31.0", + "license": "Apache-2.0", "dependencies": { - "@metamask/utils": "^8.3.0", - "fast-safe-stringify": "^2.0.6" + "@opentelemetry/api": "^1.0.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=14" } }, - "node_modules/@metamask/safe-event-emitter": { - "version": "2.0.0", - "license": "ISC" + "node_modules/@opentelemetry/context-async-hooks": { + "version": "1.8.0", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.4.0" + } }, - "node_modules/@metamask/superstruct": { - "version": "3.1.0", - "license": "MIT", + "node_modules/@opentelemetry/core": { + "version": "1.17.1", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.17.1" + }, "engines": { - "node": ">=16.0.0" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.7.0" } }, - "node_modules/@metamask/utils": { - "version": "8.4.0", - "license": "ISC", + "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.17.1", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation": { + "version": "0.31.0", + "license": "Apache-2.0", "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "superstruct": "^1.0.3", - "uuid": "^9.0.1" + "@opentelemetry/api-metrics": "0.31.0", + "require-in-the-middle": "^5.0.3", + "semver": "^7.3.2", + "shimmer": "^1.2.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@metamask/utils/node_modules/@scure/base": { - "version": "1.1.3", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" + "node_modules/@opentelemetry/instrumentation-bunyan": { + "version": "0.29.0", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.29.2", + "@types/bunyan": "1.8.7" + }, + "engines": { + "node": ">=8.12.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@metamask/utils/node_modules/lru-cache": { + "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/api-metrics": { + "version": "0.29.2", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/instrumentation": { + "version": "0.29.2", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-metrics": "0.29.2", + "require-in-the-middle": "^5.0.3", + "semver": "^7.3.2", + "shimmer": "^1.2.1" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/lru-cache": { "version": "6.0.0", "license": "ISC", "dependencies": { @@ -19964,7 +18465,7 @@ "node": ">=10" } }, - "node_modules/@metamask/utils/node_modules/semver": { + "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/semver": { "version": "7.5.4", "license": "ISC", "dependencies": { @@ -19977,816 +18478,626 @@ "node": ">=10" } }, - "node_modules/@metamask/utils/node_modules/uuid": { - "version": "9.0.1", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@metamask/utils/node_modules/yallist": { + "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/yallist": { "version": "4.0.0", "license": "ISC" }, - "node_modules/@metaplex-foundation/beet": { - "version": "0.7.2", + "node_modules/@opentelemetry/instrumentation-express": { + "version": "0.30.0", "license": "Apache-2.0", "dependencies": { - "ansicolors": "^0.3.2", - "assert": "^2.1.0", - "bn.js": "^5.2.0", - "debug": "^4.3.3" + "@opentelemetry/core": "^1.0.0", + "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/semantic-conventions": "^1.0.0", + "@types/express": "4.17.13" + }, + "engines": { + "node": ">=8.12.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@metaplex-foundation/beet-solana": { - "version": "0.4.1", + "node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/api-metrics": { + "version": "0.29.2", "license": "Apache-2.0", "dependencies": { - "@metaplex-foundation/beet": ">=0.1.0", - "@solana/web3.js": "^1.56.2", - "bs58": "^5.0.0", - "debug": "^4.3.4" + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=8.12.0" } }, - "node_modules/@metaplex-foundation/beet-solana/node_modules/base-x": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/@metaplex-foundation/beet-solana/node_modules/bs58": { - "version": "5.0.0", - "license": "MIT", + "node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/instrumentation": { + "version": "0.29.2", + "license": "Apache-2.0", "dependencies": { - "base-x": "^4.0.0" + "@opentelemetry/api-metrics": "0.29.2", + "require-in-the-middle": "^5.0.3", + "semver": "^7.3.2", + "shimmer": "^1.2.1" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@metaplex-foundation/beet/node_modules/assert": { - "version": "2.1.0", + "node_modules/@opentelemetry/instrumentation-express/node_modules/@types/express": { + "version": "4.17.13", "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" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "node_modules/@metaplex-foundation/cusper": { - "version": "0.0.2", - "license": "Apache-2.0" - }, - "node_modules/@metaplex-foundation/mpl-token-metadata": { - "version": "3.2.1", - "license": "Apache-2.0", + "node_modules/@opentelemetry/instrumentation-express/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", "dependencies": { - "@metaplex-foundation/mpl-toolbox": "^0.9.4" + "yallist": "^4.0.0" }, - "peerDependencies": { - "@metaplex-foundation/umi": ">= 0.8.2 < 1" - } - }, - "node_modules/@metaplex-foundation/mpl-toolbox": { - "version": "0.9.4", - "license": "Apache-2.0", - "peerDependencies": { - "@metaplex-foundation/umi": ">= 0.8.2 < 1" + "engines": { + "node": ">=10" } }, - "node_modules/@metaplex-foundation/umi": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi/-/umi-1.2.0.tgz", - "integrity": "sha512-SIcDO8O9gRYL2C5ntsedVfpRBICK7ZoMB5ap8P5N2TEJ/QC205UxDzhdQsImdWQG1DQ7XJsDXWiiFzccpFZcSg==", + "node_modules/@opentelemetry/instrumentation-express/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", "dependencies": { - "@metaplex-foundation/umi-options": "^1.2.0", - "@metaplex-foundation/umi-public-keys": "^1.2.0", - "@metaplex-foundation/umi-serializers": "^1.2.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@metaplex-foundation/umi-http-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-http-fetch/-/umi-http-fetch-1.4.1.tgz", - "integrity": "sha512-ItvPkRPTXWH6YeBB7WTS3qKCDVrjEhGpb+fCBypzCkdXvS9zRwN+I/I6IcB+GJnEFdTIip8+XSeWMOrW8ZDCkQ==", + "node_modules/@opentelemetry/instrumentation-express/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/@opentelemetry/instrumentation-http": { + "version": "0.31.0", + "license": "Apache-2.0", "dependencies": { - "node-fetch": "^2.6.7" + "@opentelemetry/core": "1.5.0", + "@opentelemetry/instrumentation": "0.31.0", + "@opentelemetry/semantic-conventions": "1.5.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">=14" }, "peerDependencies": { - "@metaplex-foundation/umi": "^1.4.1" + "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@metaplex-foundation/umi-http-fetch/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==", + "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { + "version": "1.5.0", + "license": "Apache-2.0", "dependencies": { - "whatwg-url": "^5.0.0" + "@opentelemetry/semantic-conventions": "1.5.0" }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=14" }, "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "@opentelemetry/api": ">=1.0.0 <1.2.0" } }, - "node_modules/@metaplex-foundation/umi-http-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/@metaplex-foundation/umi-http-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==" - }, - "node_modules/@metaplex-foundation/umi-http-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==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.5.0", + "license": "Apache-2.0", + "engines": { + "node": ">=14" } }, - "node_modules/@metaplex-foundation/umi-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-options/-/umi-options-1.2.0.tgz", - "integrity": "sha512-dNEfhDg9PUoosU46SnmB8PzdhgAF7qJ0RUkn5keLKU2s0Xy2DKZVtdaELTfMZZckhaDvOzRTKdphTRrEwIjbyw==" - }, - "node_modules/@metaplex-foundation/umi-public-keys": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-public-keys/-/umi-public-keys-1.2.0.tgz", - "integrity": "sha512-UZISKLcrsAQ3M17JCkNIXtacoKHpSNEgXHGcxyJp7zfJkdLDq5Qlvd7KeyZoYC7A7XuA3lAlVY14qhhIwC5p5w==", + "node_modules/@opentelemetry/instrumentation-http/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", "dependencies": { - "@metaplex-foundation/umi-serializers-encodings": "^1.2.0" - } - }, - "node_modules/@metaplex-foundation/umi-rpc-chunk-get-accounts": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-rpc-chunk-get-accounts/-/umi-rpc-chunk-get-accounts-1.4.1.tgz", - "integrity": "sha512-3aHQe/XT9+LZe6f3PHX0RSmUPeDB+3J2l29dQDq80KdGDfL19ELogaP5OutsKB1W3NoXBSwzhuOjtE6gG9aQgA==", - "peerDependencies": { - "@metaplex-foundation/umi": "^1.4.1" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@metaplex-foundation/umi-rpc-web3js": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-rpc-web3js/-/umi-rpc-web3js-1.4.1.tgz", - "integrity": "sha512-xR0KVz6n3RZ3qO8axxIhDCBjki9jj7fYgKijO0zJC85YZeuos6A6vuA14LpTaonWlkD892M3Ua0YC7dUOL9CzQ==", + "node_modules/@opentelemetry/instrumentation-http/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", "dependencies": { - "@metaplex-foundation/umi-web3js-adapters": "^1.4.1" + "lru-cache": "^6.0.0" }, - "peerDependencies": { - "@metaplex-foundation/umi": "^1.4.1", - "@solana/web3.js": "^1.72.0" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@metaplex-foundation/umi-serializer-data-view": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-serializer-data-view/-/umi-serializer-data-view-1.4.1.tgz", - "integrity": "sha512-SSJvXkjj0+Rfz7ZbYD8yMmF/5dRQgqzUW/FkH6si/EiYxyTmRmMaeCo85RZAUSjbJgpz8DFwLmLceptFiTwk5A==", - "peerDependencies": { - "@metaplex-foundation/umi": "^1.4.1" - } + "node_modules/@opentelemetry/instrumentation-http/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" }, - "node_modules/@metaplex-foundation/umi-serializers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-serializers/-/umi-serializers-1.2.0.tgz", - "integrity": "sha512-7ivgqVP6ZouN13EBN5aMirjoX2x0Ja7IuzrBeIa8YYrxGcy7YQp+fUj4YCPtMClzsETgJ5jL8EZnZPpZX4dxaQ==", + "node_modules/@opentelemetry/instrumentation/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", "dependencies": { - "@metaplex-foundation/umi-options": "^1.2.0", - "@metaplex-foundation/umi-public-keys": "^1.2.0", - "@metaplex-foundation/umi-serializers-core": "^1.2.0", - "@metaplex-foundation/umi-serializers-encodings": "^1.2.0", - "@metaplex-foundation/umi-serializers-numbers": "^1.2.0" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@metaplex-foundation/umi-serializers-core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-serializers-core/-/umi-serializers-core-1.2.0.tgz", - "integrity": "sha512-9scqhjkjW8tJ+/q1veh73jQjo9vvgTN5iN4OfOYFMtFVTT8/y2AVxGmniV/DbQC5wIgx7WTZkAnJmqOMs2904Q==" - }, - "node_modules/@metaplex-foundation/umi-serializers-encodings": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-serializers-encodings/-/umi-serializers-encodings-1.2.0.tgz", - "integrity": "sha512-Yo3TPI9ei8Z5eTJ1UeT12+pYaQ1zMSn57/M/3r4WAOTFtTCOuKsDRKg8eBQCpBuffH8yGUbRs0poy1n25IzeNg==", + "node_modules/@opentelemetry/instrumentation/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", "dependencies": { - "@metaplex-foundation/umi-serializers-core": "^1.2.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@metaplex-foundation/umi-serializers-numbers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-serializers-numbers/-/umi-serializers-numbers-1.2.0.tgz", - "integrity": "sha512-ZBVb498GHYlfB+1JzOcczJ1LrCYWr0IiiXjeEAf+64mSSp3IFwK7D3rjL6RZ05bjxBzuWDJVRzI+mFVFC9UgtQ==", - "dependencies": { - "@metaplex-foundation/umi-serializers-core": "^1.2.0" - } + "node_modules/@opentelemetry/instrumentation/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" }, - "node_modules/@metaplex-foundation/umi-transaction-factory-web3js": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-transaction-factory-web3js/-/umi-transaction-factory-web3js-1.4.1.tgz", - "integrity": "sha512-ppygQl2W5NZ1s/w6rBldQekTpgdVKaNEwK4bHRf81+mnJTgsH1iXl72M4y1ARNt3472Fv910vZQo9/XYeRbSaQ==", + "node_modules/@opentelemetry/propagator-b3": { + "version": "1.8.0", + "license": "Apache-2.0", "dependencies": { - "@metaplex-foundation/umi-web3js-adapters": "^1.4.1" + "@opentelemetry/core": "1.8.0" }, - "peerDependencies": { - "@metaplex-foundation/umi": "^1.4.1", - "@solana/web3.js": "^1.72.0" - } - }, - "node_modules/@metaplex-foundation/umi-uploader-irys": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-uploader-irys/-/umi-uploader-irys-1.2.0.tgz", - "integrity": "sha512-yD2+s+fCKQgQCfc3qusc7cSo5H5yjznhimCxJfYjJAtE7kal0MoyIdICoRy1Da4cxo/F8qoDhJ3QzxTvqMu39A==", - "dependencies": { - "@irys/upload": "^0.0.14", - "@irys/upload-solana": "^0.1.7", - "@irys/web-upload": "^0.0.14", - "@irys/web-upload-solana": "^0.1.7", - "@metaplex-foundation/umi-web3js-adapters": "^1.2.0", - "@supercharge/promise-pool": "^3.2.0", - "bignumber.js": "^9.1.2", - "buffer": "^6.0.3" + "engines": { + "node": ">=14" }, "peerDependencies": { - "@metaplex-foundation/umi": "^1.2.0", - "@solana/web3.js": "^1.72.0" + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@metaplex-foundation/umi-web3js-adapters": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-web3js-adapters/-/umi-web3js-adapters-1.4.1.tgz", - "integrity": "sha512-9LkueHDVVljRY83HcaRxGh011zMwrFpvlgb2VrkYlhC7afTM7VrDw4oxdR1zwC80bXyf0D1gyKqi+ANO8QQqtw==", + "node_modules/@opentelemetry/propagator-b3/node_modules/@opentelemetry/core": { + "version": "1.8.0", + "license": "Apache-2.0", "dependencies": { - "buffer": "^6.0.3" + "@opentelemetry/semantic-conventions": "1.8.0" + }, + "engines": { + "node": ">=14" }, "peerDependencies": { - "@metaplex-foundation/umi": "^1.4.1", - "@solana/web3.js": "^1.72.0" - } - }, - "node_modules/@meteora-ag/cp-amm-sdk": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@meteora-ag/cp-amm-sdk/-/cp-amm-sdk-1.1.7.tgz", - "integrity": "sha512-i45rCAqDc8JvdNS+Jp5A+NnabjNiujmTCEb7WQRQH33ZBrNA+/Yec+KJMsfLyXaKaJSo5vITiQKrBgx+/rfsHA==", - "dependencies": { - "@coral-xyz/anchor": "^0.31.0", - "@solana/spl-token": "^0.4.8", - "@solana/web3.js": "^1.95.3", - "@types/bn.js": "^5.1.0", - "chain": "^0.4.0", - "decimal.js": "^10.4.2", - "invariant": "^2.2.4" + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@meteora-ag/cp-amm-sdk/node_modules/@coral-xyz/anchor": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.31.1.tgz", - "integrity": "sha512-QUqpoEK+gi2S6nlYc2atgT2r41TT3caWr/cPUEL8n8Md9437trZ68STknq897b82p5mW0XrTBNOzRbmIRJtfsA==", + "node_modules/@opentelemetry/propagator-jaeger": { + "version": "1.8.0", + "license": "Apache-2.0", "dependencies": { - "@coral-xyz/anchor-errors": "^0.31.1", - "@coral-xyz/borsh": "^0.31.1", - "@noble/hashes": "^1.3.1", - "@solana/web3.js": "^1.69.0", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^6.3.0", - "cross-fetch": "^3.1.5", - "eventemitter3": "^4.0.7", - "pako": "^2.0.3", - "superstruct": "^0.15.4", - "toml": "^3.0.0" + "@opentelemetry/core": "1.8.0" }, "engines": { - "node": ">=17" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@meteora-ag/cp-amm-sdk/node_modules/@coral-xyz/borsh": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.31.1.tgz", - "integrity": "sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw==", + "node_modules/@opentelemetry/propagator-jaeger/node_modules/@opentelemetry/core": { + "version": "1.8.0", + "license": "Apache-2.0", "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" + "@opentelemetry/semantic-conventions": "1.8.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "peerDependencies": { - "@solana/web3.js": "^1.69.0" + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@meteora-ag/cp-amm-sdk/node_modules/@solana/spl-token": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.4.14.tgz", - "integrity": "sha512-u09zr96UBpX4U685MnvQsNzlvw9TiY005hk1vJmJr7gMJldoPG1eYU5/wNEyOA5lkMLiR/gOi9SFD4MefOYEsA==", + "node_modules/@opentelemetry/resources": { + "version": "1.8.0", + "license": "Apache-2.0", "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "@solana/spl-token-group": "^0.0.7", - "@solana/spl-token-metadata": "^0.1.6", - "buffer": "^6.0.3" + "@opentelemetry/core": "1.8.0", + "@opentelemetry/semantic-conventions": "1.8.0" }, "engines": { - "node": ">=16" + "node": ">=14" }, "peerDependencies": { - "@solana/web3.js": "^1.95.5" + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@meteora-ag/cp-amm-sdk/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { + "version": "1.8.0", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.8.0" + }, "engines": { - "node": ">=10" + "node": ">=14" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@meteora-ag/cp-amm-sdk/node_modules/superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - }, - "node_modules/@meteora-ag/dynamic-bonding-curve-sdk": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@meteora-ag/dynamic-bonding-curve-sdk/-/dynamic-bonding-curve-sdk-1.3.8.tgz", - "integrity": "sha512-xdAtwUXi9gcGYLzgkF9hkMZgLaAuYfPBBSP4LNVotu86g6aG956pGUDWifuiWWI8AL0yb1EmwQBKLftAjZYWJg==", + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.8.0", + "license": "Apache-2.0", "dependencies": { - "@coral-xyz/anchor": "^0.31.0", - "@solana/spl-token": "^0.4.13", - "@solana/web3.js": "^1.98.0", - "bn.js": "^5.2.1", - "decimal.js": "^10.5.0" + "@opentelemetry/core": "1.8.0", + "@opentelemetry/resources": "1.8.0", + "@opentelemetry/semantic-conventions": "1.8.0" + }, + "engines": { + "node": ">=14" }, "peerDependencies": { - "typescript": "^5" + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@meteora-ag/dynamic-bonding-curve-sdk/node_modules/@coral-xyz/anchor": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.31.1.tgz", - "integrity": "sha512-QUqpoEK+gi2S6nlYc2atgT2r41TT3caWr/cPUEL8n8Md9437trZ68STknq897b82p5mW0XrTBNOzRbmIRJtfsA==", + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { + "version": "1.8.0", + "license": "Apache-2.0", "dependencies": { - "@coral-xyz/anchor-errors": "^0.31.1", - "@coral-xyz/borsh": "^0.31.1", - "@noble/hashes": "^1.3.1", - "@solana/web3.js": "^1.69.0", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^6.3.0", - "cross-fetch": "^3.1.5", - "eventemitter3": "^4.0.7", - "pako": "^2.0.3", - "superstruct": "^0.15.4", - "toml": "^3.0.0" + "@opentelemetry/semantic-conventions": "1.8.0" }, "engines": { - "node": ">=17" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@meteora-ag/dynamic-bonding-curve-sdk/node_modules/@coral-xyz/borsh": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.31.1.tgz", - "integrity": "sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw==", + "node_modules/@opentelemetry/sdk-trace-node": { + "version": "1.8.0", + "license": "Apache-2.0", "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" + "@opentelemetry/context-async-hooks": "1.8.0", + "@opentelemetry/core": "1.8.0", + "@opentelemetry/propagator-b3": "1.8.0", + "@opentelemetry/propagator-jaeger": "1.8.0", + "@opentelemetry/sdk-trace-base": "1.8.0", + "semver": "^7.3.5" }, "engines": { - "node": ">=10" + "node": ">=14" }, "peerDependencies": { - "@solana/web3.js": "^1.69.0" + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@meteora-ag/dynamic-bonding-curve-sdk/node_modules/@solana/spl-token": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.4.14.tgz", - "integrity": "sha512-u09zr96UBpX4U685MnvQsNzlvw9TiY005hk1vJmJr7gMJldoPG1eYU5/wNEyOA5lkMLiR/gOi9SFD4MefOYEsA==", + "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": { + "version": "1.8.0", + "license": "Apache-2.0", "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "@solana/spl-token-group": "^0.0.7", - "@solana/spl-token-metadata": "^0.1.6", - "buffer": "^6.0.3" + "@opentelemetry/semantic-conventions": "1.8.0" }, "engines": { - "node": ">=16" + "node": ">=14" }, "peerDependencies": { - "@solana/web3.js": "^1.95.5" + "@opentelemetry/api": ">=1.0.0 <1.4.0" } }, - "node_modules/@meteora-ag/dynamic-bonding-curve-sdk/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/@opentelemetry/sdk-trace-node/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@meteora-ag/dynamic-bonding-curve-sdk/node_modules/superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - }, - "node_modules/@meteora-ag/met-lock-sdk": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@meteora-ag/met-lock-sdk/-/met-lock-sdk-1.0.1.tgz", - "integrity": "sha512-v3yGJPI7LucdQnTyY/3LGhKlNtC5B7RcbN9QYliav/s9ToANVqqV7Elpa3gbQ0qUtzCSqmYHOWQ/8dW9/Hq7KA==", + "node_modules/@opentelemetry/sdk-trace-node/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", "dependencies": { - "@coral-xyz/anchor": "^0.31.0", - "@solana/spl-token": "^0.4.13", - "@solana/web3.js": "^1.98.0", - "bn.js": "^5.2.1", - "decimal.js": "^10.5.0" + "lru-cache": "^6.0.0" }, - "peerDependencies": { - "typescript": "^5" - } - }, - "node_modules/@meteora-ag/met-lock-sdk/node_modules/@coral-xyz/anchor": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.31.1.tgz", - "integrity": "sha512-QUqpoEK+gi2S6nlYc2atgT2r41TT3caWr/cPUEL8n8Md9437trZ68STknq897b82p5mW0XrTBNOzRbmIRJtfsA==", - "dependencies": { - "@coral-xyz/anchor-errors": "^0.31.1", - "@coral-xyz/borsh": "^0.31.1", - "@noble/hashes": "^1.3.1", - "@solana/web3.js": "^1.69.0", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^6.3.0", - "cross-fetch": "^3.1.5", - "eventemitter3": "^4.0.7", - "pako": "^2.0.3", - "superstruct": "^0.15.4", - "toml": "^3.0.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=17" + "node": ">=10" } }, - "node_modules/@meteora-ag/met-lock-sdk/node_modules/@coral-xyz/borsh": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.31.1.tgz", - "integrity": "sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw==", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, + "node_modules/@opentelemetry/sdk-trace-node/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.8.0", + "license": "Apache-2.0", "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.69.0" + "node": ">=14" } }, - "node_modules/@meteora-ag/met-lock-sdk/node_modules/@solana/spl-token": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.4.14.tgz", - "integrity": "sha512-u09zr96UBpX4U685MnvQsNzlvw9TiY005hk1vJmJr7gMJldoPG1eYU5/wNEyOA5lkMLiR/gOi9SFD4MefOYEsA==", + "node_modules/@openzeppelin/contract-loader": { + "version": "0.4.0", + "dev": true, + "license": "MIT", "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "@solana/spl-token-group": "^0.0.7", - "@solana/spl-token-metadata": "^0.1.6", - "buffer": "^6.0.3" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.95.5" + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "try-require": "^1.2.1" } }, - "node_modules/@meteora-ag/met-lock-sdk/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@openzeppelin/test-helpers": { + "version": "0.5.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@openzeppelin/contract-loader": "^0.4.0", + "@truffle/contract": "^4.0.35 <4.2.2", + "ansi-colors": "^3.2.3", + "chai": "^4.2.0", + "chai-bn": "^0.2.1", + "ethjs-abi": "^0.2.1", + "lodash.flatten": "^4.4.0", + "semver": "^5.6.0", + "web3": "^1.2.1", + "web3-utils": "^1.2.1" } }, - "node_modules/@meteora-ag/met-lock-sdk/node_modules/superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + "node_modules/@openzeppelin/test-helpers/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } }, - "node_modules/@motionone/animation": { - "version": "10.18.0", - "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.18.0.tgz", - "integrity": "sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==", - "license": "MIT", + "node_modules/@optimizely/js-sdk-datafile-manager": { + "version": "0.5.0", + "license": "Apache-2.0", "dependencies": { - "@motionone/easing": "^10.18.0", - "@motionone/types": "^10.17.1", - "@motionone/utils": "^10.18.0", - "tslib": "^2.3.1" + "@optimizely/js-sdk-logging": "^0.1.0", + "@optimizely/js-sdk-utils": "^0.2.0", + "decompress-response": "^4.2.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "@react-native-community/async-storage": "^1.2.0" } }, - "node_modules/@motionone/dom": { - "version": "10.18.0", - "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.18.0.tgz", - "integrity": "sha512-bKLP7E0eyO4B2UaHBBN55tnppwRnaE3KFfh3Ps9HhnAkar3Cb69kUCJY9as8LrccVYKgHA+JY5dOQqJLOPhF5A==", - "license": "MIT", + "node_modules/@optimizely/js-sdk-event-processor": { + "version": "0.4.0", + "license": "Apache-2.0", "dependencies": { - "@motionone/animation": "^10.18.0", - "@motionone/generators": "^10.18.0", - "@motionone/types": "^10.17.1", - "@motionone/utils": "^10.18.0", - "hey-listen": "^1.0.8", - "tslib": "^2.3.1" + "@optimizely/js-sdk-logging": "^0.1.0", + "@optimizely/js-sdk-utils": "^0.2.0" } }, - "node_modules/@motionone/easing": { - "version": "10.18.0", - "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz", - "integrity": "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==", + "node_modules/@optimizely/js-sdk-logging": { + "version": "0.1.0", "license": "MIT", "dependencies": { - "@motionone/utils": "^10.18.0", - "tslib": "^2.3.1" + "@optimizely/js-sdk-utils": "^0.1.0" } }, - "node_modules/@motionone/generators": { - "version": "10.18.0", - "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.18.0.tgz", - "integrity": "sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==", + "node_modules/@optimizely/js-sdk-logging/node_modules/@optimizely/js-sdk-utils": { + "version": "0.1.0", "license": "MIT", "dependencies": { - "@motionone/types": "^10.17.1", - "@motionone/utils": "^10.18.0", - "tslib": "^2.3.1" + "uuid": "^3.3.2" } }, - "node_modules/@motionone/svelte": { - "version": "10.16.4", - "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.4.tgz", - "integrity": "sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==", + "node_modules/@optimizely/js-sdk-utils": { + "version": "0.2.0", "license": "MIT", "dependencies": { - "@motionone/dom": "^10.16.4", - "tslib": "^2.3.1" + "uuid": "^3.3.2" } }, - "node_modules/@motionone/types": { - "version": "10.17.1", - "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz", - "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==", - "license": "MIT" - }, - "node_modules/@motionone/utils": { - "version": "10.18.0", - "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.18.0.tgz", - "integrity": "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==", - "license": "MIT", + "node_modules/@optimizely/optimizely-sdk": { + "version": "4.0.0", + "license": "Apache-2.0", "dependencies": { - "@motionone/types": "^10.17.1", - "hey-listen": "^1.0.8", - "tslib": "^2.3.1" + "@optimizely/js-sdk-datafile-manager": "^0.5.0", + "@optimizely/js-sdk-event-processor": "^0.4.0", + "@optimizely/js-sdk-logging": "^0.1.0", + "@optimizely/js-sdk-utils": "^0.2.0", + "json-schema": "^0.2.3", + "murmurhash": "0.0.2", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=4.0.0" } }, - "node_modules/@motionone/vue": { - "version": "10.16.4", - "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.4.tgz", - "integrity": "sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==", - "deprecated": "Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion", + "node_modules/@parcel/watcher": { + "version": "2.4.1", "license": "MIT", "dependencies": { - "@motionone/dom": "^10.16.4", - "tslib": "^2.3.1" + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.4.1", + "@parcel/watcher-darwin-arm64": "2.4.1", + "@parcel/watcher-darwin-x64": "2.4.1", + "@parcel/watcher-freebsd-x64": "2.4.1", + "@parcel/watcher-linux-arm-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-musl": "2.4.1", + "@parcel/watcher-linux-x64-glibc": "2.4.1", + "@parcel/watcher-linux-x64-musl": "2.4.1", + "@parcel/watcher-win32-arm64": "2.4.1", + "@parcel/watcher-win32-ia32": "2.4.1", + "@parcel/watcher-win32-x64": "2.4.1" } }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", - "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.4.1", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", - "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", - "cpu": [ - "x64" ], - "optional": true, - "os": [ - "darwin" - ] + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", - "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", - "cpu": [ - "arm" + "node_modules/@parcel/watcher-wasm": { + "version": "2.4.1", + "bundleDependencies": [ + "napi-wasm" ], - "optional": true, - "os": [ - "linux" - ] + "license": "MIT", + "dependencies": { + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "napi-wasm": "^1.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", - "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", - "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", - "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] + "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" }, - "node_modules/@mswjs/cookies": { - "version": "0.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/set-cookie-parser": "^2.4.0", - "set-cookie-parser": "^2.4.6" + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "1.0.3", + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" }, "engines": { - "node": ">=14" + "node": ">=0.10" } }, - "node_modules/@mswjs/interceptors": { - "version": "0.17.10", - "dev": true, + "node_modules/@parcel/watcher/node_modules/node-addon-api": { + "version": "7.1.0", "license": "MIT", - "dependencies": { - "@open-draft/until": "^1.0.3", - "@types/debug": "^4.1.7", - "@xmldom/xmldom": "^0.8.3", - "debug": "^4.3.3", - "headers-polyfill": "3.2.5", - "outvariant": "^1.2.1", - "strict-event-emitter": "^0.2.4", - "web-encoding": "^1.1.5" - }, "engines": { - "node": ">=14" + "node": "^16 || ^18 || >= 20" } }, - "node_modules/@mswjs/interceptors/node_modules/events": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" + "node_modules/@paulmillr/qr": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@paulmillr/qr/-/qr-0.2.1.tgz", + "integrity": "sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==", + "license": "(MIT OR Apache-2.0)", + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@mswjs/interceptors/node_modules/strict-event-emitter": { - "version": "0.2.8", - "dev": true, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.8", "license": "MIT", "dependencies": { - "events": "^3.3.0" - } - }, - "node_modules/@multiformats/base-x": { - "version": "4.0.1", - "license": "MIT" - }, - "node_modules/@multiformats/murmur3": { - "version": "1.1.3", - "license": "(Apache-2.0 AND MIT)", - "dependencies": { - "multiformats": "^9.5.4", - "murmurhash3js-revisited": "^3.0.0" - } - }, - "node_modules/@mysten/bcs": { - "version": "0.11.1", - "license": "Apache-2.0", - "dependencies": { - "bs58": "^5.0.0" + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2" } }, - "node_modules/@mysten/bcs/node_modules/base-x": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/@mysten/bcs/node_modules/bs58": { - "version": "5.0.0", + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", "license": "MIT", "dependencies": { - "base-x": "^4.0.0" + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@mysten/sui.js": { - "version": "0.50.1", - "license": "Apache-2.0", + "node_modules/@peculiar/webcrypto": { + "version": "1.4.3", + "license": "MIT", "dependencies": { - "@graphql-typed-document-node/core": "^3.2.0", - "@mysten/bcs": "0.11.1", - "@noble/curves": "^1.1.0", - "@noble/hashes": "^1.3.1", - "@scure/bip32": "^1.3.1", - "@scure/bip39": "^1.2.1", - "@suchipi/femver": "^1.0.0", - "bech32": "^2.0.0", - "gql.tada": "^1.2.0", - "graphql": "^16.8.1", - "superstruct": "^1.0.3", - "tweetnacl": "^1.0.3" + "@peculiar/asn1-schema": "^2.3.6", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.5.0", + "webcrypto-core": "^1.7.7" }, "engines": { - "node": ">=16" + "node": ">=10.12.0" } }, - "node_modules/@nestjs/common": { - "version": "8.2.6", + "node_modules/@pedalboard/anti-abuse-oracle": { + "resolved": "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle", + "link": true + }, + "node_modules/@pedalboard/archiver": { + "resolved": "packages/discovery-provider/plugins/pedalboard/apps/archiver", + "link": true + }, + "node_modules/@pedalboard/basekit": { + "resolved": "packages/discovery-provider/plugins/pedalboard/packages/basekit", + "link": true + }, + "node_modules/@pedalboard/logger": { + "resolved": "packages/discovery-provider/plugins/pedalboard/packages/logger", + "link": true + }, + "node_modules/@pedalboard/staking": { + "resolved": "packages/discovery-provider/plugins/pedalboard/apps/staking", + "link": true + }, + "node_modules/@pedalboard/storage": { + "resolved": "packages/discovery-provider/plugins/pedalboard/packages/storage", + "link": true + }, + "node_modules/@phosphor-icons/core": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@phosphor-icons/core/-/core-2.1.1.tgz", + "integrity": "sha512-v4ARvrip4qBCImOE5rmPUylOEK4iiED9ZyKjcvzuezqMaiRASCHKcRIuvvxL/twvLpkfnEODCOJp5dM4eZilxQ==", + "license": "MIT" + }, + "node_modules/@pinata/sdk": { + "version": "1.1.13", "dev": true, "license": "MIT", "dependencies": { - "axios": "0.24.0", - "iterare": "1.2.1", - "tslib": "2.3.1", - "uuid": "8.3.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "cache-manager": "*", - "class-transformer": "*", - "class-validator": "*", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "cache-manager": { - "optional": true - }, - "class-transformer": { - "optional": true - }, - "class-validator": { - "optional": true - } + "axios": "^0.21.1", + "base-path-converter": "^1.0.2", + "form-data": "^2.3.3", + "is-ipfs": "^0.6.0", + "recursive-fs": "^1.1.2" } }, - "node_modules/@nestjs/common/node_modules/axios": { - "version": "0.24.0", + "node_modules/@pinata/sdk/node_modules/axios": { + "version": "0.21.4", "dev": true, "license": "MIT", "dependencies": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.0" } }, - "node_modules/@nestjs/common/node_modules/follow-redirects": { + "node_modules/@pinata/sdk/node_modules/follow-redirects": { "version": "1.15.3", "dev": true, "funding": [ @@ -20805,242 +19116,189 @@ } } }, - "node_modules/@nestjs/common/node_modules/tslib": { - "version": "2.3.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@nestjs/common/node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@nestjs/core": { - "version": "8.2.6", + "node_modules/@pinata/sdk/node_modules/form-data": { + "version": "2.5.1", "dev": true, - "hasInstallScript": true, "license": "MIT", "dependencies": { - "@nuxtjs/opencollective": "0.3.2", - "fast-safe-stringify": "2.1.1", - "iterare": "1.2.1", - "object-hash": "2.2.0", - "path-to-regexp": "3.2.0", - "tslib": "2.3.1", - "uuid": "8.3.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "@nestjs/common": "^8.0.0", - "@nestjs/microservices": "^8.0.0", - "@nestjs/platform-express": "^8.0.0", - "@nestjs/websockets": "^8.0.0", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" }, - "peerDependenciesMeta": { - "@nestjs/microservices": { - "optional": true - }, - "@nestjs/platform-express": { - "optional": true - }, - "@nestjs/websockets": { - "optional": true - } + "engines": { + "node": ">= 0.12" } }, - "node_modules/@nestjs/core/node_modules/tslib": { - "version": "2.3.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@nestjs/core/node_modules/uuid": { - "version": "8.3.2", - "dev": true, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "optional": true, + "engines": { + "node": ">=14" } }, - "node_modules/@next/eslint-plugin-next": { - "version": "13.5.6", + "node_modules/@pkgr/core": { + "version": "0.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "glob": "7.1.7" + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/@next/eslint-plugin-next/node_modules/glob": { - "version": "7.1.7", - "license": "ISC", + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "license": "MIT", "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" + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" }, "engines": { - "node": "*" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/unts" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "dev": true, + "node_modules/@pkgr/utils/node_modules/cross-spawn": { + "version": "7.0.3", "license": "MIT", "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@noble/ciphers": { - "version": "0.4.1", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@noble/curves": { - "version": "1.2.0", + "node_modules/@pkgr/utils/node_modules/open": { + "version": "9.1.0", "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.2" + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@noble/ed25519": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.5.tgz", - "integrity": "sha512-xuS0nwRMQBvSxDa7UxMb61xTiH3MxTgUfhyPUALVIe0FlOAz4sjELwyDRyUvqeEYfRSG9qNjFIycqLZppg4RSA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/hashes": { - "version": "1.3.2", + "node_modules/@pkgr/utils/node_modules/path-key": { + "version": "3.1.1", "license": "MIT", "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=8" } }, - "node_modules/@noble/secp256k1": { - "version": "1.7.0", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "license": "MIT" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", + "node_modules/@pkgr/utils/node_modules/shebang-command": { + "version": "2.0.0", "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", + "node_modules/@pkgr/utils/node_modules/shebang-regex": { + "version": "3.0.0", "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "license": "MIT", + "node_modules/@playwright/test": { + "version": "1.42.1", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "playwright": "1.42.1" + }, + "bin": { + "playwright": "cli.js" }, "engines": { - "node": ">= 8" + "node": ">=16" } }, - "node_modules/@npmcli/config": { - "version": "6.4.0", - "dev": true, - "license": "ISC", + "node_modules/@pm2/agent": { + "version": "2.0.3", + "license": "AGPL-3.0", "dependencies": { - "@npmcli/map-workspaces": "^3.0.2", - "ci-info": "^3.8.0", - "ini": "^4.1.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.5", - "walk-up-path": "^3.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "async": "~3.2.0", + "chalk": "~3.0.0", + "dayjs": "~1.8.24", + "debug": "~4.3.1", + "eventemitter2": "~5.0.1", + "fast-json-patch": "^3.0.0-1", + "fclone": "~1.0.11", + "nssocket": "0.6.0", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.0", + "proxy-agent": "~6.3.0", + "semver": "~7.5.0", + "ws": "~7.4.0" } }, - "node_modules/@npmcli/config/node_modules/abbrev": { - "version": "2.0.0", - "dev": true, - "license": "ISC", + "node_modules/@pm2/agent/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@npmcli/config/node_modules/ini": { - "version": "4.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/@pm2/agent/node_modules/async": { + "version": "3.2.5", + "license": "MIT" }, - "node_modules/@npmcli/config/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", + "node_modules/@pm2/agent/node_modules/chalk": { + "version": "3.0.0", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@npmcli/config/node_modules/nopt": { - "version": "7.2.0", - "dev": true, + "node_modules/@pm2/agent/node_modules/dayjs": { + "version": "1.8.36", + "license": "MIT" + }, + "node_modules/@pm2/agent/node_modules/eventemitter2": { + "version": "5.0.1", + "license": "MIT" + }, + "node_modules/@pm2/agent/node_modules/lru-cache": { + "version": "6.0.0", "license": "ISC", "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" + "yallist": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@npmcli/config/node_modules/semver": { + "node_modules/@pm2/agent/node_modules/semver": { "version": "7.5.4", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -21052,91 +19310,67 @@ "node": ">=10" } }, - "node_modules/@npmcli/config/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@npmcli/fs": { - "version": "3.1.0", - "license": "ISC", + "node_modules/@pm2/agent/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@npmcli/fs/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/@pm2/agent/node_modules/ws": { + "version": "7.4.6", + "license": "MIT", "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" + "node": ">=8.3.0" }, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@npmcli/fs/node_modules/yallist": { + "node_modules/@pm2/agent/node_modules/yallist": { "version": "4.0.0", "license": "ISC" }, - "node_modules/@npmcli/git": { - "version": "4.1.0", - "dev": true, - "license": "ISC", + "node_modules/@pm2/io": { + "version": "5.0.2", + "license": "Apache-2", "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" + "@opencensus/core": "0.0.9", + "@opencensus/propagation-b3": "0.0.8", + "async": "~2.6.1", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "require-in-the-middle": "^5.0.0", + "semver": "~7.5.4", + "shimmer": "^1.2.0", + "signal-exit": "^3.0.3", + "tslib": "1.9.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.18.3", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" + "node": ">=6.0" } }, - "node_modules/@npmcli/git/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", + "node_modules/@pm2/io/node_modules/async": { + "version": "2.6.4", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "lodash": "^4.17.14" } }, - "node_modules/@npmcli/git/node_modules/semver/node_modules/lru-cache": { + "node_modules/@pm2/io/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -21145,1976 +19379,2293 @@ "node": ">=10" } }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "3.0.1", - "dev": true, + "node_modules/@pm2/io/node_modules/semver": { + "version": "7.5.4", "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "lru-cache": "^6.0.0" }, "bin": { - "node-which": "bin/which.js" + "semver": "bin/semver.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@npmcli/git/node_modules/yallist": { + "node_modules/@pm2/io/node_modules/tslib": { + "version": "1.9.3", + "license": "Apache-2.0" + }, + "node_modules/@pm2/io/node_modules/yallist": { "version": "4.0.0", - "dev": true, "license": "ISC" }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "lib/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/map-workspaces": { - "version": "3.0.4", - "dev": true, - "license": "ISC", + "node_modules/@pm2/js-api": { + "version": "0.6.7", + "license": "Apache-2", "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^10.2.2", - "minimatch": "^9.0.0", - "read-package-json-fast": "^3.0.0" + "async": "^2.6.3", + "axios": "^0.21.0", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "ws": "^7.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=4.0" } }, - "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, + "node_modules/@pm2/js-api/node_modules/async": { + "version": "2.6.4", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "lodash": "^4.17.14" } }, - "node_modules/@npmcli/map-workspaces/node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, + "node_modules/@pm2/js-api/node_modules/axios": { + "version": "0.21.4", "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/map-workspaces/node_modules/foreground-child": { - "version": "3.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "follow-redirects": "^1.14.0" } }, - "node_modules/@npmcli/map-workspaces/node_modules/glob": { - "version": "10.3.10", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, + "node_modules/@pm2/js-api/node_modules/follow-redirects": { + "version": "1.15.3", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=4.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "9.0.3", - "dev": true, - "license": "ISC", + "node_modules/@pm2/pm2-version-check": { + "version": "1.0.4", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@npmcli/map-workspaces/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "debug": "^4.3.1" } }, - "node_modules/@npmcli/map-workspaces/node_modules/path-key": { - "version": "3.1.1", + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12.22.0" } }, - "node_modules/@npmcli/map-workspaces/node_modules/shebang-command": { - "version": "2.0.0", + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "graceful-fs": "4.2.10" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@npmcli/map-workspaces/node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": ">=12.22.0" } }, - "node_modules/@npmcli/map-workspaces/node_modules/signal-exit": { - "version": "4.1.0", + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "ISC" }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", + "node_modules/@pnpm/npm-conf": { + "version": "2.2.2", "dev": true, "license": "MIT", "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=12" } }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "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==", + "license": "MIT" + }, + "node_modules/@project-serum/anchor": { + "version": "0.24.1", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "toml": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=11" } }, - "node_modules/@npmcli/move-file/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", + "node_modules/@project-serum/borsh": { + "version": "0.2.5", + "license": "Apache-2.0", "dependencies": { - "glob": "^7.1.3" + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@solana/web3.js": "^1.2.0" } }, - "node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "license": "BSD-3-Clause" }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "license": "BSD-3-Clause" }, - "node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "license": "BSD-3-Clause" }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "license": "BSD-3-Clause" }, - "node_modules/@npmcli/run-script": { - "version": "6.0.2", - "dev": true, - "license": "ISC", + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "license": "BSD-3-Clause", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" } }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "license": "BSD-3-Clause" }, - "node_modules/@nsure-ai/web-client-sdk": { - "version": "1.1.92", - "resolved": "https://registry.npmjs.org/@nsure-ai/web-client-sdk/-/web-client-sdk-1.1.92.tgz", - "integrity": "sha512-ofhBJX0z1JdD24dyzZ4Y7kktM0IYIAxJvVICA0JoQ/Hjc2s0MNfy8jfHQN4JG7tEtODi7wkUA9rDnnvu4gDe4w==", - "license": "ISC" + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "license": "BSD-3-Clause" }, - "node_modules/@nuxtjs/opencollective": { - "version": "0.3.2", - "dev": true, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==", + "license": "MIT" + }, + "node_modules/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.7.tgz", + "integrity": "sha512-XM+E4WXl0OqUJFovy6GjmxxFyx9opfCAIUku4dlKRd5YEPqt4kALOkQOp0Of6reHuUkJuiPBEc5k0o4z4lTC8A==", "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" + "@radix-ui/react-visually-hidden": "1.2.3" }, - "bin": { - "opencollective": "bin/opencollective.js" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@nuxtjs/opencollective/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", + "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@nuxtjs/opencollective/node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "node_modules/@radix-ui/react-accordion/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@nuxtjs/opencollective/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz", + "integrity": "sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dialog": "1.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@one-ini/wasm": { - "version": "0.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@open-draft/deferred-promise": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", - "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", - "dev": true - }, - "node_modules/@open-draft/logger": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", - "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", - "dev": true, - "dependencies": { - "is-node-process": "^1.2.0", - "outvariant": "^1.4.0" + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@open-draft/until": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@openapitools/openapi-generator-cli": { - "version": "2.4.26", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", "dependencies": { - "@nestjs/common": "8.2.6", - "@nestjs/core": "8.2.6", - "@nuxtjs/opencollective": "0.3.2", - "chalk": "4.1.2", - "commander": "8.3.0", - "compare-versions": "3.6.0", - "concurrently": "6.5.1", - "console.table": "0.10.0", - "fs-extra": "10.0.0", - "glob": "7.1.6", - "inquirer": "8.2.0", - "lodash": "4.17.21", - "reflect-metadata": "0.1.13", - "rxjs": "7.5.2", - "tslib": "2.0.3" - }, - "bin": { - "openapi-generator-cli": "main.js" + "@radix-ui/react-compose-refs": "1.1.2" }, - "engines": { - "node": ">=10.0.0" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/openapi_generator" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@radix-ui/react-primitive": "2.1.3" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.7.tgz", + "integrity": "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@radix-ui/react-primitive": "2.1.3" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", + "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", + "node_modules/@radix-ui/react-checkbox": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.3.tgz", + "integrity": "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/commander": { - "version": "8.3.0", - "dev": true, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "engines": { - "node": ">= 12" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/concurrently": { - "version": "6.5.1", - "dev": true, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.16.1", - "lodash": "^4.17.21", - "rxjs": "^6.6.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^16.2.0" - }, - "bin": { - "concurrently": "bin/concurrently.js" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/concurrently/node_modules/rxjs": { - "version": "6.6.7", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "npm": ">=2.0.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/concurrently/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/fs-extra": { - "version": "10.0.0", - "dev": true, + "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=12" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/glob": { - "version": "7.1.6", - "dev": true, - "license": "ISC", + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", "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" + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" }, - "engines": { - "node": "*" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/inquirer": { - "version": "8.2.0", - "dev": true, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.2.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=8.0.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/jsonfile": { - "version": "6.1.0", - "dev": true, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", "license": "MIT", "dependencies": { - "universalify": "^2.0.0" + "@radix-ui/react-compose-refs": "1.1.2" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/rxjs": { - "version": "7.5.2", - "dev": true, - "license": "Apache-2.0", + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/rxjs/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/tslib": { - "version": "2.0.3", - "dev": true, - "license": "0BSD" - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/universalify": { - "version": "2.0.1", - "dev": true, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", "license": "MIT", - "engines": { - "node": ">= 10.0.0" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.16.tgz", + "integrity": "sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/yargs": { - "version": "16.2.0", - "dev": true, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opencensus/core": { - "version": "0.0.9", - "license": "Apache-2.0", - "dependencies": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@opencensus/core/node_modules/semver": { - "version": "5.7.2", - "license": "ISC", - "bin": { - "semver": "bin/semver" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opencensus/propagation-b3": { - "version": "0.0.8", - "license": "Apache-2.0", - "dependencies": { - "@opencensus/core": "^0.0.8", - "uuid": "^3.2.1" + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=6.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": { - "version": "0.0.8", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", "dependencies": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" + "@radix-ui/react-compose-refs": "1.1.2" }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@opencensus/propagation-b3/node_modules/semver": { - "version": "5.7.2", - "license": "ISC", - "bin": { - "semver": "bin/semver" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "license": "Apache-2.0", - "engines": { - "node": ">=8.0.0" + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/api-metrics": { - "version": "0.31.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", "dependencies": { - "@opentelemetry/api": "^1.0.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "license": "Apache-2.0", - "engines": { - "node": ">=14" - }, + "node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/core": { - "version": "1.17.1", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", + "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", + "license": "MIT", "dependencies": { - "@opentelemetry/semantic-conventions": "1.17.1" - }, - "engines": { - "node": ">=14" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.7.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.17.1", - "license": "Apache-2.0", - "engines": { - "node": ">=14" + "node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.31.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.31.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-bunyan": { - "version": "0.29.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", - "@types/bunyan": "1.8.7" - }, - "engines": { - "node": ">=8.12.0" + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/api-metrics": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api": "^1.0.0" + "node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=8.12.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-form": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.8.tgz", + "integrity": "sha512-QM70k4Zwjttifr5a4sZFts9fn8FzHYvQ5PiB19O2HsYibaHSVt9fH9rzB0XZo/YcM+b7t/p7lYCT/F5eOeF5yQ==", + "license": "MIT", "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-label": "2.1.7", + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-label": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "@radix-ui/react-primitive": "2.1.3" }, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.30.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.15.tgz", + "integrity": "sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - }, - "engines": { - "node": ">=8.12.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/api-metrics": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api": "^1.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=8.12.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, + "node_modules/@radix-ui/react-hover-card/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/@types/express": { - "version": "4.17.13", + "node_modules/@radix-ui/react-icons": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz", + "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==", "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc" } }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "@radix-ui/react-use-layout-effect": "1.1.1" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", + "node_modules/@radix-ui/react-label": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.8.tgz", + "integrity": "sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "@radix-ui/react-primitive": "2.1.4" }, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.31.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz", + "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.5.0", - "@opentelemetry/instrumentation": "0.31.0", - "@opentelemetry/semantic-conventions": "1.5.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=14" + "@radix-ui/react-slot": "1.2.4" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { - "version": "1.5.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-slot": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", + "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", + "license": "MIT", "dependencies": { - "@opentelemetry/semantic-conventions": "1.5.0" - }, - "engines": { - "node": ">=14" + "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.2.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.5.0", - "license": "Apache-2.0", - "engines": { - "node": ">=14" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", + "node_modules/@radix-ui/react-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", + "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" }, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@opentelemetry/instrumentation/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "@radix-ui/react-compose-refs": "1.1.2" }, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@opentelemetry/propagator-b3": { - "version": "1.8.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-menubar": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.16.tgz", + "integrity": "sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/propagator-b3/node_modules/@opentelemetry/core": { - "version": "1.8.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, + "node_modules/@radix-ui/react-menubar/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", + "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/propagator-jaeger/node_modules/@opentelemetry/core": { - "version": "1.8.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, + "node_modules/@radix-ui/react-navigation-menu/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/resources": { - "version": "1.8.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-one-time-password-field": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.8.tgz", + "integrity": "sha512-ycS4rbwURavDPVjCb5iS3aG4lURFDILi6sKI/WITUMZ13gMmn/xGjpLoqBAalhJaDk8I3UbCM5GzKHrnzwHbvg==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { - "version": "1.8.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, + "node_modules/@radix-ui/react-one-time-password-field/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-password-toggle-field": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.3.tgz", + "integrity": "sha512-/UuCrDBWravcaMix4TdT+qlNdVwOM1Nck9kWx/vafXsdfj1ChfhOdfi3cy9SGBpWgTXwYCuboT/oYpJy3clqfw==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-is-hydrated": "0.1.0" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-password-toggle-field/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { - "version": "1.8.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-popover": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "license": "MIT", "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", "dependencies": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=14" + "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": { - "version": "1.8.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-popper": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "license": "MIT", "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" }, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "license": "Apache-2.0", - "engines": { - "node": ">=14" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@openzeppelin/contract-loader": { - "version": "0.4.0", - "dev": true, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", "license": "MIT", "dependencies": { - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "try-require": "^1.2.1" + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@openzeppelin/test-helpers": { - "version": "0.5.6", - "dev": true, + "node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "dependencies": { - "@openzeppelin/contract-loader": "^0.4.0", - "@truffle/contract": "^4.0.35 <4.2.2", - "ansi-colors": "^3.2.3", - "chai": "^4.2.0", - "chai-bn": "^0.2.1", - "ethjs-abi": "^0.2.1", - "lodash.flatten": "^4.4.0", - "semver": "^5.6.0", - "web3": "^1.2.1", - "web3-utils": "^1.2.1" - } - }, - "node_modules/@openzeppelin/test-helpers/node_modules/semver": { - "version": "5.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@optimizely/js-sdk-datafile-manager": { - "version": "0.5.0", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", "dependencies": { - "@optimizely/js-sdk-logging": "^0.1.0", - "@optimizely/js-sdk-utils": "^0.2.0", - "decompress-response": "^4.2.1" - }, - "engines": { - "node": ">=6.0.0" + "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { - "@react-native-community/async-storage": "^1.2.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@optimizely/js-sdk-event-processor": { - "version": "0.4.0", - "license": "Apache-2.0", - "dependencies": { - "@optimizely/js-sdk-logging": "^0.1.0", - "@optimizely/js-sdk-utils": "^0.2.0" + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@optimizely/js-sdk-logging": { - "version": "0.1.0", + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", "license": "MIT", "dependencies": { - "@optimizely/js-sdk-utils": "^0.1.0" + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@optimizely/js-sdk-logging/node_modules/@optimizely/js-sdk-utils": { - "version": "0.1.0", + "node_modules/@radix-ui/react-progress": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", + "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", "license": "MIT", "dependencies": { - "uuid": "^3.3.2" + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@optimizely/js-sdk-utils": { - "version": "0.2.0", + "node_modules/@radix-ui/react-radio-group": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz", + "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==", "license": "MIT", "dependencies": { - "uuid": "^3.3.2" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@optimizely/optimizely-sdk": { - "version": "4.0.0", - "license": "Apache-2.0", - "dependencies": { - "@optimizely/js-sdk-datafile-manager": "^0.5.0", - "@optimizely/js-sdk-event-processor": "^0.4.0", - "@optimizely/js-sdk-logging": "^0.1.0", - "@optimizely/js-sdk-utils": "^0.2.0", - "json-schema": "^0.2.3", - "murmurhash": "0.0.2", - "uuid": "^3.3.2" + "node_modules/@radix-ui/react-radio-group/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=4.0.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@parcel/watcher": { - "version": "2.4.1", + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", "license": "MIT", "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.4.1", - "@parcel/watcher-darwin-arm64": "2.4.1", - "@parcel/watcher-darwin-x64": "2.4.1", - "@parcel/watcher-freebsd-x64": "2.4.1", - "@parcel/watcher-linux-arm-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-musl": "2.4.1", - "@parcel/watcher-linux-x64-glibc": "2.4.1", - "@parcel/watcher-linux-x64-musl": "2.4.1", - "@parcel/watcher-win32-arm64": "2.4.1", - "@parcel/watcher-win32-ia32": "2.4.1", - "@parcel/watcher-win32-x64": "2.4.1" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.4.1", - "cpu": [ - "arm64" - ], + "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@parcel/watcher-wasm": { - "version": "2.4.1", - "bundleDependencies": [ - "napi-wasm" - ], + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", "license": "MIT", "dependencies": { - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "napi-wasm": "^1.1.0" + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" }, - "engines": { - "node": ">= 10.0.0" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/@parcel/watcher/node_modules/detect-libc": { - "version": "1.0.3", - "license": "Apache-2.0", - "bin": { - "detect-libc": "bin/detect-libc.js" + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=0.10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.0", + "node_modules/@radix-ui/react-select": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", + "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", "license": "MIT", - "engines": { - "node": "^16 || ^18 || >= 20" + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@paulmillr/qr": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@paulmillr/qr/-/qr-0.2.1.tgz", - "integrity": "sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==", - "license": "(MIT OR Apache-2.0)", - "funding": { - "url": "https://paulmillr.com/funding/" + "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.3.8", + "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", "license": "MIT", "dependencies": { - "asn1js": "^3.0.5", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", + "node_modules/@radix-ui/react-separator": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", + "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", "license": "MIT", "dependencies": { - "tslib": "^2.0.0" + "@radix-ui/react-primitive": "2.1.3" }, - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@peculiar/webcrypto": { - "version": "1.4.3", + "node_modules/@radix-ui/react-slider": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz", + "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.6", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.3.2", - "tslib": "^2.5.0", - "webcrypto-core": "^1.7.7" + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@pedalboard/anti-abuse-oracle": { - "resolved": "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle", - "link": true - }, - "node_modules/@pedalboard/archiver": { - "resolved": "packages/discovery-provider/plugins/pedalboard/apps/archiver", - "link": true - }, - "node_modules/@pedalboard/basekit": { - "resolved": "packages/discovery-provider/plugins/pedalboard/packages/basekit", - "link": true - }, - "node_modules/@pedalboard/logger": { - "resolved": "packages/discovery-provider/plugins/pedalboard/packages/logger", - "link": true - }, - "node_modules/@pedalboard/solana-relay": { - "resolved": "packages/discovery-provider/plugins/pedalboard/apps/solana-relay", - "link": true - }, - "node_modules/@pedalboard/staking": { - "resolved": "packages/discovery-provider/plugins/pedalboard/apps/staking", - "link": true - }, - "node_modules/@pedalboard/storage": { - "resolved": "packages/discovery-provider/plugins/pedalboard/packages/storage", - "link": true - }, - "node_modules/@phosphor-icons/core": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@phosphor-icons/core/-/core-2.1.1.tgz", - "integrity": "sha512-v4ARvrip4qBCImOE5rmPUylOEK4iiED9ZyKjcvzuezqMaiRASCHKcRIuvvxL/twvLpkfnEODCOJp5dM4eZilxQ==", - "license": "MIT" - }, - "node_modules/@pinata/sdk": { - "version": "1.1.13", - "dev": true, - "license": "MIT", - "dependencies": { - "axios": "^0.21.1", - "base-path-converter": "^1.0.2", - "form-data": "^2.3.3", - "is-ipfs": "^0.6.0", - "recursive-fs": "^1.1.2" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@pinata/sdk/node_modules/axios": { - "version": "0.21.4", - "dev": true, + "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "dependencies": { - "follow-redirects": "^1.14.0" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pinata/sdk/node_modules/follow-redirects": { - "version": "1.15.3", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", "license": "MIT", - "engines": { - "node": ">=4.0" + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" }, "peerDependenciesMeta": { - "debug": { + "@types/react": { "optional": true } } }, - "node_modules/@pinata/sdk/node_modules/form-data": { - "version": "2.5.1", - "dev": true, + "node_modules/@radix-ui/react-switch": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz", + "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==", "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" }, - "engines": { - "node": ">= 0.12" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", + "node_modules/@radix-ui/react-switch/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pkgr/core": { - "version": "0.1.0", - "dev": true, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" }, - "funding": { - "url": "https://opencollective.com/unts" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@pkgr/utils": { - "version": "2.4.2", + "node_modules/@radix-ui/react-toast": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.15.tgz", + "integrity": "sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==", "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.3.0", - "is-glob": "^4.0.3", - "open": "^9.1.0", - "picocolors": "^1.0.0", - "tslib": "^2.6.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://opencollective.com/unts" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@pkgr/utils/node_modules/cross-spawn": { - "version": "7.0.3", + "node_modules/@radix-ui/react-toast/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">= 8" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pkgr/utils/node_modules/open": { - "version": "9.1.0", + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", "license": "MIT", "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" }, - "engines": { - "node": ">=14.16" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@pkgr/utils/node_modules/path-key": { - "version": "3.1.1", + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", + "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-toggle": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@pkgr/utils/node_modules/shebang-command": { - "version": "2.0.0", + "node_modules/@radix-ui/react-toolbar": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.11.tgz", + "integrity": "sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==", "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-separator": "1.1.7", + "@radix-ui/react-toggle-group": "1.1.11" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@pkgr/utils/node_modules/shebang-regex": { - "version": "3.0.0", + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", + "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@playwright/test": { - "version": "1.42.1", - "dev": true, - "license": "Apache-2.0", "dependencies": { - "playwright": "1.42.1" + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "1.2.3" }, - "bin": { - "playwright": "cli.js" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=16" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@pm2/agent": { - "version": "2.0.3", - "license": "AGPL-3.0", - "dependencies": { - "async": "~3.2.0", - "chalk": "~3.0.0", - "dayjs": "~1.8.24", - "debug": "~4.3.1", - "eventemitter2": "~5.0.1", - "fast-json-patch": "^3.0.0-1", - "fclone": "~1.0.11", - "nssocket": "0.6.0", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "proxy-agent": "~6.3.0", - "semver": "~7.5.0", - "ws": "~7.4.0" + "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pm2/agent/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@radix-ui/react-compose-refs": "1.1.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pm2/agent/node_modules/async": { - "version": "3.2.5", - "license": "MIT" - }, - "node_modules/@pm2/agent/node_modules/chalk": { - "version": "3.0.0", + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=8" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pm2/agent/node_modules/dayjs": { - "version": "1.8.36", - "license": "MIT" - }, - "node_modules/@pm2/agent/node_modules/eventemitter2": { - "version": "5.0.1", - "license": "MIT" - }, - "node_modules/@pm2/agent/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pm2/agent/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "@radix-ui/react-use-layout-effect": "1.1.1" }, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pm2/agent/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@radix-ui/react-use-callback-ref": "1.1.1" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pm2/agent/node_modules/ws": { - "version": "7.4.6", + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", + "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", "license": "MIT", - "engines": { - "node": ">=8.3.0" + "dependencies": { + "use-sync-external-store": "^1.5.0" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@pm2/agent/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@pm2/io": { - "version": "5.0.2", - "license": "Apache-2", - "dependencies": { - "@opencensus/core": "0.0.9", - "@opencensus/propagation-b3": "0.0.8", - "async": "~2.6.1", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "require-in-the-middle": "^5.0.0", - "semver": "~7.5.4", - "shimmer": "^1.2.0", - "signal-exit": "^3.0.3", - "tslib": "1.9.3" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@pm2/io/node_modules/async": { - "version": "2.6.4", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/io/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/io/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/io/node_modules/tslib": { - "version": "1.9.3", - "license": "Apache-2.0" - }, - "node_modules/@pm2/io/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@pm2/js-api": { - "version": "0.6.7", - "license": "Apache-2", - "dependencies": { - "async": "^2.6.3", - "axios": "^0.21.0", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "ws": "^7.0.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@pm2/js-api/node_modules/async": { - "version": "2.6.4", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/js-api/node_modules/axios": { - "version": "0.21.4", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/@pm2/js-api/node_modules/follow-redirects": { - "version": "1.15.3", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { + "@types/react": { "optional": true } } }, - "node_modules/@pm2/pm2-version-check": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "debug": "^4.3.1" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "dev": true, - "license": "ISC" - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "dev": true, + "node_modules/@radix-ui/react-use-is-hydrated/node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", "license": "MIT", - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "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==", - "license": "MIT" - }, - "node_modules/@project-serum/anchor": { - "version": "0.24.1", - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "@project-serum/borsh": "^0.2.5", - "@solana/web3.js": "^1.36.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=11" - } - }, - "node_modules/@project-serum/borsh": { - "version": "0.2.5", - "license": "Apache-2.0", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, "peerDependencies": { - "@solana/web3.js": "^1.2.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@radix-ui/colors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-3.0.0.tgz", - "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==", - "license": "MIT" - }, - "node_modules/@radix-ui/number": { + "node_modules/@radix-ui/react-use-layout-effect": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", - "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", - "license": "MIT" - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", - "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-accessible-icon": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.7.tgz", - "integrity": "sha512-XM+E4WXl0OqUJFovy6GjmxxFyx9opfCAIUku4dlKRd5YEPqt4kALOkQOp0Of6reHuUkJuiPBEc5k0o4z4lTC8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-visually-hidden": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-accordion": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", - "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collapsible": "1.1.12", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, "peerDependencies": { "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-accordion/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -23126,39 +21677,14 @@ } } }, - "node_modules/@radix-ui/react-alert-dialog": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz", - "integrity": "sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==", + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dialog": "1.1.15", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@radix-ui/rect": "1.1.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -23169,13 +21695,13 @@ } } }, - "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -23187,10 +21713,10 @@ } } }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", - "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.1.3" @@ -23210,2564 +21736,2015 @@ } } }, - "node_modules/@radix-ui/react-aspect-ratio": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.7.tgz", - "integrity": "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==", - "license": "MIT", + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, + "node_modules/@react-native-async-storage/async-storage": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz", + "integrity": "sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag==", "dependencies": { - "@radix-ui/react-primitive": "2.1.3" + "merge-options": "^3.0.4" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "react-native": "^0.0.0-0 || >=0.60 <1.0" } }, - "node_modules/@radix-ui/react-avatar": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", - "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", + "node_modules/@react-native-clipboard/clipboard": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.16.3.tgz", + "integrity": "sha512-cMIcvoZKIrShzJHEaHbTAp458R9WOv0fB6UyC7Ek4Qk561Ow/DrzmmJmH/rAZg21Z6ixJ4YSdFDC14crqIBmCQ==", "license": "MIT", - "dependencies": { - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-is-hydrated": "0.1.0", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, + "workspaces": [ + "example" + ], "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": ">= 16.9.0", + "react-native": ">= 0.61.5", + "react-native-macos": ">= 0.61.0", + "react-native-windows": ">= 0.61.0" }, "peerDependenciesMeta": { - "@types/react": { + "react-native-macos": { "optional": true }, - "@types/react-dom": { + "react-native-windows": { "optional": true } } }, - "node_modules/@radix-ui/react-checkbox": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.3.tgz", - "integrity": "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==", + "node_modules/@react-native-community/blur": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@react-native-community/blur/-/blur-4.4.1.tgz", + "integrity": "sha512-XBSsRiYxE/MOEln2ayunShfJtWztHwUxLFcSL20o+HNNRnuUDv+GXkF6FmM2zE8ZUfrnhQ/zeTqvnuDPGw6O8A==", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/@react-native-community/cli-config-android": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-android/-/cli-config-android-18.0.1.tgz", + "integrity": "sha512-1wzmGLfS7qgzm0ZfwX/f6Lat/af8/UYdjwtb3ap6RfKNclvIoap0wN6uBeiANmLfk0/BhoG8K1vKtIPwlU/V1A==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "1.1.1" + "@react-native-community/cli-tools": "18.0.1", + "chalk": "^4.1.2", + "fast-glob": "^3.3.2", + "fast-xml-parser": "^4.4.1" + } + }, + "node_modules/@react-native-community/cli-config-android/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=8" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native-community/cli-config-android/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@radix-ui/react-collapsible": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", - "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", + "node_modules/@react-native-community/cli-config-android/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "has-flag": "^4.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native-community/cli-config-apple": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-apple/-/cli-config-apple-18.0.1.tgz", + "integrity": "sha512-ybr1ZrOSd/Z+oCJ1qVSKVQauvneObTu3VjvYPhhrme7tUUSaYmd3iikaWonbKk5rVp+2WqOFR6Cy7XqVfwwG8A==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "dependencies": { + "@react-native-community/cli-tools": "18.0.1", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "fast-glob": "^3.3.2" } }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", - "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "node_modules/@react-native-community/cli-config-apple/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==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3" + "color-convert": "^2.0.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=8" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native-community/cli-config-apple/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/@react-native-community/cli-config-apple/node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">= 8" } }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.1", + "node_modules/@react-native-community/cli-config-apple/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10" + "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" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "node_modules/@react-native-community/cli-config-apple/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", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@radix-ui/react-context-menu": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.16.tgz", - "integrity": "sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==", + "node_modules/@react-native-community/cli-config-apple/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", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@react-native-community/cli-config-apple/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-config-apple/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==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-menu": "2.1.16", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "shebang-regex": "^3.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", - "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "node_modules/@react-native-community/cli-config-apple/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-config-apple/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "has-flag": "^4.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native-community/cli-tools": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-18.0.1.tgz", + "integrity": "sha512-WxWFXwfYhHR2eYiB4lkHZVC/PmIkRWeVHBQKmn0h1mecr3GrHYO4BzW1jpD5Xt6XZ9jojQ9wE5xrCqXjiMSAIQ==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "dependencies": { + "@vscode/sudo-prompt": "^9.0.0", + "appdirsjs": "^1.2.4", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "find-up": "^5.0.0", + "launch-editor": "^2.9.1", + "mime": "^2.4.1", + "ora": "^5.4.1", + "prompts": "^2.4.2", + "semver": "^7.5.2" } }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/@react-native-community/cli-tools/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==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" + "color-convert": "^2.0.1" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=8" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", - "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "node_modules/@react-native-community/cli-tools/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", - "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "node_modules/@react-native-community/cli-tools/node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-escape-keydown": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">= 8" } }, - "node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native-community/cli-tools/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", - "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", + "node_modules/@react-native-community/cli-tools/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==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-menu": "2.1.16", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native-community/cli-tools/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", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", - "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "node_modules/@react-native-community/cli-tools/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", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "p-locate": "^5.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", - "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "node_modules/@react-native-community/cli-tools/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1" + "p-limit": "^3.0.2" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native-community/cli-tools/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==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=10" } }, - "node_modules/@radix-ui/react-form": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.8.tgz", - "integrity": "sha512-QM70k4Zwjttifr5a4sZFts9fn8FzHYvQ5PiB19O2HsYibaHSVt9fH9rzB0XZo/YcM+b7t/p7lYCT/F5eOeF5yQ==", + "node_modules/@react-native-community/cli-tools/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==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-label": "2.1.7", - "@radix-ui/react-primitive": "2.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "shebang-regex": "^3.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native-community/cli-tools/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-label": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", - "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", + "node_modules/@react-native-community/cli-tools/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.3" + "has-flag": "^4.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/hooks": { + "version": "100.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/hooks/-/hooks-100.1.0.tgz", + "integrity": "sha512-aXESGr6WcnwyeIl+SiCLNFpbApzTmupyYzm2OkGjMuwHr42+a3G65xxTxN/xHuNdTVWO0dXbOwyLgEkQ0i/qZg==", + "license": "ISC", "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "react": ">=18.0.0", + "react-native": ">=0.70" } }, - "node_modules/@radix-ui/react-hover-card": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.15.tgz", - "integrity": "sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==", + "node_modules/@react-native-community/netinfo": { + "version": "11.4.1", + "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-11.4.1.tgz", + "integrity": "sha512-B0BYAkghz3Q2V09BF88RA601XursIEA111tnc2JOaN7axJWmNefmfjZqw/KdSxKZp7CZUuPpjBmz/WCR9uaHYg==", "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "react-native": ">=0.59" } }, - "node_modules/@radix-ui/react-hover-card/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", + "node_modules/@react-native-documents/picker": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@react-native-documents/picker/-/picker-10.1.2.tgz", + "integrity": "sha512-JzbFmFp0SmG0FEKt4Q62trewHMFpas2zAX0n5EANwrU9kondnzAEF7/xxz2EA2tfZNwnkHelqG8A7iedGleMRw==", "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "react": "*", + "react-native": "*" } }, - "node_modules/@radix-ui/react-icons": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz", - "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==", + "node_modules/@react-native/assets-registry": { + "version": "0.78.3", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.78.3.tgz", + "integrity": "sha512-gQGoxEq7CuY/LjnHjORrNnJzUkx0YH7r/U1bvdznaaZ4CLcRFa1nKZEmZMv0h9moVqzr7GUbphJzS+RwqoGYIg==", "license": "MIT", - "peerDependencies": { - "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc" + "engines": { + "node": ">=18" } }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", - "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "node_modules/@react-native/babel-plugin-codegen": { + "version": "0.78.3", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.78.3.tgz", + "integrity": "sha512-yKs7KR9CzqGaM8mZi4vdjgaNgqomj094U325h2GWqsdj9+m/lf8e/Crd9sLDFtK0W2UCbcVw2L+M8okqXJ3oHw==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/traverse": "^7.25.3", + "@react-native/codegen": "0.78.3" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=18" } }, - "node_modules/@radix-ui/react-label": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.8.tgz", - "integrity": "sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==", + "node_modules/@react-native/babel-preset": { + "version": "0.78.3", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.78.3.tgz", + "integrity": "sha512-L1DRY8CYbrnpFoqVgeRW1FO8ZfgagYd3nx0M+9oaqG/VFX5rrfoMt011ZDeoYpmNayZS7klkqCFQLXVWAMPNBA==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.4" + "@babel/core": "^7.25.2", + "@babel/plugin-proposal-export-default-from": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-default-from": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-runtime": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.25.2", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/template": "^7.25.0", + "@react-native/babel-plugin-codegen": "0.78.3", + "babel-plugin-syntax-hermes-parser": "0.25.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=18" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "peerDependencies": { + "@babel/core": "*" } }, - "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/babel-preset/node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz", - "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==", + "node_modules/@react-native/babel-preset/node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.4" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-slot": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", - "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", + "node_modules/@react-native/babel-preset/node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-menu": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", - "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", + "node_modules/@react-native/babel-preset/node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/babel-preset/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/@react-native/babel-preset/node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/core": "^7.0.0" + } + }, + "node_modules/@react-native/babel-preset/node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-menubar": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.16.tgz", - "integrity": "sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==", + "node_modules/@react-native/babel-preset/node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-menu": "2.1.16", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-use-controllable-state": "1.2.2" + "@babel/types": "^7.28.5" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "bin": { + "parser": "bin/babel-parser.js" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@radix-ui/react-menubar/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/babel-preset/node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@radix-ui/react-navigation-menu": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", - "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", + "node_modules/@react-native/babel-preset/node_modules/@babel/plugin-transform-runtime": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", + "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.3" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@radix-ui/react-navigation-menu/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/babel-preset/node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-one-time-password-field": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.8.tgz", - "integrity": "sha512-ycS4rbwURavDPVjCb5iS3aG4lURFDILi6sKI/WITUMZ13gMmn/xGjpLoqBAalhJaDk8I3UbCM5GzKHrnzwHbvg==", + "node_modules/@react-native/babel-preset/node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "license": "MIT", "dependencies": { - "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-is-hydrated": "0.1.0", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-one-time-password-field/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/babel-preset/node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-password-toggle-field": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.3.tgz", - "integrity": "sha512-/UuCrDBWravcaMix4TdT+qlNdVwOM1Nck9kWx/vafXsdfj1ChfhOdfi3cy9SGBpWgTXwYCuboT/oYpJy3clqfw==", + "node_modules/@react-native/babel-preset/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-is-hydrated": "0.1.0" + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@radix-ui/react-password-toggle-field/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/babel-preset/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@radix-ui/react-popover": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", - "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "node_modules/@react-native/babel-preset/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" + "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } + "node_modules/@react-native/babel-preset/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==", + "license": "MIT" }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/@react-native/babel-preset/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" + "ms": "^2.1.3" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=6.0" }, "peerDependenciesMeta": { - "@types/react": { + "supports-color": { "optional": true } } }, - "node_modules/@radix-ui/react-popper": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", - "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "node_modules/@react-native/babel-preset/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==", + "license": "MIT" + }, + "node_modules/@react-native/babel-preset/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", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@react-native/codegen": { + "version": "0.78.3", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.78.3.tgz", + "integrity": "sha512-p6mbFm6vvDskMj3zBzFIhHc85i2G/f47HwkFLJYSdWUITrPaVlXLSjSoCQPhYSNqrMv2g376OZZ+QXjp50XnTQ==", "license": "MIT", "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-rect": "1.1.1", - "@radix-ui/react-use-size": "1.1.1", - "@radix-ui/rect": "1.1.1" + "@babel/parser": "^7.25.3", + "glob": "^7.1.1", + "hermes-parser": "0.25.1", + "invariant": "^2.2.4", + "jscodeshift": "^17.0.0", + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=18" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "peerDependencies": { + "@babel/preset-env": "^7.1.6" } }, - "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/codegen/node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", - "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "node_modules/@react-native/codegen/node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-layout-effect": "1.1.1" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", - "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "node_modules/@react-native/codegen/node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/codegen/node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "node_modules/@react-native/codegen/node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.3" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/codegen/node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/@react-native/codegen/node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" + "@babel/types": "^7.28.5" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "bin": { + "parser": "bin/babel-parser.js" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@radix-ui/react-progress": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", - "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", + "node_modules/@react-native/codegen/node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", "license": "MIT", "dependencies": { - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@radix-ui/react-radio-group": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz", - "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==", + "node_modules/@react-native/codegen/node_modules/@babel/register": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.28.3.tgz", + "integrity": "sha512-CieDOtd8u208eI49bYl4z1J22ySFw87IGwE+IswFEExH7e3rLgKb0WNQeumnacQ1+VoDJLYI5QFA3AJZuyZQfA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "1.1.1" + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.6", + "source-map-support": "^0.5.16" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@radix-ui/react-radio-group/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/codegen/node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", - "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "node_modules/@react-native/codegen/node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/codegen/node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-scroll-area": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", - "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "node_modules/@react-native/codegen/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==", + "license": "MIT" + }, + "node_modules/@react-native/codegen/node_modules/jscodeshift": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-17.3.0.tgz", + "integrity": "sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==", "license": "MIT", "dependencies": { - "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.1" + "@babel/core": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/preset-flow": "^7.24.7", + "@babel/preset-typescript": "^7.24.7", + "@babel/register": "^7.24.6", + "flow-parser": "0.*", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.7", + "neo-async": "^2.5.0", + "picocolors": "^1.0.1", + "recast": "^0.23.11", + "tmp": "^0.2.3", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "jscodeshift": "bin/jscodeshift.js" + }, + "engines": { + "node": ">=16" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/preset-env": "^7.1.6" }, "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { + "@babel/preset-env": { "optional": true } } }, - "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node_modules/@react-native/codegen/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", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@radix-ui/react-select": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", - "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.3", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "node_modules/@react-native/codegen/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "node_modules/@react-native/codegen/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", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/@react-native/community-cli-plugin": { + "version": "0.78.3", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.78.3.tgz", + "integrity": "sha512-Ax4mYFHxWH7xDsfPr7UR+WHBXAv3rXNzROEc7xVNsbNtpNVTHSqawUfDzH8jCO4rJEYQU18RARHwhBIXKwLFew==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" + "@react-native/dev-middleware": "0.78.3", + "@react-native/metro-babel-transformer": "0.78.3", + "chalk": "^4.0.0", + "debug": "^2.2.0", + "invariant": "^2.2.4", + "metro": "^0.81.3", + "metro-config": "^0.81.3", + "metro-core": "^0.81.3", + "readline": "^1.3.0", + "semver": "^7.1.3" + }, + "engines": { + "node": ">=18" }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@react-native-community/cli": "*" }, "peerDependenciesMeta": { - "@types/react": { + "@react-native-community/cli": { "optional": true } } }, - "node_modules/@radix-ui/react-separator": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", - "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", + "node_modules/@react-native/community-cli-plugin/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==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.3" + "color-convert": "^2.0.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=8" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@radix-ui/react-slider": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz", - "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==", + "node_modules/@react-native/community-cli-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", "dependencies": { - "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "1.1.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/community-cli-plugin/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "node_modules/@react-native/community-cli-plugin/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/@react-native/community-cli-plugin/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=10" } }, - "node_modules/@radix-ui/react-switch": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz", - "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==", + "node_modules/@react-native/community-cli-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "has-flag": "^4.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/@radix-ui/react-switch/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node_modules/@react-native/debugger-frontend": { + "version": "0.78.3", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.78.3.tgz", + "integrity": "sha512-ImYGtEI9zsF/pietY45M8vd3OVWEkECbOngOhul0GVHECBsSHuOaQ/8PoxWl9Rps+8p1048aIMsPT9QzEtGwtQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=18" } }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", - "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "node_modules/@react-native/dev-middleware": { + "version": "0.78.3", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.78.3.tgz", + "integrity": "sha512-7upCJUYTFt3AwDQqByWDmTdlHYU93AdU+rsndis2xsJI4h7DrEjKtvvEgFOJG+jGHcyct9vNu1S+Jj2g8DRguQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.78.3", + "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "selfsigned": "^2.4.1", + "serve-static": "^1.16.2", + "ws": "^6.2.3" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=18" } }, - "node_modules/@radix-ui/react-toast": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.15.tgz", - "integrity": "sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==", + "node_modules/@react-native/dev-middleware/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "ms": "2.0.0" } }, - "node_modules/@radix-ui/react-toast/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/dev-middleware/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">= 0.8" } }, - "node_modules/@radix-ui/react-toggle": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", - "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", + "node_modules/@react-native/dev-middleware/node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/@radix-ui/react-toggle-group": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", - "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", + "node_modules/@react-native/dev-middleware/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-toggle": "1.1.10", - "@radix-ui/react-use-controllable-state": "1.2.2" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=4" } }, - "node_modules/@radix-ui/react-toolbar": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.11.tgz", - "integrity": "sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==", + "node_modules/@react-native/dev-middleware/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/@react-native/dev-middleware/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-separator": "1.1.7", - "@radix-ui/react-toggle-group": "1.1.11" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "ee-first": "1.1.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">= 0.8" } }, - "node_modules/@radix-ui/react-tooltip": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", - "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", + "node_modules/@react-native/dev-middleware/node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-visually-hidden": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@react-native/dev-middleware/node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">= 0.8" } }, - "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/@react-native/dev-middleware/node_modules/send/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==", + "license": "MIT" + }, + "node_modules/@react-native/dev-middleware/node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", - "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "node_modules/@react-native/dev-middleware/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/@react-native/dev-middleware/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">= 0.8" } }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", - "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "async-limiter": "~1.0.0" } }, - "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", - "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "node_modules/@react-native/eslint-config": { + "version": "0.76.9", + "resolved": "https://registry.npmjs.org/@react-native/eslint-config/-/eslint-config-0.76.9.tgz", + "integrity": "sha512-qPAF8o01NQBOfpr+oaVXRABC/GEqNs378cUBNsqQjXpVHJtF13cbMF+2YEpp4zKfv3JSWtdrHd3oAK0UF86O4Q==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" + "@babel/core": "^7.25.2", + "@babel/eslint-parser": "^7.25.1", + "@react-native/eslint-plugin": "0.76.9", + "@typescript-eslint/eslint-plugin": "^7.1.1", + "@typescript-eslint/parser": "^7.1.1", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-ft-flow": "^2.0.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-native": "^4.0.0" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=18" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "peerDependencies": { + "eslint": ">=8", + "prettier": ">=2" } }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", - "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "node_modules/@react-native/eslint-config/node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "dev": true, "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-use-is-hydrated": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", - "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", + "node_modules/@react-native/eslint-config/node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, "license": "MIT", "dependencies": { - "use-sync-external-store": "^1.5.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@radix-ui/react-use-is-hydrated/node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "node_modules/@react-native/eslint-config/node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "dev": true, "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", - "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "node_modules/@react-native/eslint-config/node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", - "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "node_modules/@react-native/eslint-config/node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", - "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "node_modules/@react-native/eslint-config/node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/rect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", - "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "node_modules/@react-native/eslint-config/node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" + "@babel/types": "^7.28.5" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "bin": { + "parser": "bin/babel-parser.js" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", - "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "node_modules/@react-native/eslint-config/node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@radix-ui/rect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", - "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", - "license": "MIT" - }, - "node_modules/@randlabs/communication-bridge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@randlabs/communication-bridge/-/communication-bridge-1.0.1.tgz", - "integrity": "sha512-CzS0U8IFfXNK7QaJFE4pjbxDGfPjbXBEsEaCn9FN15F+ouSAEUQkva3Gl66hrkBZOGexKFEWMwUHIDKpZ2hfVg==", - "optional": true - }, - "node_modules/@randlabs/myalgo-connect": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@randlabs/myalgo-connect/-/myalgo-connect-1.4.2.tgz", - "integrity": "sha512-K9hEyUi7G8tqOp7kWIALJLVbGCByhilcy6123WfcorxWwiE1sbQupPyIU5f3YdQK6wMjBsyTWiLW52ZBMp7sXA==", - "optional": true, + "node_modules/@react-native/eslint-config/node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@randlabs/communication-bridge": "1.0.1" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@react-native-async-storage/async-storage": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz", - "integrity": "sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag==", + "node_modules/@react-native/eslint-config/node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "dev": true, + "license": "MIT", "dependencies": { - "merge-options": "^3.0.4" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, - "peerDependencies": { - "react-native": "^0.0.0-0 || >=0.60 <1.0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@react-native-clipboard/clipboard": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.16.3.tgz", - "integrity": "sha512-cMIcvoZKIrShzJHEaHbTAp458R9WOv0fB6UyC7Ek4Qk561Ow/DrzmmJmH/rAZg21Z6ixJ4YSdFDC14crqIBmCQ==", + "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dev": true, "license": "MIT", - "workspaces": [ - "example" - ], + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, "peerDependencies": { - "react": ">= 16.9.0", - "react-native": ">= 0.61.5", - "react-native-macos": ">= 0.61.0", - "react-native-windows": ">= 0.61.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { - "react-native-macos": { - "optional": true - }, - "react-native-windows": { + "typescript": { "optional": true } } }, - "node_modules/@react-native-community/blur": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@react-native-community/blur/-/blur-4.4.1.tgz", - "integrity": "sha512-XBSsRiYxE/MOEln2ayunShfJtWztHwUxLFcSL20o+HNNRnuUDv+GXkF6FmM2zE8ZUfrnhQ/zeTqvnuDPGw6O8A==", - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/@react-native-community/cli-config-android": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-android/-/cli-config-android-18.0.1.tgz", - "integrity": "sha512-1wzmGLfS7qgzm0ZfwX/f6Lat/af8/UYdjwtb3ap6RfKNclvIoap0wN6uBeiANmLfk0/BhoG8K1vKtIPwlU/V1A==", + "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "18.0.1", - "chalk": "^4.1.2", - "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.4.1" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" } }, - "node_modules/@react-native-community/cli-config-android/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==", - "license": "MIT", + "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "color-convert": "^2.0.1" + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@react-native-community/cli-config-android/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@react-native-community/cli-config-android/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@react-native-community/cli-config-apple": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-apple/-/cli-config-apple-18.0.1.tgz", - "integrity": "sha512-ybr1ZrOSd/Z+oCJ1qVSKVQauvneObTu3VjvYPhhrme7tUUSaYmd3iikaWonbKk5rVp+2WqOFR6Cy7XqVfwwG8A==", + "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "18.0.1", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" } }, - "node_modules/@react-native-community/cli-config-apple/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/@react-native/eslint-config/node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@react-native-community/cli-config-apple/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", + "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@react-native-community/cli-config-apple/node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "node_modules/@react-native/eslint-config/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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "node_modules/@react-native-community/cli-config-apple/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@react-native-community/cli-config-apple/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==", + "node_modules/@react-native/eslint-config/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, "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/@react-native-community/cli-config-apple/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", - "engines": { - "node": ">=10.17.0" - } + "node_modules/@react-native/eslint-config/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, + "license": "MIT" }, - "node_modules/@react-native-community/cli-config-apple/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==", + "node_modules/@react-native/eslint-config/node_modules/eslint-config-prettier": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", + "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/@react-native-community/cli-config-apple/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==", + "node_modules/@react-native/eslint-config/node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "dev": true, "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "@typescript-eslint/utils": "^5.10.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } } }, - "node_modules/@react-native-community/cli-config-apple/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", + "node_modules/@react-native/eslint-config/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@react-native-community/cli-config-apple/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", + "node_modules/@react-native/eslint-config/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, + "license": "ISC", "dependencies": { - "has-flag": "^4.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@react-native-community/cli-tools": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-18.0.1.tgz", - "integrity": "sha512-WxWFXwfYhHR2eYiB4lkHZVC/PmIkRWeVHBQKmn0h1mecr3GrHYO4BzW1jpD5Xt6XZ9jojQ9wE5xrCqXjiMSAIQ==", - "license": "MIT", - "dependencies": { - "@vscode/sudo-prompt": "^9.0.0", - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "launch-editor": "^2.9.1", - "mime": "^2.4.1", - "ora": "^5.4.1", - "prompts": "^2.4.2", - "semver": "^7.5.2" + "node_modules/@react-native/eslint-config/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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@react-native-community/cli-tools/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/@react-native/eslint-plugin": { + "version": "0.76.9", + "resolved": "https://registry.npmjs.org/@react-native/eslint-plugin/-/eslint-plugin-0.76.9.tgz", + "integrity": "sha512-8tIIbICmbsYBUy/Zxl7FF9O0OfQa2ycBUHOWiAN16l7fR9CEyfqM3wY5gcJFPTB9gafGfOR/44876S/vhzNdCQ==", + "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "node_modules/@react-native-community/cli-tools/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@react-native/gradle-plugin": { + "version": "0.78.3", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.78.3.tgz", + "integrity": "sha512-Nrg3TRd/kjE+qOvukqeP5GqD1/oMd25X2yv370lWHBt9d0RJ0d008almkb5fHxQa+vKPeiAEhK726qCX8YXvIQ==", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18" } }, - "node_modules/@react-native-community/cli-tools/node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/@react-native/js-polyfills": { + "version": "0.78.3", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.78.3.tgz", + "integrity": "sha512-RvWAV2qU+XgMRVF+WIJQIqKdfrth1ghhdzAoKkXpXRKgWPps/6ZSCFgxkSjYaxAwXREOEx8/HunSmXDCsW+0ag==", "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, "engines": { - "node": ">= 8" + "node": ">=18" } }, - "node_modules/@react-native-community/cli-tools/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli-tools/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==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/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", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/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", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/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==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@react-native-community/cli-tools/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==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/hooks": { - "version": "100.1.0", - "resolved": "https://registry.npmjs.org/@react-native-community/hooks/-/hooks-100.1.0.tgz", - "integrity": "sha512-aXESGr6WcnwyeIl+SiCLNFpbApzTmupyYzm2OkGjMuwHr42+a3G65xxTxN/xHuNdTVWO0dXbOwyLgEkQ0i/qZg==", - "license": "ISC", - "peerDependencies": { - "react": ">=18.0.0", - "react-native": ">=0.70" - } - }, - "node_modules/@react-native-community/netinfo": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-11.4.1.tgz", - "integrity": "sha512-B0BYAkghz3Q2V09BF88RA601XursIEA111tnc2JOaN7axJWmNefmfjZqw/KdSxKZp7CZUuPpjBmz/WCR9uaHYg==", - "license": "MIT", - "peerDependencies": { - "react-native": ">=0.59" - } - }, - "node_modules/@react-native-documents/picker": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/@react-native-documents/picker/-/picker-10.1.2.tgz", - "integrity": "sha512-JzbFmFp0SmG0FEKt4Q62trewHMFpas2zAX0n5EANwrU9kondnzAEF7/xxz2EA2tfZNwnkHelqG8A7iedGleMRw==", - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/@react-native/assets-registry": { - "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.78.3.tgz", - "integrity": "sha512-gQGoxEq7CuY/LjnHjORrNnJzUkx0YH7r/U1bvdznaaZ4CLcRFa1nKZEmZMv0h9moVqzr7GUbphJzS+RwqoGYIg==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.78.3.tgz", - "integrity": "sha512-yKs7KR9CzqGaM8mZi4vdjgaNgqomj094U325h2GWqsdj9+m/lf8e/Crd9sLDFtK0W2UCbcVw2L+M8okqXJ3oHw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.3", - "@react-native/codegen": "0.78.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/babel-preset": { + "node_modules/@react-native/metro-babel-transformer": { "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.78.3.tgz", - "integrity": "sha512-L1DRY8CYbrnpFoqVgeRW1FO8ZfgagYd3nx0M+9oaqG/VFX5rrfoMt011ZDeoYpmNayZS7klkqCFQLXVWAMPNBA==", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.78.3.tgz", + "integrity": "sha512-VSzAJ5G7uD1F5nG6NagHZFq6Q6dpsCU6LH+2j7iTsXZ9QUSds54f+WP5RC0UHZcVkQavSfqzu3+wj4pYGv5Pzg==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", - "@babel/plugin-proposal-export-default-from": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-default-from": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.4", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.25.4", - "@babel/plugin-transform-classes": "^7.25.4", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-flow-strip-types": "^7.25.2", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-runtime": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.25.2", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/template": "^7.25.0", - "@react-native/babel-plugin-codegen": "0.78.3", - "babel-plugin-syntax-hermes-parser": "0.25.1", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" + "@react-native/babel-preset": "0.78.3", + "hermes-parser": "0.25.1", + "nullthrows": "^1.1.1" }, "engines": { "node": ">=18" @@ -25776,7 +23753,7 @@ "@babel/core": "*" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/compat-data": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/compat-data": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", @@ -25785,7 +23762,7 @@ "node": ">=6.9.0" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/core": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/core": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", @@ -25815,7 +23792,7 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/generator": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/generator": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", @@ -25831,7 +23808,7 @@ "node": ">=6.9.0" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/helper-compilation-targets": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/helper-compilation-targets": { "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", @@ -25847,23 +23824,7 @@ "node": ">=6.9.0" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@react-native/babel-preset/node_modules/@babel/helper-module-transforms": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/helper-module-transforms": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", @@ -25880,7 +23841,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/helpers": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/helpers": { "version": "7.28.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", @@ -25893,7 +23854,7 @@ "node": ">=6.9.0" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/parser": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/parser": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", @@ -25908,46 +23869,7 @@ "node": ">=6.0.0" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", - "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@react-native/babel-preset/node_modules/@babel/plugin-transform-runtime": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", - "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@react-native/babel-preset/node_modules/@babel/template": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/template": { "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", @@ -25961,7 +23883,7 @@ "node": ">=6.9.0" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/traverse": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/traverse": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", @@ -25979,7 +23901,7 @@ "node": ">=6.9.0" } }, - "node_modules/@react-native/babel-preset/node_modules/@babel/types": { + "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/types": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", @@ -25992,75 +23914,13 @@ "node": ">=6.9.0" } }, - "node_modules/@react-native/babel-preset/node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@react-native/babel-preset/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@react-native/babel-preset/node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@react-native/babel-preset/node_modules/convert-source-map": { + "node_modules/@react-native/metro-babel-transformer/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==", "license": "MIT" }, - "node_modules/@react-native/babel-preset/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@react-native/babel-preset/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==", - "license": "MIT" - }, - "node_modules/@react-native/babel-preset/node_modules/semver": { + "node_modules/@react-native/metro-babel-transformer/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", @@ -26069,1482 +23929,1386 @@ "semver": "bin/semver.js" } }, - "node_modules/@react-native/codegen": { + "node_modules/@react-native/metro-config": { "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.78.3.tgz", - "integrity": "sha512-p6mbFm6vvDskMj3zBzFIhHc85i2G/f47HwkFLJYSdWUITrPaVlXLSjSoCQPhYSNqrMv2g376OZZ+QXjp50XnTQ==", + "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.78.3.tgz", + "integrity": "sha512-ImYGVJmqyo7oVjNpaCZoZXxkvbF54lDPSvUjTSUD+RcR+Hj2xTuPhehql8+nAkeF14c7iWh7SKLRdj+9STht3w==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.3", - "glob": "^7.1.1", - "hermes-parser": "0.25.1", - "invariant": "^2.2.4", - "jscodeshift": "^17.0.0", - "nullthrows": "^1.1.1", - "yargs": "^17.6.2" + "@react-native/js-polyfills": "0.78.3", + "@react-native/metro-babel-transformer": "0.78.3", + "metro-config": "^0.81.3", + "metro-runtime": "^0.81.3" }, "engines": { "node": ">=18" + } + }, + "node_modules/@react-native/normalize-color": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/@react-native/normalize-colors": { + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", + "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==", + "license": "MIT" + }, + "node_modules/@react-native/typescript-config": { + "version": "0.76.9", + "resolved": "https://registry.npmjs.org/@react-native/typescript-config/-/typescript-config-0.76.9.tgz", + "integrity": "sha512-68xGswpZOrCvDd1Wu6H7ZdluIDmNbN0Uq8RVnm+IQMnYx90fVHL+iNW4hClgoY/TIcsWnQQL6shES4n/1kz/fg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@react-navigation/core": { + "version": "7.13.6", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.13.6.tgz", + "integrity": "sha512-7QG29HAWOR8wYuPkfTN8L2Po+kE1xn3nsi2sS35sGngq8HYZRHfXvxrhrAZYfFnFq2hUtOhcXnSS6vEWU/5rmA==", + "license": "MIT", + "dependencies": { + "@react-navigation/routers": "^7.5.2", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.3.11", + "query-string": "^7.1.3", + "react-is": "^19.1.0", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" }, "peerDependencies": { - "@babel/preset-env": "^7.1.6" + "react": ">= 18.2.0" } }, - "node_modules/@react-native/codegen/node_modules/@babel/compat-data": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", - "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "node_modules/@react-navigation/core/node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=0.10" } }, - "node_modules/@react-native/codegen/node_modules/@babel/core": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", - "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "node_modules/@react-navigation/core/node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=0.10.0" } }, - "node_modules/@react-native/codegen/node_modules/@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "node_modules/@react-navigation/core/node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/codegen/node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, + "node_modules/@react-navigation/core/node_modules/react-is": { + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.1.tgz", + "integrity": "sha512-L7BnWgRbMwzMAubQcS7sXdPdNLmKlucPlopgAzx7FtYbksWZgEWiuYM5x9T6UqS2Ne0rsgQTq5kY2SGqpzUkYA==", + "license": "MIT" + }, + "node_modules/@react-navigation/core/node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=6" } }, - "node_modules/@react-native/codegen/node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "node_modules/@react-navigation/core/node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, "peerDependencies": { - "@babel/core": "^7.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@react-native/codegen/node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "node_modules/@react-navigation/elements": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.2.tgz", + "integrity": "sha512-J1GltOAGowNLznEphV/kr4zs0U7mUBO1wVA2CqpkN8ePBsoxrAmsd+T5sEYUCXN9KgTDFvc6IfcDqrGSQngd/g==", "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" + "color": "^4.2.3", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@react-native-masked-view/masked-view": ">= 0.2.0", + "@react-navigation/native": "^7.1.25", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0" + }, + "peerDependenciesMeta": { + "@react-native-masked-view/masked-view": { + "optional": true + } } }, - "node_modules/@react-native/codegen/node_modules/@babel/parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", - "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "node_modules/@react-navigation/elements/node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.5" - }, - "bin": { - "parser": "bin/babel-parser.js" + "color-convert": "^2.0.1", + "color-string": "^1.9.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=12.5.0" } }, - "node_modules/@react-native/codegen/node_modules/@babel/preset-typescript": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", - "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "node_modules/@react-navigation/elements/node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-navigation/native": { + "version": "7.1.25", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.25.tgz", + "integrity": "sha512-zQeWK9txDePWbYfqTs0C6jeRdJTm/7VhQtW/1IbJNDi9/rFIRzZule8bdQPAnf8QWUsNujRmi1J9OG/hhfbalg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" + "@react-navigation/core": "^7.13.6", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.3.11", + "use-latest-callback": "^0.2.4" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": ">= 18.2.0", + "react-native": "*" } }, - "node_modules/@react-native/codegen/node_modules/@babel/register": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.28.3.tgz", - "integrity": "sha512-CieDOtd8u208eI49bYl4z1J22ySFw87IGwE+IswFEExH7e3rLgKb0WNQeumnacQ1+VoDJLYI5QFA3AJZuyZQfA==", + "node_modules/@react-navigation/routers": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.2.tgz", + "integrity": "sha512-kymreY5aeTz843E+iPAukrsOtc7nabAH6novtAPREmmGu77dQpfxPB2ZWpKb5nRErIRowp1kYRoN2Ckl+S6JYw==", "license": "MIT", "dependencies": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.6", - "source-map-support": "^0.5.16" - }, - "engines": { - "node": ">=6.9.0" + "nanoid": "^3.3.11" + } + }, + "node_modules/@react-navigation/stack": { + "version": "7.6.12", + "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-7.6.12.tgz", + "integrity": "sha512-hq5d+lWUwBnwPcBNyUYHiirzRuiD5YhQDIgZWzRConfcRwI/qwFW5+5bCCJ3fQZnNlP05UA4ZlI6r1ysU6y6ww==", + "license": "MIT", + "dependencies": { + "@react-navigation/elements": "^2.9.2", + "color": "^4.2.3", + "use-latest-callback": "^0.2.4" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@react-navigation/native": "^7.1.25", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-gesture-handler": ">= 2.0.0", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" } }, - "node_modules/@react-native/codegen/node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "node_modules/@react-navigation/stack/node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "color-convert": "^2.0.1", + "color-string": "^1.9.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=12.5.0" } }, - "node_modules/@react-native/codegen/node_modules/@babel/traverse": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "node_modules/@react-spring/animated": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-10.0.3.tgz", + "integrity": "sha512-7MrxADV3vaUADn2V9iYhaIL6iOWRx9nCJjYrsk2AHD2kwPr6fg7Pt0v+deX5RnCDmCKNnD6W5fasiyM8D+wzJQ==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" + "@react-spring/shared": "~10.0.3", + "@react-spring/types": "~10.0.3" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@react-native/codegen/node_modules/@babel/types": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", - "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "node_modules/@react-spring/core": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-10.0.3.tgz", + "integrity": "sha512-D4DwNO68oohDf/0HG2G0Uragzb9IA1oXblxrd6MZAcBcUQG2EHUWXewjdECMPLNmQvlYVyyBRH6gPxXM5DX7DQ==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@react-spring/animated": "~10.0.3", + "@react-spring/shared": "~10.0.3", + "@react-spring/types": "~10.0.3" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-spring/donate" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@react-native/codegen/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/@react-spring/rafz": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-10.0.3.tgz", + "integrity": "sha512-Ri2/xqt8OnQ2iFKkxKMSF4Nqv0LSWnxXT4jXFzBDsHgeeH/cHxTLupAWUwmV9hAGgmEhBmh5aONtj3J6R/18wg==", "license": "MIT" }, - "node_modules/@react-native/codegen/node_modules/jscodeshift": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-17.3.0.tgz", - "integrity": "sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==", + "node_modules/@react-spring/shared": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-10.0.3.tgz", + "integrity": "sha512-geCal66nrkaQzUVhPkGomylo+Jpd5VPK8tPMEDevQEfNSWAQP15swHm+MCRG4wVQrQlTi9lOzKzpRoTL3CA84Q==", "license": "MIT", "dependencies": { - "@babel/core": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/plugin-transform-class-properties": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/preset-flow": "^7.24.7", - "@babel/preset-typescript": "^7.24.7", - "@babel/register": "^7.24.6", - "flow-parser": "0.*", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.7", - "neo-async": "^2.5.0", - "picocolors": "^1.0.1", - "recast": "^0.23.11", - "tmp": "^0.2.3", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "jscodeshift": "bin/jscodeshift.js" - }, - "engines": { - "node": ">=16" + "@react-spring/rafz": "~10.0.3", + "@react-spring/types": "~10.0.3" }, "peerDependencies": { - "@babel/preset-env": "^7.1.6" - }, - "peerDependenciesMeta": { - "@babel/preset-env": { - "optional": true - } + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@react-native/codegen/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", - "bin": { - "semver": "bin/semver.js" + "node_modules/@react-spring/types": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-10.0.3.tgz", + "integrity": "sha512-H5Ixkd2OuSIgHtxuHLTt7aJYfhMXKXT/rK32HPD/kSrOB6q6ooeiWAXkBy7L8F3ZxdkBb9ini9zP9UwnEFzWgQ==", + "license": "MIT" + }, + "node_modules/@react-spring/web": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-10.0.3.tgz", + "integrity": "sha512-ndU+kWY81rHsT7gTFtCJ6mrVhaJ6grFmgTnENipzmKqot4HGf5smPNK+cZZJqoGeDsj9ZsiWPW4geT/NyD484A==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~10.0.3", + "@react-spring/core": "~10.0.3", + "@react-spring/shared": "~10.0.3", + "@react-spring/types": "~10.0.3" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@react-native/codegen/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" + "node_modules/@redux-devtools/app": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.5", + "@redux-devtools/chart-monitor": "^5.0.0", + "@redux-devtools/core": "^4.0.0", + "@redux-devtools/inspector-monitor": "^6.0.0", + "@redux-devtools/inspector-monitor-test-tab": "^4.0.0", + "@redux-devtools/inspector-monitor-trace-tab": "^4.0.0", + "@redux-devtools/log-monitor": "^5.0.0", + "@redux-devtools/rtk-query-monitor": "^5.0.0", + "@redux-devtools/slider-monitor": "^5.0.0", + "@redux-devtools/ui": "^1.3.1", + "@reduxjs/toolkit": "^1.9.7", + "d3-state-visualizer": "^2.0.0", + "javascript-stringify": "^2.1.0", + "jsan": "^3.1.14", + "jsondiffpatch": "^0.5.0", + "localforage": "^1.10.0", + "lodash": "^4.17.21", + "react-icons": "^4.12.0", + "react-is": "^18.2.0", + "react-redux": "^8.1.3", + "redux": "^4.2.1", + "redux-persist": "^6.0.0", + "socketcluster-client": "^17.2.2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "@types/styled-components": "^5.1.34", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", + "styled-components": "^5.3.11" } }, - "node_modules/@react-native/codegen/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", + "node_modules/@redux-devtools/app/node_modules/@babel/runtime": { + "version": "7.23.9", + "dev": true, + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6.9.0" } }, - "node_modules/@react-native/community-cli-plugin": { - "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.78.3.tgz", - "integrity": "sha512-Ax4mYFHxWH7xDsfPr7UR+WHBXAv3rXNzROEc7xVNsbNtpNVTHSqawUfDzH8jCO4rJEYQU18RARHwhBIXKwLFew==", + "node_modules/@redux-devtools/app/node_modules/@redux-devtools/core": { + "version": "4.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@react-native/dev-middleware": "0.78.3", - "@react-native/metro-babel-transformer": "0.78.3", - "chalk": "^4.0.0", - "debug": "^2.2.0", - "invariant": "^2.2.4", - "metro": "^0.81.3", - "metro-config": "^0.81.3", - "metro-core": "^0.81.3", - "readline": "^1.3.0", - "semver": "^7.1.3" + "@babel/runtime": "^7.23.5", + "@redux-devtools/instrument": "^2.2.0", + "lodash": "^4.17.21" }, - "engines": { - "node": ">=18" + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "react-redux": "^7.0.0 || ^8.0.0 || ^9.0.0", + "redux": "^3.5.2 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@redux-devtools/app/node_modules/@reduxjs/toolkit": { + "version": "1.9.7", + "dev": true, + "license": "MIT", + "dependencies": { + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" }, "peerDependencies": { - "@react-native-community/cli": "*" + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" }, "peerDependenciesMeta": { - "@react-native-community/cli": { + "react": { + "optional": true + }, + "react-redux": { "optional": true } } }, - "node_modules/@react-native/community-cli-plugin/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/@redux-devtools/app/node_modules/immer": { + "version": "9.0.21", + "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@redux-devtools/app/node_modules/react-icons": { + "version": "4.12.0", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "react": "*" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@redux-devtools/app/node_modules/react-is": { + "version": "18.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@redux-devtools/app/node_modules/react-redux": { + "version": "8.1.3", + "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "@babel/runtime": "^7.12.1", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/use-sync-external-store": "^0.0.3", + "hoist-non-react-statics": "^3.3.2", + "react-is": "^18.0.0", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^16.8 || ^17.0 || ^18.0", + "@types/react-dom": "^16.8 || ^17.0 || ^18.0", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0", + "react-native": ">=0.59", + "redux": "^4 || ^5.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "redux": { + "optional": true + } } }, - "node_modules/@react-native/community-cli-plugin/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/@redux-devtools/app/node_modules/regenerator-runtime": { + "version": "0.14.1", + "dev": true, "license": "MIT" }, - "node_modules/@react-native/community-cli-plugin/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/@redux-devtools/app/node_modules/reselect": { + "version": "4.1.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@redux-devtools/chart-monitor": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.5", + "@types/redux-devtools-themes": "^1.0.3", + "d3-state-visualizer": "^2.0.0", + "deepmerge": "^4.3.1", + "redux-devtools-themes": "^1.0.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@redux-devtools/core": "^4.0.0", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@redux-devtools/chart-monitor/node_modules/@babel/runtime": { + "version": "7.23.9", + "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/@react-native/debugger-frontend": { - "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.78.3.tgz", - "integrity": "sha512-ImYGtEI9zsF/pietY45M8vd3OVWEkECbOngOhul0GVHECBsSHuOaQ/8PoxWl9Rps+8p1048aIMsPT9QzEtGwtQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=18" + "node_modules/@redux-devtools/chart-monitor/node_modules/regenerator-runtime": { + "version": "0.14.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@redux-devtools/cli": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@apollo/server": "^4.9.5", + "@emotion/react": "^11.11.3", + "@redux-devtools/app": "^6.0.0", + "@types/react": "^18.2.46", + "body-parser": "^1.20.2", + "chalk": "^5.3.0", + "cors": "^2.8.5", + "cross-spawn": "^7.0.3", + "electron": "^27.2.0", + "express": "^4.18.2", + "get-port": "^7.0.0", + "graphql": "^16.8.1", + "knex": "^3.1.0", + "lodash-es": "^4.17.21", + "minimist": "^1.2.8", + "morgan": "^1.10.0", + "open": "^10.0.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-is": "^18.2.0", + "semver": "^7.5.4", + "socketcluster-server": "^19.0.1", + "sqlite3": "^5.1.6", + "styled-components": "^5.3.11", + "uuid": "^9.0.1" + }, + "bin": { + "redux-devtools": "bin/redux-devtools.js" + }, + "engines": { + "node": ">= 18.12.0" } }, - "node_modules/@react-native/dev-middleware": { - "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.78.3.tgz", - "integrity": "sha512-7upCJUYTFt3AwDQqByWDmTdlHYU93AdU+rsndis2xsJI4h7DrEjKtvvEgFOJG+jGHcyct9vNu1S+Jj2g8DRguQ==", + "node_modules/@redux-devtools/cli/node_modules/body-parser": { + "version": "1.20.2", + "dev": true, "license": "MIT", "dependencies": { - "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.78.3", - "chrome-launcher": "^0.15.2", - "chromium-edge-launcher": "^0.2.0", - "connect": "^3.6.5", - "debug": "^2.2.0", - "invariant": "^2.2.4", - "nullthrows": "^1.1.1", - "open": "^7.0.3", - "selfsigned": "^2.4.1", - "serve-static": "^1.16.2", - "ws": "^6.2.3" + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">=18" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/@react-native/dev-middleware/node_modules/debug": { + "node_modules/@redux-devtools/cli/node_modules/body-parser/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/@react-native/dev-middleware/node_modules/depd": { + "node_modules/@redux-devtools/cli/node_modules/body-parser/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "dev": true, + "license": "MIT" }, - "node_modules/@react-native/dev-middleware/node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "node_modules/@redux-devtools/cli/node_modules/bundle-name": { + "version": "4.1.0", + "dev": true, "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/dev-middleware/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/@redux-devtools/cli/node_modules/bytes": { + "version": "3.1.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/@react-native/dev-middleware/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/@redux-devtools/cli/node_modules/commander": { + "version": "10.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, "engines": { - "node": ">= 0.8" + "node": ">=14" } }, - "node_modules/@react-native/dev-middleware/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/@redux-devtools/cli/node_modules/cors": { + "version": "2.8.5", + "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" + "dependencies": { + "object-assign": "^4", + "vary": "^1" }, "engines": { - "node": ">=4" + "node": ">= 0.10" } }, - "node_modules/@react-native/dev-middleware/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/@react-native/dev-middleware/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/@redux-devtools/cli/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">= 8" } }, - "node_modules/@react-native/dev-middleware/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "node_modules/@redux-devtools/cli/node_modules/default-browser": { + "version": "5.2.1", + "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/dev-middleware/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "node_modules/@redux-devtools/cli/node_modules/default-browser-id": { + "version": "5.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/dev-middleware/node_modules/send/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==", - "license": "MIT" - }, - "node_modules/@react-native/dev-middleware/node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "node_modules/@redux-devtools/cli/node_modules/depd": { + "version": "2.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.8" } }, - "node_modules/@react-native/dev-middleware/node_modules/setprototypeof": { + "node_modules/@redux-devtools/cli/node_modules/destroy": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/@react-native/dev-middleware/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/@react-native/dev-middleware/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "node_modules/@redux-devtools/cli/node_modules/get-port": { + "version": "7.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0" + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/eslint-config": { - "version": "0.76.9", - "resolved": "https://registry.npmjs.org/@react-native/eslint-config/-/eslint-config-0.76.9.tgz", - "integrity": "sha512-qPAF8o01NQBOfpr+oaVXRABC/GEqNs378cUBNsqQjXpVHJtF13cbMF+2YEpp4zKfv3JSWtdrHd3oAK0UF86O4Q==", + "node_modules/@redux-devtools/cli/node_modules/http-errors": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@babel/eslint-parser": "^7.25.1", - "@react-native/eslint-plugin": "0.76.9", - "@typescript-eslint/eslint-plugin": "^7.1.1", - "@typescript-eslint/parser": "^7.1.1", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-ft-flow": "^2.0.1", - "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-react": "^7.30.1", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-native": "^4.0.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "eslint": ">=8", - "prettier": ">=2" + "node": ">= 0.8" } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/compat-data": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", - "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "node_modules/@redux-devtools/cli/node_modules/iconv-lite": { + "version": "0.4.24", "dev": true, "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/core": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", - "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "node_modules/@redux-devtools/cli/node_modules/is-wsl": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "node_modules/@redux-devtools/cli/node_modules/knex": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" + "colorette": "2.0.19", + "commander": "^10.0.0", + "debug": "4.3.4", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.17.21", + "pg-connection-string": "2.6.2", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=16" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "node_modules/@redux-devtools/cli/node_modules/lru-cache": { + "version": "6.0.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "node_modules/@redux-devtools/cli/node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" + "ee-first": "1.1.1" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">= 0.8" } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "node_modules/@redux-devtools/cli/node_modules/open": { + "version": "10.0.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", - "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "node_modules/@redux-devtools/cli/node_modules/path-key": { + "version": "3.1.1", "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.5" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "node_modules/@redux-devtools/cli/node_modules/pg-connection-string": { + "version": "2.6.2", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/@redux-devtools/cli/node_modules/qs": { + "version": "6.11.0", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/traverse": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "node_modules/@redux-devtools/cli/node_modules/raw-body": { + "version": "2.5.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.8" } }, - "node_modules/@react-native/eslint-config/node_modules/@babel/types": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", - "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "node_modules/@redux-devtools/cli/node_modules/react-is": { + "version": "18.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@redux-devtools/cli/node_modules/run-applescript": { + "version": "7.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, "engines": { - "node": ">=6.9.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "node_modules/@redux-devtools/cli/node_modules/semver": { + "version": "7.6.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "lru-cache": "^6.0.0" }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "bin": { + "semver": "bin/semver.js" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=10" } }, - "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "node_modules/@redux-devtools/cli/node_modules/setprototypeof": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, + "node_modules/@redux-devtools/cli/node_modules/shebang-command": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" + "node": ">=8" } }, - "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "node_modules/@redux-devtools/cli/node_modules/shebang-regex": { + "version": "3.0.0", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4" - }, + "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "node_modules/@redux-devtools/cli/node_modules/statuses": { + "version": "2.0.1", "dev": true, "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">= 0.8" } }, - "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "node_modules/@redux-devtools/cli/node_modules/uuid": { + "version": "9.0.1", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@redux-devtools/cli/node_modules/yallist": { + "version": "4.0.0", "dev": true, + "license": "ISC" + }, + "node_modules/@redux-devtools/core": { + "version": "3.14.0", "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@babel/runtime": "^7.23.2", + "@redux-devtools/instrument": "^2.2.0", + "@types/prop-types": "^15.7.10", + "lodash": "^4.17.21", + "prop-types": "^15.8.1" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "react": "^0.14.9 || ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-redux": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "redux": "^3.5.2 || ^4.0.0 || ^5.0.0" } }, - "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "dev": true, + "node_modules/@redux-devtools/core/node_modules/@babel/runtime": { + "version": "7.23.9", "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" + "node": ">=6.9.0" } }, - "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "dev": true, + "node_modules/@redux-devtools/core/node_modules/prop-types": { + "version": "15.8.1", "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "node_modules/@redux-devtools/core/node_modules/regenerator-runtime": { + "version": "0.14.1", + "license": "MIT" + }, + "node_modules/@redux-devtools/inspector-monitor": { + "version": "6.0.0", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@babel/runtime": "^7.23.5", + "@dnd-kit/core": "^6.1.0", + "@dnd-kit/modifiers": "^7.0.0", + "@dnd-kit/sortable": "^8.0.0", + "@dnd-kit/utilities": "^3.2.2", + "@types/lodash": "^4.14.202", + "@types/redux-devtools-themes": "^1.0.3", + "dateformat": "^5.0.3", + "hex-rgba": "^1.0.2", + "immutable": "^4.3.4", + "javascript-stringify": "^2.1.0", + "jsondiffpatch": "^0.5.0", + "lodash.debounce": "^4.0.8", + "react-base16-styling": "^0.9.1", + "react-json-tree": "^0.18.0", + "redux-devtools-themes": "^1.0.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@redux-devtools/core": "^4.0.0", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", + "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/@react-native/eslint-config/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==", + "node_modules/@redux-devtools/inspector-monitor-test-tab": { + "version": "4.0.0", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.5", + "@redux-devtools/ui": "^1.3.1", + "es6template": "^1.0.5", + "javascript-stringify": "^2.1.0", + "jsan": "^3.1.14", + "object-path": "^0.11.8", + "react-icons": "^4.12.0", + "simple-diff": "^1.7.2" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@redux-devtools/inspector-monitor": "^6.0.0", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "@types/styled-components": "^5.1.34", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", + "redux": "^3.4.0 || ^4.0.0 || ^5.0.0", + "styled-components": "^5.3.11" } }, - "node_modules/@react-native/eslint-config/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "node_modules/@redux-devtools/inspector-monitor-test-tab/node_modules/@babel/runtime": { + "version": "7.23.9", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=6.9.0" } }, - "node_modules/@react-native/eslint-config/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==", + "node_modules/@redux-devtools/inspector-monitor-test-tab/node_modules/react-icons": { + "version": "4.12.0", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "peerDependencies": { + "react": "*" } }, - "node_modules/@react-native/eslint-config/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/@redux-devtools/inspector-monitor-test-tab/node_modules/regenerator-runtime": { + "version": "0.14.1", "dev": true, "license": "MIT" }, - "node_modules/@react-native/eslint-config/node_modules/eslint-config-prettier": { - "version": "8.10.2", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", - "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", + "node_modules/@redux-devtools/inspector-monitor-trace-tab": { + "version": "4.0.0", "dev": true, "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" + "dependencies": { + "@babel/code-frame": "^8.0.0-alpha.4", + "@babel/runtime": "^7.23.5", + "@types/chrome": "^0.0.254", + "anser": "^2.1.1", + "html-entities": "^2.4.0", + "path-browserify": "^1.0.1", + "redux-devtools-themes": "^1.0.0", + "source-map": "^0.5.7" }, "peerDependencies": { - "eslint": ">=7.0.0" + "@emotion/react": "^11.0.0", + "@redux-devtools/inspector-monitor": "^6.0.0", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", + "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/@react-native/eslint-config/node_modules/eslint-plugin-jest": { - "version": "27.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", - "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/@babel/code-frame": { + "version": "8.0.0-alpha.6", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^5.10.0" + "@babel/highlight": "^8.0.0-alpha.6", + "chalk": "^5.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint": "^7.0.0 || ^8.0.0", - "jest": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "node": "^16.20.0 || ^18.16.0 || >=20.0.0" } }, - "node_modules/@react-native/eslint-config/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.0-alpha.6", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "^16.20.0 || ^18.16.0 || >=20.0.0" } }, - "node_modules/@react-native/eslint-config/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/@babel/highlight": { + "version": "8.0.0-alpha.6", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@babel/helper-validator-identifier": "^8.0.0-alpha.6", + "chalk": "^5.3.0", + "js-tokens": "^8.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@react-native/eslint-config/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, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": "^16.20.0 || ^18.16.0 || >=20.0.0" } }, - "node_modules/@react-native/eslint-plugin": { - "version": "0.76.9", - "resolved": "https://registry.npmjs.org/@react-native/eslint-plugin/-/eslint-plugin-0.76.9.tgz", - "integrity": "sha512-8tIIbICmbsYBUy/Zxl7FF9O0OfQa2ycBUHOWiAN16l7fR9CEyfqM3wY5gcJFPTB9gafGfOR/44876S/vhzNdCQ==", + "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/@babel/runtime": { + "version": "7.23.9", "dev": true, "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" } }, - "node_modules/@react-native/gradle-plugin": { - "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.78.3.tgz", - "integrity": "sha512-Nrg3TRd/kjE+qOvukqeP5GqD1/oMd25X2yv370lWHBt9d0RJ0d008almkb5fHxQa+vKPeiAEhK726qCX8YXvIQ==", - "license": "MIT", - "engines": { - "node": ">=18" - } + "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/anser": { + "version": "2.1.1", + "dev": true, + "license": "MIT" }, - "node_modules/@react-native/js-polyfills": { - "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.78.3.tgz", - "integrity": "sha512-RvWAV2qU+XgMRVF+WIJQIqKdfrth1ghhdzAoKkXpXRKgWPps/6ZSCFgxkSjYaxAwXREOEx8/HunSmXDCsW+0ag==", - "license": "MIT", - "engines": { - "node": ">=18" - } + "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/js-tokens": { + "version": "8.0.3", + "dev": true, + "license": "MIT" }, - "node_modules/@react-native/metro-babel-transformer": { - "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.78.3.tgz", - "integrity": "sha512-VSzAJ5G7uD1F5nG6NagHZFq6Q6dpsCU6LH+2j7iTsXZ9QUSds54f+WP5RC0UHZcVkQavSfqzu3+wj4pYGv5Pzg==", + "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/regenerator-runtime": { + "version": "0.14.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@redux-devtools/inspector-monitor/node_modules/@babel/runtime": { + "version": "7.23.9", + "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@react-native/babel-preset": "0.78.3", - "hermes-parser": "0.25.1", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" + "regenerator-runtime": "^0.14.0" }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/compat-data": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", - "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", - "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/core": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", - "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "node_modules/@redux-devtools/inspector-monitor/node_modules/@types/lodash": { + "version": "4.14.202", + "dev": true, + "license": "MIT" + }, + "node_modules/@redux-devtools/inspector-monitor/node_modules/regenerator-runtime": { + "version": "0.14.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@redux-devtools/instrument": { + "version": "2.2.0", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" + "@babel/runtime": "^7.23.2", + "lodash": "^4.17.21" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "peerDependencies": { + "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "node_modules/@redux-devtools/instrument/node_modules/@babel/runtime": { + "version": "7.23.9", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "node_modules/@redux-devtools/instrument/node_modules/regenerator-runtime": { + "version": "0.14.1", + "license": "MIT" + }, + "node_modules/@redux-devtools/log-monitor": { + "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/runtime": "^7.23.5", + "@types/lodash.debounce": "^4.0.9", + "@types/redux-devtools-themes": "^1.0.3", + "lodash.debounce": "^4.0.8", + "react-json-tree": "^0.18.0", + "redux-devtools-themes": "^1.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@redux-devtools/core": "^4.0.0", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "node_modules/@redux-devtools/log-monitor/node_modules/@babel/runtime": { + "version": "7.23.9", + "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", - "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.5" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } + "node_modules/@redux-devtools/log-monitor/node_modules/regenerator-runtime": { + "version": "0.14.1", + "dev": true, + "license": "MIT" }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "node_modules/@redux-devtools/remote": { + "version": "0.8.0", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/runtime": "^7.20.7", + "@redux-devtools/instrument": "^2.1.0", + "@redux-devtools/utils": "^2.0.0", + "jsan": "^3.1.14", + "querystring": "^0.2.1", + "rn-host-detect": "^1.2.0", + "socketcluster-client": "^17.1.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "redux": "^3.5.2 || ^4.0.0" } }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/traverse": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "node_modules/@redux-devtools/remote/node_modules/@babel/runtime": { + "version": "7.23.9", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@babel/types": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", - "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "node_modules/@redux-devtools/remote/node_modules/querystring": { + "version": "0.2.1", "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, "engines": { - "node": ">=6.9.0" + "node": ">=0.4.x" } }, - "node_modules/@react-native/metro-babel-transformer/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/@redux-devtools/remote/node_modules/regenerator-runtime": { + "version": "0.14.1", "license": "MIT" }, - "node_modules/@react-native/metro-babel-transformer/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", - "bin": { - "semver": "bin/semver.js" + "node_modules/@redux-devtools/rtk-query-monitor": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.5", + "@redux-devtools/ui": "^1.3.1", + "@types/lodash": "^4.14.202", + "@types/redux-devtools-themes": "^1.0.3", + "hex-rgba": "^1.0.2", + "immutable": "^4.3.4", + "lodash.debounce": "^4.0.8", + "react-base16-styling": "^0.9.1", + "react-json-tree": "^0.18.0", + "redux-devtools-themes": "^1.0.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@redux-devtools/core": "^4.0.0", + "@reduxjs/toolkit": "^1.0.0 || ^2.0.0", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "@types/styled-components": "^5.1.34", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "redux": "^3.4.0 || ^4.0.0 || ^5.0.0", + "styled-components": "^5.3.11" } }, - "node_modules/@react-native/metro-config": { - "version": "0.78.3", - "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.78.3.tgz", - "integrity": "sha512-ImYGVJmqyo7oVjNpaCZoZXxkvbF54lDPSvUjTSUD+RcR+Hj2xTuPhehql8+nAkeF14c7iWh7SKLRdj+9STht3w==", + "node_modules/@redux-devtools/rtk-query-monitor/node_modules/@babel/runtime": { + "version": "7.23.9", "dev": true, "license": "MIT", "dependencies": { - "@react-native/js-polyfills": "0.78.3", - "@react-native/metro-babel-transformer": "0.78.3", - "metro-config": "^0.81.3", - "metro-runtime": "^0.81.3" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=18" + "node": ">=6.9.0" } }, - "node_modules/@react-native/normalize-color": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/@react-native/normalize-colors": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", - "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==", + "node_modules/@redux-devtools/rtk-query-monitor/node_modules/@types/lodash": { + "version": "4.14.202", + "dev": true, "license": "MIT" }, - "node_modules/@react-native/typescript-config": { - "version": "0.76.9", - "resolved": "https://registry.npmjs.org/@react-native/typescript-config/-/typescript-config-0.76.9.tgz", - "integrity": "sha512-68xGswpZOrCvDd1Wu6H7ZdluIDmNbN0Uq8RVnm+IQMnYx90fVHL+iNW4hClgoY/TIcsWnQQL6shES4n/1kz/fg==", + "node_modules/@redux-devtools/rtk-query-monitor/node_modules/regenerator-runtime": { + "version": "0.14.1", "dev": true, "license": "MIT" }, - "node_modules/@react-navigation/core": { - "version": "7.13.6", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.13.6.tgz", - "integrity": "sha512-7QG29HAWOR8wYuPkfTN8L2Po+kE1xn3nsi2sS35sGngq8HYZRHfXvxrhrAZYfFnFq2hUtOhcXnSS6vEWU/5rmA==", + "node_modules/@redux-devtools/serialize": { + "version": "0.4.2", "license": "MIT", "dependencies": { - "@react-navigation/routers": "^7.5.2", - "escape-string-regexp": "^4.0.0", - "fast-deep-equal": "^3.1.3", - "nanoid": "^3.3.11", - "query-string": "^7.1.3", - "react-is": "^19.1.0", - "use-latest-callback": "^0.2.4", - "use-sync-external-store": "^1.5.0" + "@babel/runtime": "^7.23.2", + "jsan": "^3.1.14" }, "peerDependencies": { - "react": ">= 18.2.0" + "immutable": "^4.0.0" } }, - "node_modules/@react-navigation/core/node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "node_modules/@redux-devtools/serialize/node_modules/@babel/runtime": { + "version": "7.23.9", "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, "engines": { - "node": ">=0.10" + "node": ">=6.9.0" } }, - "node_modules/@react-navigation/core/node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "node_modules/@redux-devtools/serialize/node_modules/regenerator-runtime": { + "version": "0.14.1", + "license": "MIT" + }, + "node_modules/@redux-devtools/slider-monitor": { + "version": "5.0.0", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@babel/runtime": "^7.23.5", + "@redux-devtools/ui": "^1.3.1", + "@types/redux-devtools-themes": "^1.0.3", + "redux-devtools-themes": "^1.0.0" + }, + "peerDependencies": { + "@redux-devtools/core": "^4.0.0", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "@types/styled-components": "^5.1.34", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "redux": "^3.4.0 || ^4.0.0 || ^5.0.0", + "styled-components": "^5.3.11" } }, - "node_modules/@react-navigation/core/node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "node_modules/@redux-devtools/slider-monitor/node_modules/@babel/runtime": { + "version": "7.23.9", + "dev": true, "license": "MIT", "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.9.0" } }, - "node_modules/@react-navigation/core/node_modules/react-is": { - "version": "19.2.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.1.tgz", - "integrity": "sha512-L7BnWgRbMwzMAubQcS7sXdPdNLmKlucPlopgAzx7FtYbksWZgEWiuYM5x9T6UqS2Ne0rsgQTq5kY2SGqpzUkYA==", + "node_modules/@redux-devtools/slider-monitor/node_modules/regenerator-runtime": { + "version": "0.14.1", + "dev": true, "license": "MIT" }, - "node_modules/@react-navigation/core/node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-navigation/core/node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "node_modules/@redux-devtools/ui": { + "version": "1.3.1", + "dev": true, "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rjsf/core": "^4.2.3", + "@types/base16": "^1.0.5", + "@types/codemirror": "^5.60.13", + "@types/json-schema": "^7.0.15", + "@types/prop-types": "^15.7.10", + "@types/redux-devtools-themes": "^1.0.3", + "@types/simple-element-resize-detector": "^1.3.3", + "base16": "^1.0.0", + "codemirror": "^5.65.15", + "color": "^4.2.3", + "prop-types": "^15.8.1", + "react-icons": "^4.11.0", + "react-select": "^5.8.0", + "redux-devtools-themes": "^1.0.0", + "simple-element-resize-detector": "^1.3.0" + }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "@types/react": "^16.3.0 || ^17.0.0 || ^18.0.0", + "@types/styled-components": "^5.0.0", + "react": "^16.3.0 || ^17.0.0 || ^18.0.0", + "styled-components": "^5.0.0" } }, - "node_modules/@react-navigation/elements": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.2.tgz", - "integrity": "sha512-J1GltOAGowNLznEphV/kr4zs0U7mUBO1wVA2CqpkN8ePBsoxrAmsd+T5sEYUCXN9KgTDFvc6IfcDqrGSQngd/g==", + "node_modules/@redux-devtools/ui/node_modules/@babel/runtime": { + "version": "7.23.9", + "dev": true, "license": "MIT", "dependencies": { - "color": "^4.2.3", - "use-latest-callback": "^0.2.4", - "use-sync-external-store": "^1.5.0" - }, - "peerDependencies": { - "@react-native-masked-view/masked-view": ">= 0.2.0", - "@react-navigation/native": "^7.1.25", - "react": ">= 18.2.0", - "react-native": "*", - "react-native-safe-area-context": ">= 4.0.0" + "regenerator-runtime": "^0.14.0" }, - "peerDependenciesMeta": { - "@react-native-masked-view/masked-view": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@react-navigation/elements/node_modules/color": { + "node_modules/@redux-devtools/ui/node_modules/color": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1", @@ -27554,838 +25318,833 @@ "node": ">=12.5.0" } }, - "node_modules/@react-navigation/elements/node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "node_modules/@redux-devtools/ui/node_modules/prop-types": { + "version": "15.8.1", + "dev": true, "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/@react-navigation/native": { - "version": "7.1.25", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.25.tgz", - "integrity": "sha512-zQeWK9txDePWbYfqTs0C6jeRdJTm/7VhQtW/1IbJNDi9/rFIRzZule8bdQPAnf8QWUsNujRmi1J9OG/hhfbalg==", + "node_modules/@redux-devtools/ui/node_modules/react-icons": { + "version": "4.12.0", + "dev": true, "license": "MIT", - "dependencies": { - "@react-navigation/core": "^7.13.6", - "escape-string-regexp": "^4.0.0", - "fast-deep-equal": "^3.1.3", - "nanoid": "^3.3.11", - "use-latest-callback": "^0.2.4" - }, "peerDependencies": { - "react": ">= 18.2.0", - "react-native": "*" + "react": "*" } }, - "node_modules/@react-navigation/routers": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.2.tgz", - "integrity": "sha512-kymreY5aeTz843E+iPAukrsOtc7nabAH6novtAPREmmGu77dQpfxPB2ZWpKb5nRErIRowp1kYRoN2Ckl+S6JYw==", - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11" - } + "node_modules/@redux-devtools/ui/node_modules/regenerator-runtime": { + "version": "0.14.1", + "dev": true, + "license": "MIT" }, - "node_modules/@react-navigation/stack": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-7.6.12.tgz", - "integrity": "sha512-hq5d+lWUwBnwPcBNyUYHiirzRuiD5YhQDIgZWzRConfcRwI/qwFW5+5bCCJ3fQZnNlP05UA4ZlI6r1ysU6y6ww==", + "node_modules/@redux-devtools/utils": { + "version": "2.1.0", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.9.2", - "color": "^4.2.3", - "use-latest-callback": "^0.2.4" + "@babel/runtime": "^7.23.2", + "@redux-devtools/core": "^3.14.0", + "@redux-devtools/serialize": "^0.4.2", + "@types/get-params": "^0.1.2", + "get-params": "^0.1.2", + "immutable": "^4.3.4", + "jsan": "^3.1.14", + "lodash": "^4.17.21", + "nanoid": "^5.0.3", + "redux": "^4.2.1" }, "peerDependencies": { - "@react-navigation/native": "^7.1.25", - "react": ">= 18.2.0", - "react-native": "*", - "react-native-gesture-handler": ">= 2.0.0", - "react-native-safe-area-context": ">= 4.0.0", - "react-native-screens": ">= 4.0.0" + "@redux-devtools/core": "^3.0.0", + "immutable": "^4.0.0", + "redux": "^4.0.0 || ^5.0.0" } }, - "node_modules/@react-navigation/stack/node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "node_modules/@redux-devtools/utils/node_modules/@babel/runtime": { + "version": "7.23.9", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=12.5.0" + "node": ">=6.9.0" } }, - "node_modules/@react-spring/animated": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-10.0.3.tgz", - "integrity": "sha512-7MrxADV3vaUADn2V9iYhaIL6iOWRx9nCJjYrsk2AHD2kwPr6fg7Pt0v+deX5RnCDmCKNnD6W5fasiyM8D+wzJQ==", + "node_modules/@redux-devtools/utils/node_modules/nanoid": { + "version": "5.0.6", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "dependencies": { - "@react-spring/shared": "~10.0.3", - "@react-spring/types": "~10.0.3" + "bin": { + "nanoid": "bin/nanoid.js" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "engines": { + "node": "^18 || >=20" } }, - "node_modules/@react-spring/core": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-10.0.3.tgz", - "integrity": "sha512-D4DwNO68oohDf/0HG2G0Uragzb9IA1oXblxrd6MZAcBcUQG2EHUWXewjdECMPLNmQvlYVyyBRH6gPxXM5DX7DQ==", + "node_modules/@redux-devtools/utils/node_modules/regenerator-runtime": { + "version": "0.14.1", + "license": "MIT" + }, + "node_modules/@redux-saga/core": { + "version": "1.2.3", "license": "MIT", "dependencies": { - "@react-spring/animated": "~10.0.3", - "@react-spring/shared": "~10.0.3", - "@react-spring/types": "~10.0.3" + "@babel/runtime": "^7.6.3", + "@redux-saga/deferred": "^1.2.1", + "@redux-saga/delay-p": "^1.2.1", + "@redux-saga/is": "^1.1.3", + "@redux-saga/symbols": "^1.1.3", + "@redux-saga/types": "^1.2.1", + "redux": "^4.0.4", + "typescript-tuple": "^2.2.1" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/react-spring/donate" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "url": "https://opencollective.com/redux-saga" } }, - "node_modules/@react-spring/rafz": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-10.0.3.tgz", - "integrity": "sha512-Ri2/xqt8OnQ2iFKkxKMSF4Nqv0LSWnxXT4jXFzBDsHgeeH/cHxTLupAWUwmV9hAGgmEhBmh5aONtj3J6R/18wg==", + "node_modules/@redux-saga/deferred": { + "version": "1.2.1", "license": "MIT" }, - "node_modules/@react-spring/shared": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-10.0.3.tgz", - "integrity": "sha512-geCal66nrkaQzUVhPkGomylo+Jpd5VPK8tPMEDevQEfNSWAQP15swHm+MCRG4wVQrQlTi9lOzKzpRoTL3CA84Q==", + "node_modules/@redux-saga/delay-p": { + "version": "1.2.1", "license": "MIT", "dependencies": { - "@react-spring/rafz": "~10.0.3", - "@react-spring/types": "~10.0.3" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "@redux-saga/symbols": "^1.1.3" } }, - "node_modules/@react-spring/types": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-10.0.3.tgz", - "integrity": "sha512-H5Ixkd2OuSIgHtxuHLTt7aJYfhMXKXT/rK32HPD/kSrOB6q6ooeiWAXkBy7L8F3ZxdkBb9ini9zP9UwnEFzWgQ==", - "license": "MIT" - }, - "node_modules/@react-spring/web": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-10.0.3.tgz", - "integrity": "sha512-ndU+kWY81rHsT7gTFtCJ6mrVhaJ6grFmgTnENipzmKqot4HGf5smPNK+cZZJqoGeDsj9ZsiWPW4geT/NyD484A==", + "node_modules/@redux-saga/is": { + "version": "1.1.3", "license": "MIT", "dependencies": { - "@react-spring/animated": "~10.0.3", - "@react-spring/core": "~10.0.3", - "@react-spring/shared": "~10.0.3", - "@react-spring/types": "~10.0.3" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "@redux-saga/symbols": "^1.1.3", + "@redux-saga/types": "^1.2.1" } }, - "node_modules/@redis/bloom": { - "version": "1.2.0", - "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" - } + "node_modules/@redux-saga/symbols": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/@redux-saga/types": { + "version": "1.2.1", + "license": "MIT" }, - "node_modules/@redis/client": { - "version": "1.5.12", + "node_modules/@reduxjs/toolkit": { + "version": "1.6.1", "license": "MIT", "dependencies": { - "cluster-key-slot": "1.1.2", - "generic-pool": "3.9.0", - "yallist": "4.0.0" + "immer": "^9.0.1", + "redux": "^4.1.0", + "redux-thunk": "^2.3.0", + "reselect": "^4.0.0" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "react": "^16.14.0 || ^17.0.0", + "react-redux": "^7.2.1" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } } }, - "node_modules/@redis/client/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@redis/graph": { - "version": "1.1.1", - "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" + "node_modules/@reown/appkit": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.1.tgz", + "integrity": "sha512-p4UEApU2f2+/BTvuXfBUSmwLcxXEuI/Z8B9ecD754YgLsY3kA68CTySHgzy7MmHVxGNwwZTQ/+JYnf8TXuhscg==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.1", + "@reown/appkit-controllers": "1.7.1", + "@reown/appkit-polyfills": "1.7.1", + "@reown/appkit-scaffold-ui": "1.7.1", + "@reown/appkit-ui": "1.7.1", + "@reown/appkit-utils": "1.7.1", + "@reown/appkit-wallet": "1.7.1", + "@walletconnect/types": "2.19.1", + "@walletconnect/universal-provider": "2.19.1", + "bs58": "6.0.0", + "valtio": "1.13.2", + "viem": ">=2.23.11" } }, - "node_modules/@redis/json": { - "version": "1.0.6", - "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" + "node_modules/@reown/appkit-adapter-solana": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@reown/appkit-adapter-solana/-/appkit-adapter-solana-1.7.1.tgz", + "integrity": "sha512-i3A16njQVXt5uTgL8Tuvvqn1bVNkU62yjkMSx/05ykJaEiN0iHTx+WOYcc9wVS/g1AB0k1OUczKyoIkkPSW9Ug==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit": "1.7.1", + "@reown/appkit-common": "1.7.1", + "@reown/appkit-controllers": "1.7.1", + "@reown/appkit-polyfills": "1.7.1", + "@reown/appkit-utils": "1.7.1", + "@reown/appkit-wallet": "1.7.1", + "@solana/wallet-adapter-base": "0.9.24", + "@solana/wallet-standard-features": "1.3.0", + "@solana/wallet-standard-util": "1.1.2", + "@solana/web3.js": "1.98.0", + "@wallet-standard/app": "1.1.0", + "@wallet-standard/base": "1.1.0", + "@wallet-standard/features": "1.1.0", + "@walletconnect/types": "2.19.1", + "@walletconnect/universal-provider": "2.19.1", + "valtio": "1.13.2" + }, + "optionalDependencies": { + "borsh": "0.7.0", + "bs58": "6.0.0" } }, - "node_modules/@redis/search": { - "version": "1.1.6", - "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" - } + "node_modules/@reown/appkit-adapter-solana/node_modules/@adraffy/ens-normalize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "license": "MIT" }, - "node_modules/@redis/time-series": { - "version": "1.0.5", + "node_modules/@reown/appkit-adapter-solana/node_modules/@noble/ciphers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", + "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/app": { - "version": "6.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@noble/curves": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", + "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.5", - "@redux-devtools/chart-monitor": "^5.0.0", - "@redux-devtools/core": "^4.0.0", - "@redux-devtools/inspector-monitor": "^6.0.0", - "@redux-devtools/inspector-monitor-test-tab": "^4.0.0", - "@redux-devtools/inspector-monitor-trace-tab": "^4.0.0", - "@redux-devtools/log-monitor": "^5.0.0", - "@redux-devtools/rtk-query-monitor": "^5.0.0", - "@redux-devtools/slider-monitor": "^5.0.0", - "@redux-devtools/ui": "^1.3.1", - "@reduxjs/toolkit": "^1.9.7", - "d3-state-visualizer": "^2.0.0", - "javascript-stringify": "^2.1.0", - "jsan": "^3.1.14", - "jsondiffpatch": "^0.5.0", - "localforage": "^1.10.0", - "lodash": "^4.17.21", - "react-icons": "^4.12.0", - "react-is": "^18.2.0", - "react-redux": "^8.1.3", - "redux": "^4.2.1", - "redux-persist": "^6.0.0", - "socketcluster-client": "^17.2.2" + "@noble/hashes": "1.7.0" }, - "peerDependencies": { - "@emotion/react": "^11.0.0", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "@types/styled-components": "^5.1.34", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", - "styled-components": "^5.3.11" + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/app/node_modules/@babel/runtime": { - "version": "7.23.9", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { - "node": ">=6.9.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/app/node_modules/@redux-devtools/core": { - "version": "4.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.5", - "@redux-devtools/instrument": "^2.2.0", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "react-redux": "^7.0.0 || ^8.0.0 || ^9.0.0", - "redux": "^3.5.2 || ^4.0.0 || ^5.0.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/app/node_modules/@reduxjs/toolkit": { - "version": "1.9.7", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", "license": "MIT", "dependencies": { - "immer": "^9.0.21", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.8" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", - "react-redux": "^7.2.1 || ^8.0.2" + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/app/node_modules/immer": { - "version": "9.0.21", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/app/node_modules/react-icons": { - "version": "4.12.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "license": "MIT", - "peerDependencies": { - "react": "*" + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/app/node_modules/react-is": { - "version": "18.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/app/node_modules/react-redux": { - "version": "8.1.3", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", - "use-sync-external-store": "^1.0.0" - }, - "peerDependencies": { - "@types/react": "^16.8 || ^17.0 || ^18.0", - "@types/react-dom": "^16.8 || ^17.0 || ^18.0", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0", - "react-native": ">=0.59", - "redux": "^4 || ^5.0.0-beta.0" + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - }, - "redux": { - "optional": true - } + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/app/node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/app/node_modules/reselect": { - "version": "4.1.8", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/chart-monitor": { - "version": "5.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.5", - "@types/redux-devtools-themes": "^1.0.3", - "d3-state-visualizer": "^2.0.0", - "deepmerge": "^4.3.1", - "redux-devtools-themes": "^1.0.0" + "engines": { + "node": "^14.21.3 || >=16" }, - "peerDependencies": { - "@redux-devtools/core": "^4.0.0", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/chart-monitor/node_modules/@babel/runtime": { - "version": "7.23.9", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-solana/node_modules/@solana/wallet-adapter-base": { + "version": "0.9.24", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.24.tgz", + "integrity": "sha512-f3kwHF/2Lx3YgcO37B45MM46YLFy4QkdLemZ+N/0SwLAnSfhq3+Vb9bC5vuoupMJ/onos09TIDeIxRdg/+51kw==", + "license": "Apache-2.0", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@solana/wallet-standard-features": "^1.1.0", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "eventemitter3": "^4.0.7" }, "engines": { - "node": ">=6.9.0" + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.77.3" } }, - "node_modules/@redux-devtools/chart-monitor/node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/cli": { - "version": "4.0.0", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/core": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", + "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", + "license": "Apache-2.0", "dependencies": { - "@apollo/server": "^4.9.5", - "@emotion/react": "^11.11.3", - "@redux-devtools/app": "^6.0.0", - "@types/react": "^18.2.46", - "body-parser": "^1.20.2", - "chalk": "^5.3.0", - "cors": "^2.8.5", - "cross-spawn": "^7.0.3", - "electron": "^27.2.0", - "express": "^4.18.2", - "get-port": "^7.0.0", - "graphql": "^16.8.1", - "knex": "^3.1.0", - "lodash-es": "^4.17.21", - "minimist": "^1.2.8", - "morgan": "^1.10.0", - "open": "^10.0.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-is": "^18.2.0", - "semver": "^7.5.4", - "socketcluster-server": "^19.0.1", - "sqlite3": "^5.1.6", - "styled-components": "^5.3.11", - "uuid": "^9.0.1" - }, - "bin": { - "redux-devtools": "bin/redux-devtools.js" + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.33.0", + "events": "3.3.0", + "uint8arrays": "3.1.0" }, "engines": { - "node": ">= 18.12.0" + "node": ">=18" } }, - "node_modules/@redux-devtools/cli/node_modules/body-parser": { - "version": "1.20.2", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/heartbeat": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", + "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "@walletconnect/events": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "events": "^3.3.0" } }, - "node_modules/@redux-devtools/cli/node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/jsonrpc-provider": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", + "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0" } }, - "node_modules/@redux-devtools/cli/node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/cli/node_modules/bundle-name": { - "version": "4.1.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/jsonrpc-types": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", + "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", "license": "MIT", "dependencies": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "events": "^3.3.0", + "keyvaluestorage-interface": "^1.0.0" } }, - "node_modules/@redux-devtools/cli/node_modules/bytes": { - "version": "3.1.2", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", + "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", "license": "MIT", - "engines": { - "node": ">= 0.8" + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0", + "ws": "^7.5.1" } }, - "node_modules/@redux-devtools/cli/node_modules/commander": { - "version": "10.0.1", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/relay-auth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", + "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", "license": "MIT", - "engines": { - "node": ">=14" + "dependencies": { + "@noble/curves": "1.8.0", + "@noble/hashes": "1.7.0", + "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "uint8arrays": "^3.0.0" } }, - "node_modules/@redux-devtools/cli/node_modules/cors": { - "version": "2.8.5", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", "license": "MIT", "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" + "tslib": "1.14.1" } }, - "node_modules/@redux-devtools/cli/node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/sign-client": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", + "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", + "license": "Apache-2.0", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" + "@walletconnect/core": "2.19.1", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "events": "3.3.0" } }, - "node_modules/@redux-devtools/cli/node_modules/default-browser": { - "version": "5.2.1", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/types": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.1.tgz", + "integrity": "sha512-XWWGLioddH7MjxhyGhylL7VVariVON2XatJq/hy0kSGJ1hdp31z194nHN5ly9M495J9Hw8lcYjGXpsgeKvgxzw==", + "license": "Apache-2.0", "dependencies": { - "bundle-name": "^4.1.0", - "default-browser-id": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" } }, - "node_modules/@redux-devtools/cli/node_modules/default-browser-id": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/universal-provider": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", + "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.19.1", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "es-toolkit": "1.33.0", + "events": "3.3.0" } }, - "node_modules/@redux-devtools/cli/node_modules/depd": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/utils": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", + "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", + "license": "Apache-2.0", + "dependencies": { + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "elliptic": "6.6.1", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" } }, - "node_modules/@redux-devtools/cli/node_modules/destroy": { - "version": "1.2.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/utils/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/cli/node_modules/get-port": { - "version": "7.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/utils/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "license": "MIT", "engines": { - "node": ">=16" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/cli/node_modules/http-errors": { - "version": "2.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" + "tslib": "1.14.1" } }, - "node_modules/@redux-devtools/cli/node_modules/iconv-lite": { - "version": "0.4.24", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" } }, - "node_modules/@redux-devtools/cli/node_modules/is-wsl": { - "version": "3.1.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@redux-devtools/cli/node_modules/knex": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "colorette": "2.0.19", - "commander": "^10.0.0", - "debug": "4.3.4", - "escalade": "^3.1.1", - "esm": "^3.2.25", - "get-package-type": "^0.1.0", - "getopts": "2.3.0", - "interpret": "^2.2.0", - "lodash": "^4.17.21", - "pg-connection-string": "2.6.2", - "rechoir": "^0.8.0", - "resolve-from": "^5.0.0", - "tarn": "^3.0.2", - "tildify": "2.0.0" - }, - "bin": { - "knex": "bin/cli.js" + "url": "https://github.com/sponsors/wevm" }, - "engines": { - "node": ">=16" + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" }, "peerDependenciesMeta": { - "better-sqlite3": { - "optional": true - }, - "mysql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "sqlite3": { + "typescript": { "optional": true }, - "tedious": { + "zod": { "optional": true } } }, - "node_modules/@redux-devtools/cli/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", + "node_modules/@reown/appkit-adapter-solana/node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "license": "Apache-2.0", + "optional": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" } }, - "node_modules/@redux-devtools/cli/node_modules/on-finished": { - "version": "2.4.1", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/borsh/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", + "optional": true, "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" + "base-x": "^3.0.2" } }, - "node_modules/@redux-devtools/cli/node_modules/open": { - "version": "10.0.3", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/bs58": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", + "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", "license": "MIT", "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "base-x": "^5.0.0" } }, - "node_modules/@redux-devtools/cli/node_modules/path-key": { - "version": "3.1.1", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/bs58/node_modules/base-x": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", + "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", + "license": "MIT" + }, + "node_modules/@reown/appkit-adapter-solana/node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/@redux-devtools/cli/node_modules/pg-connection-string": { - "version": "2.6.2", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", "license": "MIT" }, - "node_modules/@redux-devtools/cli/node_modules/qs": { - "version": "6.11.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, + "node_modules/@reown/appkit-adapter-solana/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.8.x" } }, - "node_modules/@redux-devtools/cli/node_modules/raw-body": { - "version": "2.5.2", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@reown/appkit-adapter-solana/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" }, - "engines": { - "node": ">= 0.8" + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@redux-devtools/cli/node_modules/react-is": { - "version": "18.2.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/ox/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, - "node_modules/@redux-devtools/cli/node_modules/run-applescript": { - "version": "7.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, "engines": { - "node": ">=18" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@redux-devtools/cli/node_modules/semver": { - "version": "7.6.0", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, + "node_modules/@reown/appkit-adapter-solana/node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/@redux-devtools/cli/node_modules/setprototypeof": { - "version": "1.2.0", - "dev": true, - "license": "ISC" + "node_modules/@reown/appkit-adapter-solana/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" }, - "node_modules/@redux-devtools/cli/node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "multiformats": "^9.4.2" + } + }, + "node_modules/@reown/appkit-adapter-solana/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@redux-devtools/cli/node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/viem/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, "engines": { - "node": ">=8" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/cli/node_modules/statuses": { - "version": "2.0.1", - "dev": true, + "node_modules/@reown/appkit-adapter-solana/node_modules/viem/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/cli/node_modules/uuid": { - "version": "9.0.1", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], + "node_modules/@reown/appkit-adapter-solana/node_modules/viem/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", - "bin": { - "uuid": "dist/bin/uuid" + "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/@redux-devtools/cli/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@redux-devtools/core": { - "version": "3.14.0", - "license": "MIT", + "node_modules/@reown/appkit-adapter-wagmi": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@reown/appkit-adapter-wagmi/-/appkit-adapter-wagmi-1.7.1.tgz", + "integrity": "sha512-5aC94QlDTORf7Gtelijgs78cD8VAtvWsj+oZPq29Gfg/K3UROhL9NbjH20LlSdhRdY1D8NWZzJ0VZf1kk8CEqA==", + "license": "Apache-2.0", "dependencies": { - "@babel/runtime": "^7.23.2", - "@redux-devtools/instrument": "^2.2.0", - "@types/prop-types": "^15.7.10", - "lodash": "^4.17.21", - "prop-types": "^15.8.1" + "@reown/appkit": "1.7.1", + "@reown/appkit-common": "1.7.1", + "@reown/appkit-controllers": "1.7.1", + "@reown/appkit-polyfills": "1.7.1", + "@reown/appkit-scaffold-ui": "1.7.1", + "@reown/appkit-utils": "1.7.1", + "@reown/appkit-wallet": "1.7.1", + "@walletconnect/universal-provider": "2.19.1", + "valtio": "1.13.2" + }, + "optionalDependencies": { + "@wagmi/connectors": ">=5.7.11" }, "peerDependencies": { - "react": "^0.14.9 || ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "react-redux": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "redux": "^3.5.2 || ^4.0.0 || ^5.0.0" + "@wagmi/core": ">=2.16.7", + "viem": ">=2.23.11", + "wagmi": ">=2.14.15" } }, - "node_modules/@redux-devtools/core/node_modules/@babel/runtime": { - "version": "7.23.9", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@adraffy/ens-normalize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "license": "MIT" + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@babel/runtime": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", + "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", "license": "MIT", + "optional": true, "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -28393,757 +26152,782 @@ "node": ">=6.9.0" } }, - "node_modules/@redux-devtools/core/node_modules/prop-types": { - "version": "15.8.1", - "license": "MIT", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@coinbase/wallet-sdk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.3.0.tgz", + "integrity": "sha512-T3+SNmiCw4HzDm4we9wCHCxlP0pqCiwKe4sOwPH3YAK2KSKjxPRydKu6UQJrdONFVLG7ujXvbd/6ZqmvJb8rkw==", + "license": "Apache-2.0", + "optional": true, "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "@noble/hashes": "^1.4.0", + "clsx": "^1.2.1", + "eventemitter3": "^5.0.1", + "preact": "^10.24.2" } }, - "node_modules/@redux-devtools/core/node_modules/regenerator-runtime": { - "version": "0.14.1", - "license": "MIT" - }, - "node_modules/@redux-devtools/inspector-monitor": { - "version": "6.0.0", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@metamask/sdk": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.32.0.tgz", + "integrity": "sha512-WmGAlP1oBuD9hk4CsdlG1WJFuPtYJY+dnTHJMeCyohTWD2GgkcLMUUuvu9lO1/NVzuOoSi1OrnjbuY1O/1NZ1g==", + "optional": true, "dependencies": { - "@babel/runtime": "^7.23.5", - "@dnd-kit/core": "^6.1.0", - "@dnd-kit/modifiers": "^7.0.0", - "@dnd-kit/sortable": "^8.0.0", - "@dnd-kit/utilities": "^3.2.2", - "@types/lodash": "^4.14.202", - "@types/redux-devtools-themes": "^1.0.3", - "dateformat": "^5.0.3", - "hex-rgba": "^1.0.2", - "immutable": "^4.3.4", - "javascript-stringify": "^2.1.0", - "jsondiffpatch": "^0.5.0", - "lodash.debounce": "^4.0.8", - "react-base16-styling": "^0.9.1", - "react-json-tree": "^0.18.0", - "redux-devtools-themes": "^1.0.0" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0", - "@redux-devtools/core": "^4.0.0", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", - "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" + "@babel/runtime": "^7.26.0", + "@metamask/onboarding": "^1.0.1", + "@metamask/providers": "16.1.0", + "@metamask/sdk-communication-layer": "0.32.0", + "@metamask/sdk-install-modal-web": "0.32.0", + "@paulmillr/qr": "^0.2.1", + "bowser": "^2.9.0", + "cross-fetch": "^4.0.0", + "debug": "^4.3.4", + "eciesjs": "^0.4.11", + "eth-rpc-errors": "^4.0.3", + "eventemitter2": "^6.4.9", + "obj-multiplex": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.2", + "socket.io-client": "^4.5.1", + "tslib": "^2.6.0", + "util": "^0.12.4", + "uuid": "^8.3.2" } }, - "node_modules/@redux-devtools/inspector-monitor-test-tab": { - "version": "4.0.0", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@metamask/sdk-communication-layer": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.32.0.tgz", + "integrity": "sha512-dmj/KFjMi1fsdZGIOtbhxdg3amxhKL/A5BqSU4uh/SyDKPub/OT+x5pX8bGjpTL1WPWY/Q0OIlvFyX3VWnT06Q==", + "optional": true, "dependencies": { - "@babel/runtime": "^7.23.5", - "@redux-devtools/ui": "^1.3.1", - "es6template": "^1.0.5", - "javascript-stringify": "^2.1.0", - "jsan": "^3.1.14", - "object-path": "^0.11.8", - "react-icons": "^4.12.0", - "simple-diff": "^1.7.2" + "bufferutil": "^4.0.8", + "date-fns": "^2.29.3", + "debug": "^4.3.4", + "utf-8-validate": "^5.0.2", + "uuid": "^8.3.2" }, "peerDependencies": { - "@emotion/react": "^11.0.0", - "@redux-devtools/inspector-monitor": "^6.0.0", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "@types/styled-components": "^5.1.34", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", - "redux": "^3.4.0 || ^4.0.0 || ^5.0.0", - "styled-components": "^5.3.11" + "cross-fetch": "^4.0.0", + "eciesjs": "*", + "eventemitter2": "^6.4.9", + "readable-stream": "^3.6.2", + "socket.io-client": "^4.5.1" } }, - "node_modules/@redux-devtools/inspector-monitor-test-tab/node_modules/@babel/runtime": { - "version": "7.23.9", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@metamask/sdk-install-modal-web": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.32.0.tgz", + "integrity": "sha512-TFoktj0JgfWnQaL3yFkApqNwcaqJ+dw4xcnrJueMP3aXkSNev2Ido+WVNOg4IIMxnmOrfAC9t0UJ0u/dC9MjOQ==", + "optional": true, "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@redux-devtools/inspector-monitor-test-tab/node_modules/react-icons": { - "version": "4.12.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": "*" + "@paulmillr/qr": "^0.2.1" } }, - "node_modules/@redux-devtools/inspector-monitor-test-tab/node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/inspector-monitor-trace-tab": { - "version": "4.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@noble/ciphers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", + "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", "license": "MIT", - "dependencies": { - "@babel/code-frame": "^8.0.0-alpha.4", - "@babel/runtime": "^7.23.5", - "@types/chrome": "^0.0.254", - "anser": "^2.1.1", - "html-entities": "^2.4.0", - "path-browserify": "^1.0.1", - "redux-devtools-themes": "^1.0.0", - "source-map": "^0.5.7" + "engines": { + "node": "^14.21.3 || >=16" }, - "peerDependencies": { - "@emotion/react": "^11.0.0", - "@redux-devtools/inspector-monitor": "^6.0.0", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", - "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/@babel/code-frame": { - "version": "8.0.0-alpha.6", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@noble/curves": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", + "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", "license": "MIT", "dependencies": { - "@babel/highlight": "^8.0.0-alpha.6", - "chalk": "^5.3.0" + "@noble/hashes": "1.7.0" }, "engines": { - "node": "^16.20.0 || ^18.16.0 || >=20.0.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/@babel/helper-validator-identifier": { - "version": "8.0.0-alpha.6", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", "license": "MIT", "engines": { - "node": "^16.20.0 || ^18.16.0 || >=20.0.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/@babel/highlight": { - "version": "8.0.0-alpha.6", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^8.0.0-alpha.6", - "chalk": "^5.3.0", - "js-tokens": "^8.0.0" - }, "engines": { - "node": "^16.20.0 || ^18.16.0 || >=20.0.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/@babel/runtime": { - "version": "7.23.9", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/anser": { - "version": "2.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/js-tokens": { - "version": "8.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/inspector-monitor-trace-tab/node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/inspector-monitor/node_modules/@babel/runtime": { - "version": "7.23.9", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/inspector-monitor/node_modules/@types/lodash": { - "version": "4.14.202", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/inspector-monitor/node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/instrument": { - "version": "2.2.0", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.2", - "lodash": "^4.17.21" + "@noble/hashes": "1.7.1" }, - "peerDependencies": { - "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/instrument/node_modules/@babel/runtime": { - "version": "7.23.9", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/instrument/node_modules/regenerator-runtime": { - "version": "0.14.1", - "license": "MIT" - }, - "node_modules/@redux-devtools/log-monitor": { - "version": "5.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@wagmi/connectors": { + "version": "5.7.11", + "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.7.11.tgz", + "integrity": "sha512-vJWOXMeYWmczvlsEZHq52yOoC2qu5kU8Saj6Bo+BtyfYcX1tJODZTKed3TMIoKhUx0W3vna1UIwG7GskmxGKKA==", "license": "MIT", + "optional": true, "dependencies": { - "@babel/runtime": "^7.23.5", - "@types/lodash.debounce": "^4.0.9", - "@types/redux-devtools-themes": "^1.0.3", - "lodash.debounce": "^4.0.8", - "react-json-tree": "^0.18.0", - "redux-devtools-themes": "^1.0.0" + "@coinbase/wallet-sdk": "4.3.0", + "@metamask/sdk": "0.32.0", + "@safe-global/safe-apps-provider": "0.18.5", + "@safe-global/safe-apps-sdk": "9.1.0", + "@walletconnect/ethereum-provider": "2.19.1", + "cbw-sdk": "npm:@coinbase/wallet-sdk@3.9.3" + }, + "funding": { + "url": "https://github.com/sponsors/wevm" }, "peerDependencies": { - "@redux-devtools/core": "^4.0.0", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "redux": "^3.4.0 || ^4.0.0 || ^5.0.0" + "@wagmi/core": "2.16.7", + "typescript": ">=5.0.4", + "viem": "2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@redux-devtools/log-monitor/node_modules/@babel/runtime": { - "version": "7.23.9", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/core": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", + "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", + "license": "Apache-2.0", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.33.0", + "events": "3.3.0", + "uint8arrays": "3.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@redux-devtools/log-monitor/node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/remote": { - "version": "0.8.0", - "license": "MIT", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/ethereum-provider": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.19.1.tgz", + "integrity": "sha512-bs8Kiwdw3cGb8ITO8+YymesGfFnucJreQmVbZ0vl/Ogoh38n1T5w0ekjmD/NjTDS3oZaUQyBm3V2UjIBR0qedw==", + "license": "Apache-2.0", + "optional": true, "dependencies": { - "@babel/runtime": "^7.20.7", - "@redux-devtools/instrument": "^2.1.0", - "@redux-devtools/utils": "^2.0.0", - "jsan": "^3.1.14", - "querystring": "^0.2.1", - "rn-host-detect": "^1.2.0", - "socketcluster-client": "^17.1.0" - }, - "peerDependencies": { - "redux": "^3.5.2 || ^4.0.0" + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/modal": "2.7.0", + "@walletconnect/sign-client": "2.19.1", + "@walletconnect/types": "2.19.1", + "@walletconnect/universal-provider": "2.19.1", + "@walletconnect/utils": "2.19.1", + "events": "3.3.0" } }, - "node_modules/@redux-devtools/remote/node_modules/@babel/runtime": { - "version": "7.23.9", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/heartbeat": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", + "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" + "@walletconnect/events": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "events": "^3.3.0" } }, - "node_modules/@redux-devtools/remote/node_modules/querystring": { - "version": "0.2.1", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/jsonrpc-provider": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", + "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", "license": "MIT", - "engines": { - "node": ">=0.4.x" + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0" } }, - "node_modules/@redux-devtools/remote/node_modules/regenerator-runtime": { - "version": "0.14.1", - "license": "MIT" - }, - "node_modules/@redux-devtools/rtk-query-monitor": { - "version": "5.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/jsonrpc-types": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", + "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.5", - "@redux-devtools/ui": "^1.3.1", - "@types/lodash": "^4.14.202", - "@types/redux-devtools-themes": "^1.0.3", - "hex-rgba": "^1.0.2", - "immutable": "^4.3.4", - "lodash.debounce": "^4.0.8", - "react-base16-styling": "^0.9.1", - "react-json-tree": "^0.18.0", - "redux-devtools-themes": "^1.0.0" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0", - "@redux-devtools/core": "^4.0.0", - "@reduxjs/toolkit": "^1.0.0 || ^2.0.0", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "@types/styled-components": "^5.1.34", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "redux": "^3.4.0 || ^4.0.0 || ^5.0.0", - "styled-components": "^5.3.11" + "events": "^3.3.0", + "keyvaluestorage-interface": "^1.0.0" } }, - "node_modules/@redux-devtools/rtk-query-monitor/node_modules/@babel/runtime": { - "version": "7.23.9", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", + "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0", + "ws": "^7.5.1" } }, - "node_modules/@redux-devtools/rtk-query-monitor/node_modules/@types/lodash": { - "version": "4.14.202", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/rtk-query-monitor/node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@redux-devtools/serialize": { - "version": "0.4.2", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/relay-auth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", + "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.2", - "jsan": "^3.1.14" - }, - "peerDependencies": { - "immutable": "^4.0.0" + "@noble/curves": "1.8.0", + "@noble/hashes": "1.7.0", + "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "uint8arrays": "^3.0.0" } }, - "node_modules/@redux-devtools/serialize/node_modules/@babel/runtime": { - "version": "7.23.9", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/relay-auth/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { - "node": ">=6.9.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/serialize/node_modules/regenerator-runtime": { - "version": "0.14.1", - "license": "MIT" - }, - "node_modules/@redux-devtools/slider-monitor": { - "version": "5.0.0", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.5", - "@redux-devtools/ui": "^1.3.1", - "@types/redux-devtools-themes": "^1.0.3", - "redux-devtools-themes": "^1.0.0" - }, - "peerDependencies": { - "@redux-devtools/core": "^4.0.0", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "@types/styled-components": "^5.1.34", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "redux": "^3.4.0 || ^4.0.0 || ^5.0.0", - "styled-components": "^5.3.11" + "tslib": "1.14.1" } }, - "node_modules/@redux-devtools/slider-monitor/node_modules/@babel/runtime": { - "version": "7.23.9", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/safe-json/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" + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/sign-client": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", + "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", + "license": "Apache-2.0", "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" + "@walletconnect/core": "2.19.1", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "events": "3.3.0" } }, - "node_modules/@redux-devtools/slider-monitor/node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, - "license": "MIT" + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/types": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.1.tgz", + "integrity": "sha512-XWWGLioddH7MjxhyGhylL7VVariVON2XatJq/hy0kSGJ1hdp31z194nHN5ly9M495J9Hw8lcYjGXpsgeKvgxzw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" + } }, - "node_modules/@redux-devtools/ui": { - "version": "1.3.1", - "dev": true, - "license": "MIT", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/universal-provider": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", + "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", + "license": "Apache-2.0", "dependencies": { - "@babel/runtime": "^7.23.2", - "@rjsf/core": "^4.2.3", - "@types/base16": "^1.0.5", - "@types/codemirror": "^5.60.13", - "@types/json-schema": "^7.0.15", - "@types/prop-types": "^15.7.10", - "@types/redux-devtools-themes": "^1.0.3", - "@types/simple-element-resize-detector": "^1.3.3", - "base16": "^1.0.0", - "codemirror": "^5.65.15", - "color": "^4.2.3", - "prop-types": "^15.8.1", - "react-icons": "^4.11.0", - "react-select": "^5.8.0", - "redux-devtools-themes": "^1.0.0", - "simple-element-resize-detector": "^1.3.0" - }, - "peerDependencies": { - "@types/react": "^16.3.0 || ^17.0.0 || ^18.0.0", - "@types/styled-components": "^5.0.0", - "react": "^16.3.0 || ^17.0.0 || ^18.0.0", - "styled-components": "^5.0.0" + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.19.1", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "es-toolkit": "1.33.0", + "events": "3.3.0" } }, - "node_modules/@redux-devtools/ui/node_modules/@babel/runtime": { - "version": "7.23.9", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/utils": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", + "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", + "license": "Apache-2.0", + "dependencies": { + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "elliptic": "6.6.1", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" + } + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/utils/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@noble/hashes": "1.7.1" }, "engines": { - "node": ">=6.9.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@redux-devtools/ui/node_modules/color": { - "version": "4.2.3", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" + "tslib": "1.14.1" } }, - "node_modules/@redux-devtools/ui/node_modules/prop-types": { - "version": "15.8.1", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/window-getters/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" + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", "license": "MIT", "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" } }, - "node_modules/@redux-devtools/ui/node_modules/react-icons": { - "version": "4.12.0", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/window-metadata/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" + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, "peerDependencies": { - "react": "*" + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } } }, - "node_modules/@redux-devtools/ui/node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/base-x": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", + "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", "license": "MIT" }, - "node_modules/@redux-devtools/utils": { - "version": "2.1.0", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/bs58": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", + "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.2", - "@redux-devtools/core": "^3.14.0", - "@redux-devtools/serialize": "^0.4.2", - "@types/get-params": "^0.1.2", - "get-params": "^0.1.2", - "immutable": "^4.3.4", - "jsan": "^3.1.14", - "lodash": "^4.17.21", - "nanoid": "^5.0.3", - "redux": "^4.2.1" - }, - "peerDependencies": { - "@redux-devtools/core": "^3.0.0", - "immutable": "^4.0.0", - "redux": "^4.0.0 || ^5.0.0" + "base-x": "^5.0.0" } }, - "node_modules/@redux-devtools/utils/node_modules/@babel/runtime": { - "version": "7.23.9", + "node_modules/@reown/appkit-adapter-wagmi/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", + "optional": true, "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" + "node-fetch": "^2.7.0" } }, - "node_modules/@redux-devtools/utils/node_modules/nanoid": { - "version": "5.0.6", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/@reown/appkit-adapter-wagmi/node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.js" - }, "engines": { - "node": "^18 || >=20" + "node": ">=0.10" } }, - "node_modules/@redux-devtools/utils/node_modules/regenerator-runtime": { - "version": "0.14.1", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", "license": "MIT" }, - "node_modules/@redux-saga/core": { - "version": "1.2.3", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/eth-rpc-errors": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", + "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", "license": "MIT", + "optional": true, "dependencies": { - "@babel/runtime": "^7.6.3", - "@redux-saga/deferred": "^1.2.1", - "@redux-saga/delay-p": "^1.2.1", - "@redux-saga/is": "^1.1.3", - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1", - "redux": "^4.0.4", - "typescript-tuple": "^2.2.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/redux-saga" + "fast-safe-stringify": "^2.0.6" } }, - "node_modules/@redux-saga/deferred": { - "version": "1.2.1", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, - "node_modules/@redux-saga/delay-p": { - "version": "1.2.1", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", - "dependencies": { - "@redux-saga/symbols": "^1.1.3" + "engines": { + "node": ">=0.8.x" } }, - "node_modules/@redux-saga/is": { - "version": "1.1.3", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", "license": "MIT", - "dependencies": { - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@redux-saga/symbols": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/@redux-saga/types": { - "version": "1.2.1", - "license": "MIT" - }, - "node_modules/@reduxjs/toolkit": { - "version": "1.6.1", + "node_modules/@reown/appkit-adapter-wagmi/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", + "optional": true, "dependencies": { - "immer": "^9.0.1", - "redux": "^4.1.0", - "redux-thunk": "^2.3.0", - "reselect": "^4.0.0" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" }, "peerDependencies": { - "react": "^16.14.0 || ^17.0.0", - "react-redux": "^7.2.1" + "encoding": "^0.1.0" }, "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { + "encoding": { "optional": true } } }, - "node_modules/@reown/appkit": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.1.tgz", - "integrity": "sha512-p4UEApU2f2+/BTvuXfBUSmwLcxXEuI/Z8B9ecD754YgLsY3kA68CTySHgzy7MmHVxGNwwZTQ/+JYnf8TXuhscg==", - "license": "Apache-2.0", - "dependencies": { - "@reown/appkit-common": "1.7.1", - "@reown/appkit-controllers": "1.7.1", - "@reown/appkit-polyfills": "1.7.1", - "@reown/appkit-scaffold-ui": "1.7.1", - "@reown/appkit-ui": "1.7.1", - "@reown/appkit-utils": "1.7.1", - "@reown/appkit-wallet": "1.7.1", - "@walletconnect/types": "2.19.1", - "@walletconnect/universal-provider": "2.19.1", - "bs58": "6.0.0", - "valtio": "1.13.2", - "viem": ">=2.23.11" - } - }, - "node_modules/@reown/appkit-adapter-solana": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-adapter-solana/-/appkit-adapter-solana-1.7.1.tgz", - "integrity": "sha512-i3A16njQVXt5uTgL8Tuvvqn1bVNkU62yjkMSx/05ykJaEiN0iHTx+WOYcc9wVS/g1AB0k1OUczKyoIkkPSW9Ug==", - "license": "Apache-2.0", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "@reown/appkit": "1.7.1", - "@reown/appkit-common": "1.7.1", - "@reown/appkit-controllers": "1.7.1", - "@reown/appkit-polyfills": "1.7.1", - "@reown/appkit-utils": "1.7.1", - "@reown/appkit-wallet": "1.7.1", - "@solana/wallet-adapter-base": "0.9.24", - "@solana/wallet-standard-features": "1.3.0", - "@solana/wallet-standard-util": "1.1.2", - "@solana/web3.js": "1.98.0", - "@wallet-standard/app": "1.1.0", - "@wallet-standard/base": "1.1.0", - "@wallet-standard/features": "1.1.0", - "@walletconnect/types": "2.19.1", - "@walletconnect/universal-provider": "2.19.1", - "valtio": "1.13.2" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" }, - "optionalDependencies": { - "borsh": "0.7.0", - "bs58": "6.0.0" - } - }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@adraffy/ens-normalize": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", - "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", - "license": "MIT" - }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@noble/ciphers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", - "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" + "peerDependencies": { + "typescript": ">=5.4.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@noble/curves": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", - "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.0" + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=6" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@noble/hashes": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", - "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } + "optional": true }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/base": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", - "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=6" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT", - "dependencies": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } + "optional": true }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.1" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "multiformats": "^9.4.2" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "node_modules/@reown/appkit-adapter-wagmi/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" + "node_modules/@reown/appkit-adapter-wagmi/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/viem/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@scure/bip39/node_modules/@noble/hashes": { + "node_modules/@reown/appkit-adapter-wagmi/node_modules/viem/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": ">=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/@reown/appkit-adapter-wagmi/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", + "optional": true + }, + "node_modules/@reown/appkit-adapter-wagmi/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", + "optional": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@reown/appkit-common": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.7.1.tgz", + "integrity": "sha512-t4AyDwzFWyiLvm/tXNnTmP7wIAk9ebexbrdopN7vtpI8QJZJJ4aMJJPbLox3+dAZf4UQYYngqftOkyVUU8atVQ==", + "license": "Apache-2.0", + "dependencies": { + "big.js": "6.2.2", + "dayjs": "1.11.13", + "viem": ">=2.23.11" + } + }, + "node_modules/@reown/appkit-common/node_modules/@adraffy/ens-normalize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "license": "MIT" + }, + "node_modules/@reown/appkit-common/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-common/node_modules/@noble/hashes": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", @@ -29155,25 +26939,302 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@solana/wallet-adapter-base": { - "version": "0.9.24", - "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.24.tgz", - "integrity": "sha512-f3kwHF/2Lx3YgcO37B45MM46YLFy4QkdLemZ+N/0SwLAnSfhq3+Vb9bC5vuoupMJ/onos09TIDeIxRdg/+51kw==", - "license": "Apache-2.0", + "node_modules/@reown/appkit-common/node_modules/@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-common/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", "dependencies": { - "@solana/wallet-standard-features": "^1.1.0", - "@wallet-standard/base": "^1.0.1", - "@wallet-standard/features": "^1.0.3", - "eventemitter3": "^4.0.7" + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-common/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-common/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-common/node_modules/big.js": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.2.tgz", + "integrity": "sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==", + "license": "MIT", "engines": { - "node": ">=20" + "node": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bigjs" + } + }, + "node_modules/@reown/appkit-common/node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/@reown/appkit-common/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/@reown/appkit-common/node_modules/ox": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", + "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" }, "peerDependencies": { - "@solana/web3.js": "^1.77.3" + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/core": { + "node_modules/@reown/appkit-common/node_modules/viem": { + "version": "2.24.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.24.2.tgz", + "integrity": "sha512-lUGoTHhMYlR4ktQiOrbTPmYvrMn3jKUdn2PSmB9QLICxnsQJxMkSCeGRoJFq7hi7K6PCMQgAyLMR/9J1key5cg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.9", + "ws": "8.18.1" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-common/node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "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/@reown/appkit-controllers": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.7.1.tgz", + "integrity": "sha512-y95ZxypL0jUHS7gf7zWY1YjFM4HMFKH3VEBDIsu6iMSKBBW3Fcwljkm0Q3iGWydousHRJRckYjcrIJDNfyEWTQ==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.1", + "@reown/appkit-wallet": "1.7.1", + "@walletconnect/universal-provider": "2.19.1", + "valtio": "1.13.2", + "viem": ">=2.23.11" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@adraffy/ens-normalize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "license": "MIT" + }, + "node_modules/@reown/appkit-controllers/node_modules/@noble/ciphers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", + "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@noble/curves": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", + "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/core": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", @@ -29201,7 +27262,7 @@ "node": ">=18" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/heartbeat": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/heartbeat": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", @@ -29212,7 +27273,7 @@ "events": "^3.3.0" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/jsonrpc-provider": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/jsonrpc-provider": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", @@ -29223,7 +27284,7 @@ "events": "^3.3.0" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/jsonrpc-types": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/jsonrpc-types": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", @@ -29233,7 +27294,7 @@ "keyvaluestorage-interface": "^1.0.0" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/jsonrpc-ws-connection": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/jsonrpc-ws-connection": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", @@ -29245,7 +27306,7 @@ "ws": "^7.5.1" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/relay-auth": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/relay-auth": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", @@ -29258,7 +27319,7 @@ "uint8arrays": "^3.0.0" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/safe-json": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/safe-json": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", @@ -29267,7 +27328,7 @@ "tslib": "1.14.1" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/sign-client": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/sign-client": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", @@ -29284,7 +27345,7 @@ "events": "3.3.0" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/types": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/types": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.1.tgz", "integrity": "sha512-XWWGLioddH7MjxhyGhylL7VVariVON2XatJq/hy0kSGJ1hdp31z194nHN5ly9M495J9Hw8lcYjGXpsgeKvgxzw==", @@ -29298,7 +27359,7 @@ "events": "3.3.0" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/universal-provider": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/universal-provider": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", @@ -29318,7 +27379,7 @@ "events": "3.3.0" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/utils": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", @@ -29344,7 +27405,7 @@ "viem": "2.23.2" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/utils/node_modules/@noble/curves": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/@noble/curves": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", @@ -29359,7 +27420,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/utils/node_modules/@noble/hashes": { + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/@noble/hashes": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", @@ -29371,84 +27432,142 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], "license": "MIT", "dependencies": { - "tslib": "1.14.1" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], "license": "MIT", "dependencies": { - "@walletconnect/window-getters": "^1.0.1", - "tslib": "1.14.1" - } - }, - "node_modules/@reown/appkit-adapter-solana/node_modules/abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/wevm" + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" + "typescript": ">=5.0.4" }, "peerDependenciesMeta": { "typescript": { "optional": true - }, - "zod": { - "optional": true } } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/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": ">=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/@reown/appkit-adapter-solana/node_modules/borsh/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", "license": "MIT", - "optional": true, "dependencies": { - "base-x": "^3.0.2" + "tslib": "1.14.1" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/bs58": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", - "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", "license": "MIT", "dependencies": { - "base-x": "^5.0.0" + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/bs58/node_modules/base-x": { + "node_modules/@reown/appkit-controllers/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-controllers/node_modules/base-x": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", "license": "MIT" }, - "node_modules/@reown/appkit-adapter-solana/node_modules/decode-uri-component": { + "node_modules/@reown/appkit-controllers/node_modules/bs58": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", + "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "license": "MIT", + "dependencies": { + "base-x": "^5.0.0" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", @@ -29457,13 +27576,19 @@ "node": ">=0.10" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/detect-browser": { + "node_modules/@reown/appkit-controllers/node_modules/detect-browser": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", "license": "MIT" }, - "node_modules/@reown/appkit-adapter-solana/node_modules/events": { + "node_modules/@reown/appkit-controllers/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/@reown/appkit-controllers/node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", @@ -29472,7 +27597,7 @@ "node": ">=0.8.x" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/filter-obj": { + "node_modules/@reown/appkit-controllers/node_modules/filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", @@ -29481,10 +27606,10 @@ "node": ">=0.10.0" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "node_modules/@reown/appkit-controllers/node_modules/ox": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", + "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", "funding": [ { "type": "github", @@ -29510,13 +27635,7 @@ } } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/ox/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/@reown/appkit-adapter-solana/node_modules/query-string": { + "node_modules/@reown/appkit-controllers/node_modules/query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", @@ -29534,7 +27653,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/split-on-first": { + "node_modules/@reown/appkit-controllers/node_modules/split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", @@ -29543,13 +27662,13 @@ "node": ">=6" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/tslib": { + "node_modules/@reown/appkit-controllers/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" }, - "node_modules/@reown/appkit-adapter-solana/node_modules/uint8arrays": { + "node_modules/@reown/appkit-controllers/node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", @@ -29558,10 +27677,10 @@ "multiformats": "^9.4.2" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "node_modules/@reown/appkit-controllers/node_modules/viem": { + "version": "2.24.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.24.2.tgz", + "integrity": "sha512-lUGoTHhMYlR4ktQiOrbTPmYvrMn3jKUdn2PSmB9QLICxnsQJxMkSCeGRoJFq7hi7K6PCMQgAyLMR/9J1key5cg==", "funding": [ { "type": "github", @@ -29576,8 +27695,8 @@ "@scure/bip39": "1.5.4", "abitype": "1.0.8", "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" + "ox": "0.6.9", + "ws": "8.18.1" }, "peerDependencies": { "typescript": ">=5.0.4" @@ -29588,7 +27707,7 @@ } } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/viem/node_modules/@noble/curves": { + "node_modules/@reown/appkit-controllers/node_modules/viem/node_modules/@noble/curves": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", @@ -29603,7 +27722,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/viem/node_modules/@noble/hashes": { + "node_modules/@reown/appkit-controllers/node_modules/viem/node_modules/@noble/hashes": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", @@ -29615,10 +27734,10 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-solana/node_modules/viem/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "node_modules/@reown/appkit-controllers/node_modules/viem/node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -29636,120 +27755,148 @@ } } }, - "node_modules/@reown/appkit-adapter-wagmi": { + "node_modules/@reown/appkit-polyfills": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-adapter-wagmi/-/appkit-adapter-wagmi-1.7.1.tgz", - "integrity": "sha512-5aC94QlDTORf7Gtelijgs78cD8VAtvWsj+oZPq29Gfg/K3UROhL9NbjH20LlSdhRdY1D8NWZzJ0VZf1kk8CEqA==", + "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.7.1.tgz", + "integrity": "sha512-itxTuUgeokMuCCrmuc6w7aownbydwSkOeyvi+GbvQ8Q8OfwP0e0QRjqa+qDOormcGceIbw4WbJqiL+30sJcFPQ==", + "license": "Apache-2.0", + "dependencies": { + "buffer": "6.0.3" + } + }, + "node_modules/@reown/appkit-scaffold-ui": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.7.1.tgz", + "integrity": "sha512-+Qa4HrKwDpb0TGcfRTP0esYjqOzRmlg3TryeJafVHLHaoeDnuiSc63Bvr7zROvCoLfya7GichYxYf+H+C56CNw==", "license": "Apache-2.0", "dependencies": { - "@reown/appkit": "1.7.1", "@reown/appkit-common": "1.7.1", "@reown/appkit-controllers": "1.7.1", - "@reown/appkit-polyfills": "1.7.1", - "@reown/appkit-scaffold-ui": "1.7.1", + "@reown/appkit-ui": "1.7.1", "@reown/appkit-utils": "1.7.1", "@reown/appkit-wallet": "1.7.1", - "@walletconnect/universal-provider": "2.19.1", - "valtio": "1.13.2" - }, - "optionalDependencies": { - "@wagmi/connectors": ">=5.7.11" - }, - "peerDependencies": { - "@wagmi/core": ">=2.16.7", - "viem": ">=2.23.11", - "wagmi": ">=2.14.15" + "lit": "3.1.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@adraffy/ens-normalize": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", - "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", - "license": "MIT" + "node_modules/@reown/appkit-scaffold-ui/node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0" + } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@babel/runtime": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", - "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", - "license": "MIT", - "optional": true, + "node_modules/@reown/appkit-scaffold-ui/node_modules/lit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", + "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", + "license": "BSD-3-Clause", "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" + "@lit/reactive-element": "^2.0.0", + "lit-element": "^4.0.0", + "lit-html": "^3.1.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@coinbase/wallet-sdk": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.3.0.tgz", - "integrity": "sha512-T3+SNmiCw4HzDm4we9wCHCxlP0pqCiwKe4sOwPH3YAK2KSKjxPRydKu6UQJrdONFVLG7ujXvbd/6ZqmvJb8rkw==", + "node_modules/@reown/appkit-scaffold-ui/node_modules/lit-element": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.2.0" + } + }, + "node_modules/@reown/appkit-scaffold-ui/node_modules/lit-html": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/@reown/appkit-ui": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.7.1.tgz", + "integrity": "sha512-sZmS8qvZOlbwdgZXKcXfG3zE1PF58sA9FqQCPUmz4XcOuXfiBSOiSlIwGLt32cJpAE7izoubev1VDN9V/YPCyQ==", "license": "Apache-2.0", - "optional": true, "dependencies": { - "@noble/hashes": "^1.4.0", - "clsx": "^1.2.1", - "eventemitter3": "^5.0.1", - "preact": "^10.24.2" + "@reown/appkit-common": "1.7.1", + "@reown/appkit-controllers": "1.7.1", + "@reown/appkit-wallet": "1.7.1", + "lit": "3.1.0", + "qrcode": "1.5.3" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@metamask/sdk": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.32.0.tgz", - "integrity": "sha512-WmGAlP1oBuD9hk4CsdlG1WJFuPtYJY+dnTHJMeCyohTWD2GgkcLMUUuvu9lO1/NVzuOoSi1OrnjbuY1O/1NZ1g==", - "optional": true, + "node_modules/@reown/appkit-ui/node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "license": "BSD-3-Clause", "dependencies": { - "@babel/runtime": "^7.26.0", - "@metamask/onboarding": "^1.0.1", - "@metamask/providers": "16.1.0", - "@metamask/sdk-communication-layer": "0.32.0", - "@metamask/sdk-install-modal-web": "0.32.0", - "@paulmillr/qr": "^0.2.1", - "bowser": "^2.9.0", - "cross-fetch": "^4.0.0", - "debug": "^4.3.4", - "eciesjs": "^0.4.11", - "eth-rpc-errors": "^4.0.3", - "eventemitter2": "^6.4.9", - "obj-multiplex": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.2", - "socket.io-client": "^4.5.1", - "tslib": "^2.6.0", - "util": "^0.12.4", - "uuid": "^8.3.2" + "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@metamask/sdk-communication-layer": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.32.0.tgz", - "integrity": "sha512-dmj/KFjMi1fsdZGIOtbhxdg3amxhKL/A5BqSU4uh/SyDKPub/OT+x5pX8bGjpTL1WPWY/Q0OIlvFyX3VWnT06Q==", - "optional": true, + "node_modules/@reown/appkit-ui/node_modules/lit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", + "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", + "license": "BSD-3-Clause", "dependencies": { - "bufferutil": "^4.0.8", - "date-fns": "^2.29.3", - "debug": "^4.3.4", - "utf-8-validate": "^5.0.2", - "uuid": "^8.3.2" - }, - "peerDependencies": { - "cross-fetch": "^4.0.0", - "eciesjs": "*", - "eventemitter2": "^6.4.9", - "readable-stream": "^3.6.2", - "socket.io-client": "^4.5.1" + "@lit/reactive-element": "^2.0.0", + "lit-element": "^4.0.0", + "lit-html": "^3.1.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@metamask/sdk-install-modal-web": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.32.0.tgz", - "integrity": "sha512-TFoktj0JgfWnQaL3yFkApqNwcaqJ+dw4xcnrJueMP3aXkSNev2Ido+WVNOg4IIMxnmOrfAC9t0UJ0u/dC9MjOQ==", - "optional": true, + "node_modules/@reown/appkit-ui/node_modules/lit-element": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", + "license": "BSD-3-Clause", "dependencies": { - "@paulmillr/qr": "^0.2.1" + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.2.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@noble/ciphers": { + "node_modules/@reown/appkit-ui/node_modules/lit-html": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/@reown/appkit-utils": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.7.1.tgz", + "integrity": "sha512-0gk3dkk7XaDp6POytuBziRt7pOBRi04SKWprw+dejN2VKfjy6vRdv1d/6k63nGJ4z/n+uN5/7YN2RQUL2jSZzw==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.1", + "@reown/appkit-controllers": "1.7.1", + "@reown/appkit-polyfills": "1.7.1", + "@reown/appkit-wallet": "1.7.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/universal-provider": "2.19.1", + "valtio": "1.13.2", + "viem": ">=2.23.11" + }, + "peerDependencies": { + "valtio": "1.13.2" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@adraffy/ens-normalize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "license": "MIT" + }, + "node_modules/@reown/appkit-utils/node_modules/@noble/ciphers": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", @@ -29761,7 +27908,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@noble/curves": { + "node_modules/@reown/appkit-utils/node_modules/@noble/curves": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", @@ -29776,7 +27923,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@noble/curves/node_modules/@noble/hashes": { + "node_modules/@reown/appkit-utils/node_modules/@noble/hashes": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", @@ -29788,19 +27935,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@scure/base": { + "node_modules/@reown/appkit-utils/node_modules/@scure/base": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", @@ -29809,7 +27944,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@scure/bip32": { + "node_modules/@reown/appkit-utils/node_modules/@scure/bip32": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", @@ -29823,7 +27958,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@scure/bip32/node_modules/@noble/curves": { + "node_modules/@reown/appkit-utils/node_modules/@scure/bip32/node_modules/@noble/curves": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", @@ -29838,7 +27973,19 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@scure/bip39": { + "node_modules/@reown/appkit-utils/node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@scure/bip39": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", @@ -29851,35 +27998,19 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@wagmi/connectors": { - "version": "5.7.11", - "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.7.11.tgz", - "integrity": "sha512-vJWOXMeYWmczvlsEZHq52yOoC2qu5kU8Saj6Bo+BtyfYcX1tJODZTKed3TMIoKhUx0W3vna1UIwG7GskmxGKKA==", + "node_modules/@reown/appkit-utils/node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "license": "MIT", - "optional": true, - "dependencies": { - "@coinbase/wallet-sdk": "4.3.0", - "@metamask/sdk": "0.32.0", - "@safe-global/safe-apps-provider": "0.18.5", - "@safe-global/safe-apps-sdk": "9.1.0", - "@walletconnect/ethereum-provider": "2.19.1", - "cbw-sdk": "npm:@coinbase/wallet-sdk@3.9.3" + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "@wagmi/core": "2.16.7", - "typescript": ">=5.0.4", - "viem": "2.x" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/core": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/core": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", @@ -29907,27 +28038,7 @@ "node": ">=18" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/ethereum-provider": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.19.1.tgz", - "integrity": "sha512-bs8Kiwdw3cGb8ITO8+YymesGfFnucJreQmVbZ0vl/Ogoh38n1T5w0ekjmD/NjTDS3oZaUQyBm3V2UjIBR0qedw==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/modal": "2.7.0", - "@walletconnect/sign-client": "2.19.1", - "@walletconnect/types": "2.19.1", - "@walletconnect/universal-provider": "2.19.1", - "@walletconnect/utils": "2.19.1", - "events": "3.3.0" - } - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/heartbeat": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/heartbeat": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", @@ -29938,7 +28049,7 @@ "events": "^3.3.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/jsonrpc-provider": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/jsonrpc-provider": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", @@ -29949,7 +28060,7 @@ "events": "^3.3.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/jsonrpc-types": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/jsonrpc-types": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", @@ -29959,7 +28070,7 @@ "keyvaluestorage-interface": "^1.0.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/jsonrpc-ws-connection": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/jsonrpc-ws-connection": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", @@ -29971,7 +28082,7 @@ "ws": "^7.5.1" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/relay-auth": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/relay-auth": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", @@ -29984,19 +28095,7 @@ "uint8arrays": "^3.0.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/relay-auth/node_modules/@noble/hashes": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", - "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/safe-json": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/safe-json": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", @@ -30005,13 +28104,7 @@ "tslib": "1.14.1" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/safe-json/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" - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/sign-client": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/sign-client": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", @@ -30028,7 +28121,7 @@ "events": "3.3.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/types": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/types": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.1.tgz", "integrity": "sha512-XWWGLioddH7MjxhyGhylL7VVariVON2XatJq/hy0kSGJ1hdp31z194nHN5ly9M495J9Hw8lcYjGXpsgeKvgxzw==", @@ -30042,7 +28135,7 @@ "events": "3.3.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/universal-provider": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/universal-provider": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", @@ -30062,7 +28155,7 @@ "events": "3.3.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/utils": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", @@ -30088,7 +28181,7 @@ "viem": "2.23.2" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/utils/node_modules/@noble/curves": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/@noble/curves": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", @@ -30103,38 +28196,118 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "license": "MIT", - "dependencies": { - "tslib": "1.14.1" + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/window-getters/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" - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], "license": "MIT", "dependencies": { - "@walletconnect/window-getters": "^1.0.1", - "tslib": "1.14.1" - } - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/window-metadata/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" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/abitype": { + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/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": ">=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/@reown/appkit-utils/node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "license": "MIT", + "dependencies": { + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" + } + }, + "node_modules/@reown/appkit-utils/node_modules/abitype": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", @@ -30155,13 +28328,13 @@ } } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/base-x": { + "node_modules/@reown/appkit-utils/node_modules/base-x": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", "license": "MIT" }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/bs58": { + "node_modules/@reown/appkit-utils/node_modules/bs58": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", @@ -30170,17 +28343,7 @@ "base-x": "^5.0.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/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", - "optional": true, - "dependencies": { - "node-fetch": "^2.7.0" - } - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/decode-uri-component": { + "node_modules/@reown/appkit-utils/node_modules/decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", @@ -30189,29 +28352,19 @@ "node": ">=0.10" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/detect-browser": { + "node_modules/@reown/appkit-utils/node_modules/detect-browser": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", "license": "MIT" }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/eth-rpc-errors": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", - "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", - "license": "MIT", - "optional": true, - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/eventemitter3": { + "node_modules/@reown/appkit-utils/node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/events": { + "node_modules/@reown/appkit-utils/node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", @@ -30220,7 +28373,7 @@ "node": ">=0.8.x" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/filter-obj": { + "node_modules/@reown/appkit-utils/node_modules/filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", @@ -30229,31 +28382,10 @@ "node": ">=0.10.0" } }, - "node_modules/@reown/appkit-adapter-wagmi/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", - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "node_modules/@reown/appkit-utils/node_modules/ox": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", + "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", "funding": [ { "type": "github", @@ -30279,7 +28411,7 @@ } } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/query-string": { + "node_modules/@reown/appkit-utils/node_modules/query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", @@ -30297,14 +28429,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT", - "optional": true - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/split-on-first": { + "node_modules/@reown/appkit-utils/node_modules/split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", @@ -30313,14 +28438,13 @@ "node": ">=6" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT", - "optional": true + "node_modules/@reown/appkit-utils/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" }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/uint8arrays": { + "node_modules/@reown/appkit-utils/node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", @@ -30329,20 +28453,10 @@ "multiformats": "^9.4.2" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "node_modules/@reown/appkit-utils/node_modules/viem": { + "version": "2.24.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.24.2.tgz", + "integrity": "sha512-lUGoTHhMYlR4ktQiOrbTPmYvrMn3jKUdn2PSmB9QLICxnsQJxMkSCeGRoJFq7hi7K6PCMQgAyLMR/9J1key5cg==", "funding": [ { "type": "github", @@ -30357,8 +28471,8 @@ "@scure/bip39": "1.5.4", "abitype": "1.0.8", "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" + "ox": "0.6.9", + "ws": "8.18.1" }, "peerDependencies": { "typescript": ">=5.0.4" @@ -30369,7 +28483,7 @@ } } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/viem/node_modules/@noble/curves": { + "node_modules/@reown/appkit-utils/node_modules/viem/node_modules/@noble/curves": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", @@ -30384,10 +28498,22 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/viem/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "node_modules/@reown/appkit-utils/node_modules/viem/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/viem/node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -30405,250 +28531,88 @@ } } }, - "node_modules/@reown/appkit-adapter-wagmi/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", - "optional": true - }, - "node_modules/@reown/appkit-adapter-wagmi/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", - "optional": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/@reown/appkit-common": { + "node_modules/@reown/appkit-wallet": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.7.1.tgz", - "integrity": "sha512-t4AyDwzFWyiLvm/tXNnTmP7wIAk9ebexbrdopN7vtpI8QJZJJ4aMJJPbLox3+dAZf4UQYYngqftOkyVUU8atVQ==", + "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.7.1.tgz", + "integrity": "sha512-KcULRspRSwZF8aZ5ydk8jYQp278RmUWsV8QQjtslAtSuErRNfmVyY2X+Gm43lpTD3sSYSyppoLdnwvxhSFNtEw==", "license": "Apache-2.0", "dependencies": { - "big.js": "6.2.2", - "dayjs": "1.11.13", - "viem": ">=2.23.11" - } - }, - "node_modules/@reown/appkit-common/node_modules/@adraffy/ens-normalize": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", - "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", - "license": "MIT" - }, - "node_modules/@reown/appkit-common/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.7.1" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@reown/appkit-common": "1.7.1", + "@reown/appkit-polyfills": "1.7.1", + "@walletconnect/logger": "2.1.2", + "zod": "3.22.4" } }, - "node_modules/@reown/appkit-common/node_modules/@noble/hashes": { + "node_modules/@reown/appkit-wallet-button": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit-common/node_modules/@scure/base": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", - "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit-common/node_modules/@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@reown/appkit-wallet-button/-/appkit-wallet-button-1.7.1.tgz", + "integrity": "sha512-AEnCUeH7bgcxkiOmh0OfOneydxZHjJ2wrey3LEIntivPxWbDZ0zhqIuYO/ogJEAAALM8zor+qYApYNTmkrmkyQ==", + "license": "Apache-2.0", "dependencies": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@reown/appkit-common": "1.7.1", + "@reown/appkit-controllers": "1.7.1", + "@reown/appkit-ui": "1.7.1", + "@reown/appkit-utils": "1.7.1", + "lit": "3.2.1", + "valtio": "1.13.2" } }, - "node_modules/@reown/appkit-common/node_modules/@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", - "license": "MIT", + "node_modules/@reown/appkit-wallet-button/node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "license": "BSD-3-Clause", "dependencies": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit-common/node_modules/abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } + "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "node_modules/@reown/appkit-common/node_modules/big.js": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.2.tgz", - "integrity": "sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" + "node_modules/@reown/appkit-wallet-button/node_modules/lit": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^2.0.4", + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, - "node_modules/@reown/appkit-common/node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT" - }, - "node_modules/@reown/appkit-common/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/@reown/appkit-common/node_modules/ox": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", - "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", + "node_modules/@reown/appkit-wallet-button/node_modules/lit-element": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", + "license": "BSD-3-Clause", "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - }, - "peerDependencies": { - "typescript": ">=5.4.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.2.0" } }, - "node_modules/@reown/appkit-common/node_modules/viem": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.24.2.tgz", - "integrity": "sha512-lUGoTHhMYlR4ktQiOrbTPmYvrMn3jKUdn2PSmB9QLICxnsQJxMkSCeGRoJFq7hi7K6PCMQgAyLMR/9J1key5cg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", + "node_modules/@reown/appkit-wallet-button/node_modules/lit-html": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", + "license": "BSD-3-Clause", "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.9", - "ws": "8.18.1" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@types/trusted-types": "^2.0.2" } }, - "node_modules/@reown/appkit-common/node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "node_modules/@reown/appkit-wallet/node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", "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/@reown/appkit-controllers": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.7.1.tgz", - "integrity": "sha512-y95ZxypL0jUHS7gf7zWY1YjFM4HMFKH3VEBDIsu6iMSKBBW3Fcwljkm0Q3iGWydousHRJRckYjcrIJDNfyEWTQ==", - "license": "Apache-2.0", - "dependencies": { - "@reown/appkit-common": "1.7.1", - "@reown/appkit-wallet": "1.7.1", - "@walletconnect/universal-provider": "2.19.1", - "valtio": "1.13.2", - "viem": ">=2.23.11" + "funding": { + "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/@reown/appkit-controllers/node_modules/@adraffy/ens-normalize": { + "node_modules/@reown/appkit/node_modules/@adraffy/ens-normalize": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", "license": "MIT" }, - "node_modules/@reown/appkit-controllers/node_modules/@noble/ciphers": { + "node_modules/@reown/appkit/node_modules/@noble/ciphers": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", @@ -30660,7 +28624,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@noble/curves": { + "node_modules/@reown/appkit/node_modules/@noble/curves": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", @@ -30675,7 +28639,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@noble/hashes": { + "node_modules/@reown/appkit/node_modules/@noble/hashes": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", @@ -30687,7 +28651,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@scure/base": { + "node_modules/@reown/appkit/node_modules/@scure/base": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", @@ -30696,7 +28660,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@scure/bip32": { + "node_modules/@reown/appkit/node_modules/@scure/bip32": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", @@ -30710,7 +28674,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@scure/bip32/node_modules/@noble/curves": { + "node_modules/@reown/appkit/node_modules/@scure/bip32/node_modules/@noble/curves": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", @@ -30725,7 +28689,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@scure/bip32/node_modules/@noble/hashes": { + "node_modules/@reown/appkit/node_modules/@scure/bip32/node_modules/@noble/hashes": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", @@ -30737,7 +28701,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@scure/bip39": { + "node_modules/@reown/appkit/node_modules/@scure/bip39": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", @@ -30750,7 +28714,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@scure/bip39/node_modules/@noble/hashes": { + "node_modules/@reown/appkit/node_modules/@scure/bip39/node_modules/@noble/hashes": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", @@ -30762,7 +28726,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/core": { + "node_modules/@reown/appkit/node_modules/@walletconnect/core": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", @@ -30790,7 +28754,7 @@ "node": ">=18" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/heartbeat": { + "node_modules/@reown/appkit/node_modules/@walletconnect/heartbeat": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", @@ -30801,7 +28765,7 @@ "events": "^3.3.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/jsonrpc-provider": { + "node_modules/@reown/appkit/node_modules/@walletconnect/jsonrpc-provider": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", @@ -30812,7 +28776,7 @@ "events": "^3.3.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/jsonrpc-types": { + "node_modules/@reown/appkit/node_modules/@walletconnect/jsonrpc-types": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", @@ -30822,7 +28786,7 @@ "keyvaluestorage-interface": "^1.0.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/jsonrpc-ws-connection": { + "node_modules/@reown/appkit/node_modules/@walletconnect/jsonrpc-ws-connection": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", @@ -30834,7 +28798,7 @@ "ws": "^7.5.1" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/relay-auth": { + "node_modules/@reown/appkit/node_modules/@walletconnect/relay-auth": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", @@ -30847,7 +28811,7 @@ "uint8arrays": "^3.0.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/safe-json": { + "node_modules/@reown/appkit/node_modules/@walletconnect/safe-json": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", @@ -30856,7 +28820,7 @@ "tslib": "1.14.1" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/sign-client": { + "node_modules/@reown/appkit/node_modules/@walletconnect/sign-client": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", @@ -30873,7 +28837,7 @@ "events": "3.3.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/types": { + "node_modules/@reown/appkit/node_modules/@walletconnect/types": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.1.tgz", "integrity": "sha512-XWWGLioddH7MjxhyGhylL7VVariVON2XatJq/hy0kSGJ1hdp31z194nHN5ly9M495J9Hw8lcYjGXpsgeKvgxzw==", @@ -30887,7 +28851,7 @@ "events": "3.3.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/universal-provider": { + "node_modules/@reown/appkit/node_modules/@walletconnect/universal-provider": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", @@ -30907,7 +28871,7 @@ "events": "3.3.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils": { + "node_modules/@reown/appkit/node_modules/@walletconnect/utils": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", @@ -30933,7 +28897,7 @@ "viem": "2.23.2" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/@noble/curves": { + "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/@noble/curves": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", @@ -30948,7 +28912,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/@noble/hashes": { + "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/@noble/hashes": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", @@ -30960,7 +28924,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/ox": { + "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/ox": { "version": "0.6.7", "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", @@ -30989,7 +28953,7 @@ } } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/viem": { + "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem": { "version": "2.23.2", "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", @@ -31019,7 +28983,7 @@ } } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/ws": { + "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", @@ -31040,7 +29004,7 @@ } } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/window-getters": { + "node_modules/@reown/appkit/node_modules/@walletconnect/window-getters": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", @@ -31049,7 +29013,7 @@ "tslib": "1.14.1" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/window-metadata": { + "node_modules/@reown/appkit/node_modules/@walletconnect/window-metadata": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", @@ -31059,7 +29023,7 @@ "tslib": "1.14.1" } }, - "node_modules/@reown/appkit-controllers/node_modules/abitype": { + "node_modules/@reown/appkit/node_modules/abitype": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", @@ -31080,13 +29044,13 @@ } } }, - "node_modules/@reown/appkit-controllers/node_modules/base-x": { + "node_modules/@reown/appkit/node_modules/base-x": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", "license": "MIT" }, - "node_modules/@reown/appkit-controllers/node_modules/bs58": { + "node_modules/@reown/appkit/node_modules/bs58": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", @@ -31095,7 +29059,7 @@ "base-x": "^5.0.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/decode-uri-component": { + "node_modules/@reown/appkit/node_modules/decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", @@ -31104,19 +29068,19 @@ "node": ">=0.10" } }, - "node_modules/@reown/appkit-controllers/node_modules/detect-browser": { + "node_modules/@reown/appkit/node_modules/detect-browser": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", "license": "MIT" }, - "node_modules/@reown/appkit-controllers/node_modules/eventemitter3": { + "node_modules/@reown/appkit/node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, - "node_modules/@reown/appkit-controllers/node_modules/events": { + "node_modules/@reown/appkit/node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", @@ -31125,7 +29089,7 @@ "node": ">=0.8.x" } }, - "node_modules/@reown/appkit-controllers/node_modules/filter-obj": { + "node_modules/@reown/appkit/node_modules/filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", @@ -31134,7 +29098,7 @@ "node": ">=0.10.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/ox": { + "node_modules/@reown/appkit/node_modules/ox": { "version": "0.6.9", "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", @@ -31163,7 +29127,7 @@ } } }, - "node_modules/@reown/appkit-controllers/node_modules/query-string": { + "node_modules/@reown/appkit/node_modules/query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", @@ -31181,7 +29145,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit-controllers/node_modules/split-on-first": { + "node_modules/@reown/appkit/node_modules/split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", @@ -31190,13 +29154,13 @@ "node": ">=6" } }, - "node_modules/@reown/appkit-controllers/node_modules/tslib": { + "node_modules/@reown/appkit/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" }, - "node_modules/@reown/appkit-controllers/node_modules/uint8arrays": { + "node_modules/@reown/appkit/node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", @@ -31205,7 +29169,7 @@ "multiformats": "^9.4.2" } }, - "node_modules/@reown/appkit-controllers/node_modules/viem": { + "node_modules/@reown/appkit/node_modules/viem": { "version": "2.24.2", "resolved": "https://registry.npmjs.org/viem/-/viem-2.24.2.tgz", "integrity": "sha512-lUGoTHhMYlR4ktQiOrbTPmYvrMn3jKUdn2PSmB9QLICxnsQJxMkSCeGRoJFq7hi7K6PCMQgAyLMR/9J1key5cg==", @@ -31235,7 +29199,7 @@ } } }, - "node_modules/@reown/appkit-controllers/node_modules/viem/node_modules/@noble/curves": { + "node_modules/@reown/appkit/node_modules/viem/node_modules/@noble/curves": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", @@ -31250,7 +29214,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/viem/node_modules/@noble/hashes": { + "node_modules/@reown/appkit/node_modules/viem/node_modules/@noble/hashes": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", @@ -31262,7 +29226,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/viem/node_modules/ws": { + "node_modules/@reown/appkit/node_modules/viem/node_modules/ws": { "version": "8.18.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", @@ -31283,772 +29247,826 @@ } } }, - "node_modules/@reown/appkit-polyfills": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.7.1.tgz", - "integrity": "sha512-itxTuUgeokMuCCrmuc6w7aownbydwSkOeyvi+GbvQ8Q8OfwP0e0QRjqa+qDOormcGceIbw4WbJqiL+30sJcFPQ==", - "license": "Apache-2.0", - "dependencies": { - "buffer": "6.0.3" + "node_modules/@replit/codemirror-css-color-picker": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@replit/codemirror-css-color-picker/-/codemirror-css-color-picker-6.3.0.tgz", + "integrity": "sha512-19biDANghUm7Fz7L1SNMIhK48tagaWuCOHj4oPPxc7hxPGkTVY2lU/jVZ8tsbTKQPVG7BO2CBDzs7CBwb20t4A==", + "license": "MIT", + "peerDependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" } }, - "node_modules/@reown/appkit-scaffold-ui": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.7.1.tgz", - "integrity": "sha512-+Qa4HrKwDpb0TGcfRTP0esYjqOzRmlg3TryeJafVHLHaoeDnuiSc63Bvr7zROvCoLfya7GichYxYf+H+C56CNw==", + "node_modules/@rjsf/core": { + "version": "4.2.3", + "dev": true, "license": "Apache-2.0", "dependencies": { - "@reown/appkit-common": "1.7.1", - "@reown/appkit-controllers": "1.7.1", - "@reown/appkit-ui": "1.7.1", - "@reown/appkit-utils": "1.7.1", - "@reown/appkit-wallet": "1.7.1", - "lit": "3.1.0" + "@types/json-schema": "^7.0.7", + "ajv": "^6.7.0", + "core-js-pure": "^3.6.5", + "json-schema-merge-allof": "^0.6.0", + "jsonpointer": "^5.0.0", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15", + "nanoid": "^3.1.23", + "prop-types": "^15.7.2", + "react-is": "16.9.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": ">=16 || >=17" } }, - "node_modules/@reown/appkit-scaffold-ui/node_modules/@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0" - } + "node_modules/@rjsf/core/node_modules/react-is": { + "version": "16.9.0", + "dev": true, + "license": "MIT" }, - "node_modules/@reown/appkit-scaffold-ui/node_modules/lit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", - "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", - "license": "BSD-3-Clause", + "node_modules/@rmp135/sql-ts": { + "version": "1.18.0", + "dev": true, + "license": "MIT", "dependencies": { - "@lit/reactive-element": "^2.0.0", - "lit-element": "^4.0.0", - "lit-html": "^3.1.0" + "change-case": "^4.1.2", + "handlebars": "^4.7.7", + "knex": "^2.4.2", + "yargs": "^17.7.2" + }, + "bin": { + "sql-ts": "bin/sql-ts" + }, + "peerDependencies": { + "better-sqlite3": "^8.4.0", + "mssql": "^9.1.1", + "mysql": "^2.18.1", + "mysql2": "^3.3.2", + "pg": "^8.11.0", + "sqlite3": "^5.1.6" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "sqlite3": { + "optional": true + } } }, - "node_modules/@reown/appkit-scaffold-ui/node_modules/lit-element": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", - "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", - "license": "BSD-3-Clause", + "node_modules/@rmp135/sql-ts/node_modules/handlebars": { + "version": "4.7.8", + "dev": true, + "license": "MIT", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.2.0" + "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.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/@reown/appkit-scaffold-ui/node_modules/lit-html": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", - "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", + "node_modules/@rmp135/sql-ts/node_modules/source-map": { + "version": "0.6.1", + "dev": true, "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@reown/appkit-ui": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.7.1.tgz", - "integrity": "sha512-sZmS8qvZOlbwdgZXKcXfG3zE1PF58sA9FqQCPUmz4XcOuXfiBSOiSlIwGLt32cJpAE7izoubev1VDN9V/YPCyQ==", - "license": "Apache-2.0", - "dependencies": { - "@reown/appkit-common": "1.7.1", - "@reown/appkit-controllers": "1.7.1", - "@reown/appkit-wallet": "1.7.1", - "lit": "3.1.0", - "qrcode": "1.5.3" - } + "node_modules/@rmp135/sql-ts/node_modules/wordwrap": { + "version": "1.0.0", + "dev": true, + "license": "MIT" }, - "node_modules/@reown/appkit-ui/node_modules/@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", - "license": "BSD-3-Clause", + "node_modules/@rnx-kit/chromium-edge-launcher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz", + "integrity": "sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==", + "license": "Apache-2.0", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0" + "@types/node": "^18.0.0", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=14.15" } }, - "node_modules/@reown/appkit-ui/node_modules/lit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", - "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^2.0.0", - "lit-element": "^4.0.0", - "lit-html": "^3.1.0" + "node_modules/@rnx-kit/chromium-edge-launcher/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/@reown/appkit-ui/node_modules/lit-element": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", - "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", - "license": "BSD-3-Clause", + "node_modules/@rnx-kit/chromium-edge-launcher/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", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.2.0" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@reown/appkit-ui/node_modules/lit-html": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", - "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.47.tgz", + "integrity": "sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw==", + "dev": true, + "license": "MIT" }, - "node_modules/@reown/appkit-utils": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.7.1.tgz", - "integrity": "sha512-0gk3dkk7XaDp6POytuBziRt7pOBRi04SKWprw+dejN2VKfjy6vRdv1d/6k63nGJ4z/n+uN5/7YN2RQUL2jSZzw==", - "license": "Apache-2.0", + "node_modules/@rollup/plugin-alias": { + "version": "3.1.9", + "dev": true, + "license": "MIT", "dependencies": { - "@reown/appkit-common": "1.7.1", - "@reown/appkit-controllers": "1.7.1", - "@reown/appkit-polyfills": "1.7.1", - "@reown/appkit-wallet": "1.7.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/universal-provider": "2.19.1", - "valtio": "1.13.2", - "viem": ">=2.23.11" + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8.0.0" }, "peerDependencies": { - "valtio": "1.13.2" + "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/@reown/appkit-utils/node_modules/@adraffy/ens-normalize": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", - "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", - "license": "MIT" - }, - "node_modules/@reown/appkit-utils/node_modules/@noble/ciphers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", - "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", + "node_modules/@rollup/plugin-alias/node_modules/slash": { + "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=8" } }, - "node_modules/@reown/appkit-utils/node_modules/@noble/curves": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", - "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "dev": true, "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.0" + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">= 10.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } } }, - "node_modules/@reown/appkit-utils/node_modules/@noble/hashes": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", - "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", + "node_modules/@rollup/plugin-commonjs": { + "version": "21.0.2", + "dev": true, "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">= 8.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@scure/base": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", - "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "rollup": "^2.38.3" } }, - "node_modules/@reown/appkit-utils/node_modules/@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", - "license": "MIT", + "node_modules/@rollup/plugin-image": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-image/-/plugin-image-3.0.3.tgz", + "integrity": "sha512-qXWQwsXpvD4trSb8PeFPFajp8JLpRtqqOeNYRUKnEQNHm7e5UP7fuSRcbjQAJ7wDZBbnJvSdY5ujNBQd9B1iFg==", + "dev": true, "dependencies": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" + "@rollup/pluginutils": "^5.0.1", + "mini-svg-data-uri": "^1.4.4" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "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/@reown/appkit-utils/node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", - "license": "MIT", + "node_modules/@rollup/plugin-image/node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "dev": true, "dependencies": { - "@noble/hashes": "1.7.1" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=14.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@reown/appkit-utils/node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", - "license": "MIT", + "node_modules/@rollup/plugin-image/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@rollup/plugin-image/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=12" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@reown/appkit-utils/node_modules/@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "node_modules/@rollup/plugin-inject": { + "version": "4.0.4", + "dev": true, "license": "MIT", "dependencies": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" + "@rollup/pluginutils": "^3.1.0", + "estree-walker": "^2.0.1", + "magic-string": "^0.25.7" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" } }, - "node_modules/@reown/appkit-utils/node_modules/@scure/bip39/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "node_modules/@rollup/plugin-json": { + "version": "4.1.0", + "dev": true, "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" + "dependencies": { + "@rollup/pluginutils": "^3.0.8" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/core": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", - "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", - "license": "Apache-2.0", + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.1.3", + "dev": true, + "license": "MIT", "dependencies": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.19.1", - "@walletconnect/utils": "2.19.1", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" }, "engines": { - "node": ">=18" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/heartbeat": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", - "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", - "license": "MIT", - "dependencies": { - "@walletconnect/events": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "events": "^3.3.0" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/jsonrpc-provider": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", - "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", - "license": "MIT", - "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.8", - "@walletconnect/safe-json": "^1.0.2", - "events": "^3.3.0" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/jsonrpc-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", - "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", - "license": "MIT", - "dependencies": { - "events": "^3.3.0", - "keyvaluestorage-interface": "^1.0.0" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", - "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", - "license": "MIT", - "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.2", - "events": "^3.3.0", - "ws": "^7.5.1" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/relay-auth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", - "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", - "license": "MIT", - "dependencies": { - "@noble/curves": "1.8.0", - "@noble/hashes": "1.7.0", - "@walletconnect/safe-json": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", - "license": "MIT", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/sign-client": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", - "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", - "license": "Apache-2.0", - "dependencies": { - "@walletconnect/core": "2.19.1", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.19.1", - "@walletconnect/utils": "2.19.1", - "events": "3.3.0" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/types": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.1.tgz", - "integrity": "sha512-XWWGLioddH7MjxhyGhylL7VVariVON2XatJq/hy0kSGJ1hdp31z194nHN5ly9M495J9Hw8lcYjGXpsgeKvgxzw==", - "license": "Apache-2.0", - "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/universal-provider": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", - "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", - "license": "Apache-2.0", - "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.19.1", - "@walletconnect/types": "2.19.1", - "@walletconnect/utils": "2.19.1", - "es-toolkit": "1.33.0", - "events": "3.3.0" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", - "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", - "license": "Apache-2.0", - "dependencies": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.19.1", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "elliptic": "6.6.1", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.5", + "dev": true, "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.1" - }, - "engines": { - "node": "^14.21.3 || >=16" + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", - "license": "MIT", "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", - "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" + "node": ">=14.0.0" }, "peerDependencies": { - "typescript": ">=5.4.0" + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" }, "peerDependenciesMeta": { - "typescript": { + "rollup": { + "optional": true + }, + "tslib": { "optional": true } } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@rollup/plugin-typescript/node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "dev": true, "license": "MIT", "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "typescript": ">=5.0.4" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "typescript": { + "rollup": { "optional": true } } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "node_modules/@rollup/plugin-typescript/node_modules/@types/estree": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-virtual": { + "version": "3.0.2", + "dev": true, "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { + "rollup": { "optional": true } } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", - "license": "MIT", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "@walletconnect/window-getters": "^1.0.1", - "tslib": "1.14.1" - } - }, - "node_modules/@reown/appkit-utils/node_modules/abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/wevm" + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" }, - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" + "engines": { + "node": ">= 8.0.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/@reown/appkit-utils/node_modules/base-x": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", - "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "dev": true, "license": "MIT" }, - "node_modules/@reown/appkit-utils/node_modules/bs58": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", - "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "cpu": [ + "arm" + ], "license": "MIT", - "dependencies": { - "base-x": "^5.0.0" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@reown/appkit-utils/node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "cpu": [ + "arm64" + ], "license": "MIT", - "engines": { - "node": ">=0.10" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@reown/appkit-utils/node_modules/detect-browser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", - "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", - "license": "MIT" + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.3.0", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@reown/appkit-utils/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@reown/appkit-utils/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.37.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.37.0.tgz", + "integrity": "sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.8.x" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@reown/appkit-utils/node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.37.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.37.0.tgz", + "integrity": "sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@reown/appkit-utils/node_modules/ox": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", - "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "cpu": [ + "arm" ], "license": "MIT", - "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - }, - "peerDependencies": { - "typescript": ">=5.4.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@reown/appkit-utils/node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz", + "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@reown/appkit-utils/node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "cpu": [ + "arm64" + ], "license": "MIT", - "engines": { - "node": ">=6" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@reown/appkit-utils/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" + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@reown/appkit-utils/node_modules/uint8arrays": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", - "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.37.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.37.0.tgz", + "integrity": "sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.37.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.37.0.tgz", + "integrity": "sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz", + "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.5.1", + "license": "MIT" + }, + "node_modules/@safe-global/api-kit": { + "version": "2.1.0", "license": "MIT", "dependencies": { - "multiformats": "^9.4.2" + "@safe-global/protocol-kit": "^3.0.0", + "@safe-global/safe-core-sdk-types": "^4.0.0", + "ethers": "^6.7.1", + "node-fetch": "^2.7.0" } }, - "node_modules/@reown/appkit-utils/node_modules/viem": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.24.2.tgz", - "integrity": "sha512-lUGoTHhMYlR4ktQiOrbTPmYvrMn3jKUdn2PSmB9QLICxnsQJxMkSCeGRoJFq7hi7K6PCMQgAyLMR/9J1key5cg==", + "node_modules/@safe-global/api-kit/node_modules/@types/node": { + "version": "18.15.13", + "license": "MIT" + }, + "node_modules/@safe-global/api-kit/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "license": "MIT" + }, + "node_modules/@safe-global/api-kit/node_modules/ethers": { + "version": "6.10.0", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/wevm" + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], "license": "MIT", "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.9", - "ws": "8.18.1" - }, - "peerDependencies": { - "typescript": ">=5.0.4" + "@adraffy/ens-normalize": "1.10.0", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@reown/appkit-utils/node_modules/viem/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@safe-global/api-kit/node_modules/node-fetch": { + "version": "2.7.0", "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.1" + "whatwg-url": "^5.0.0" }, "engines": { - "node": "^14.21.3 || >=16" + "node": "4.x || >=6.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/@reown/appkit-utils/node_modules/viem/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "node_modules/@safe-global/api-kit/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/@safe-global/api-kit/node_modules/tslib": { + "version": "2.4.0", + "license": "0BSD" + }, + "node_modules/@safe-global/api-kit/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/@safe-global/api-kit/node_modules/whatwg-url": { + "version": "5.0.0", "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/@reown/appkit-utils/node_modules/viem/node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "node_modules/@safe-global/api-kit/node_modules/ws": { + "version": "8.5.0", "license": "MIT", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -32059,1470 +30077,1121 @@ } } }, - "node_modules/@reown/appkit-wallet": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.7.1.tgz", - "integrity": "sha512-KcULRspRSwZF8aZ5ydk8jYQp278RmUWsV8QQjtslAtSuErRNfmVyY2X+Gm43lpTD3sSYSyppoLdnwvxhSFNtEw==", - "license": "Apache-2.0", + "node_modules/@safe-global/protocol-kit": { + "version": "3.0.0", + "license": "MIT", "dependencies": { - "@reown/appkit-common": "1.7.1", - "@reown/appkit-polyfills": "1.7.1", - "@walletconnect/logger": "2.1.2", - "zod": "3.22.4" + "@noble/hashes": "^1.3.3", + "@safe-global/safe-deployments": "^1.32.0", + "ethereumjs-util": "^7.1.5", + "ethers": "^6.7.1", + "semver": "^7.5.4", + "web3": "^1.10.3", + "web3-core": "^1.10.3", + "web3-utils": "^1.10.3" } }, - "node_modules/@reown/appkit-wallet-button": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@reown/appkit-wallet-button/-/appkit-wallet-button-1.7.1.tgz", - "integrity": "sha512-AEnCUeH7bgcxkiOmh0OfOneydxZHjJ2wrey3LEIntivPxWbDZ0zhqIuYO/ogJEAAALM8zor+qYApYNTmkrmkyQ==", - "license": "Apache-2.0", + "node_modules/@safe-global/protocol-kit/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "license": "MIT", "dependencies": { - "@reown/appkit-common": "1.7.1", - "@reown/appkit-controllers": "1.7.1", - "@reown/appkit-ui": "1.7.1", - "@reown/appkit-utils": "1.7.1", - "lit": "3.2.1", - "valtio": "1.13.2" + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@reown/appkit-wallet-button/node_modules/@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", - "license": "BSD-3-Clause", + "node_modules/@safe-global/protocol-kit/node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "license": "MPL-2.0", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0" + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@reown/appkit-wallet-button/node_modules/lit": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", - "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", - "license": "BSD-3-Clause", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/abi": { + "version": "5.7.0", + "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": { - "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.1.0", - "lit-html": "^3.2.0" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@reown/appkit-wallet-button/node_modules/lit-element": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", - "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", - "license": "BSD-3-Clause", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "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": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.2.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, - "node_modules/@reown/appkit-wallet-button/node_modules/lit-html": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", - "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", - "license": "BSD-3-Clause", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "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": { - "@types/trusted-types": "^2.0.2" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@reown/appkit-wallet/node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/address": { + "version": "5.7.0", + "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", - "funding": { - "url": "https://github.com/sponsors/colinhacks" + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, - "node_modules/@reown/appkit/node_modules/@adraffy/ens-normalize": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", - "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", - "license": "MIT" - }, - "node_modules/@reown/appkit/node_modules/@noble/ciphers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", - "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/base64": { + "version": "5.7.0", + "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", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "dependencies": { + "@ethersproject/bytes": "^5.7.0" } }, - "node_modules/@reown/appkit/node_modules/@noble/curves": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", - "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/hash": { + "version": "5.7.0", + "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": { - "@noble/hashes": "1.7.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit/node_modules/@noble/hashes": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", - "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/networks": { + "version": "5.7.1", + "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", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "dependencies": { + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@reown/appkit/node_modules/@scure/base": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", - "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/properties": { + "version": "5.7.0", + "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", - "funding": { - "url": "https://paulmillr.com/funding/" + "dependencies": { + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@reown/appkit/node_modules/@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "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": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@reown/appkit/node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "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": { - "@noble/hashes": "1.7.1" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "node_modules/@reown/appkit/node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "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", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, - "node_modules/@reown/appkit/node_modules/@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/web": { + "version": "5.7.1", + "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": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@safe-global/protocol-kit/node_modules/@noble/hashes": { + "version": "1.3.3", + "license": "MIT", + "engines": { + "node": ">= 16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit/node_modules/@scure/bip39/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "node_modules/@safe-global/protocol-kit/node_modules/@sindresorhus/is": { + "version": "4.6.0", "license": "MIT", "engines": { - "node": "^14.21.3 || >=16" + "node": ">=10" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/core": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", - "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", - "license": "Apache-2.0", + "node_modules/@safe-global/protocol-kit/node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "license": "MIT", "dependencies": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.19.1", - "@walletconnect/utils": "2.19.1", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" + "defer-to-connect": "^2.0.1" }, "engines": { - "node": ">=18" + "node": ">=14.16" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/heartbeat": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", - "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", + "node_modules/@safe-global/protocol-kit/node_modules/@types/node": { + "version": "18.15.13", + "license": "MIT" + }, + "node_modules/@safe-global/protocol-kit/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "license": "MIT" + }, + "node_modules/@safe-global/protocol-kit/node_modules/cacheable-lookup": { + "version": "6.1.0", "license": "MIT", - "dependencies": { - "@walletconnect/events": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "events": "^3.3.0" + "engines": { + "node": ">=10.6.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/jsonrpc-provider": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", - "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", + "node_modules/@safe-global/protocol-kit/node_modules/cacheable-request": { + "version": "7.0.4", "license": "MIT", "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.8", - "@walletconnect/safe-json": "^1.0.2", - "events": "^3.3.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/jsonrpc-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", - "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", + "node_modules/@safe-global/protocol-kit/node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", "license": "MIT", - "dependencies": { - "events": "^3.3.0", - "keyvaluestorage-interface": "^1.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", - "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", + "node_modules/@safe-global/protocol-kit/node_modules/cross-fetch": { + "version": "4.0.0", "license": "MIT", "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.2", - "events": "^3.3.0", - "ws": "^7.5.1" + "node-fetch": "^2.6.12" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/relay-auth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", - "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", + "node_modules/@safe-global/protocol-kit/node_modules/decompress-response": { + "version": "6.0.0", "license": "MIT", "dependencies": { - "@noble/curves": "1.8.0", - "@noble/hashes": "1.7.0", - "@walletconnect/safe-json": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "uint8arrays": "^3.0.0" + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "node_modules/@safe-global/protocol-kit/node_modules/defer-to-connect": { + "version": "2.0.1", "license": "MIT", - "dependencies": { - "tslib": "1.14.1" + "engines": { + "node": ">=10" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/sign-client": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", - "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", - "license": "Apache-2.0", + "node_modules/@safe-global/protocol-kit/node_modules/eth-lib": { + "version": "0.2.8", + "license": "MIT", "dependencies": { - "@walletconnect/core": "2.19.1", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.19.1", - "@walletconnect/utils": "2.19.1", - "events": "3.3.0" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/types": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.1.tgz", - "integrity": "sha512-XWWGLioddH7MjxhyGhylL7VVariVON2XatJq/hy0kSGJ1hdp31z194nHN5ly9M495J9Hw8lcYjGXpsgeKvgxzw==", - "license": "Apache-2.0", + "node_modules/@safe-global/protocol-kit/node_modules/ethereumjs-util": { + "version": "7.1.5", + "license": "MPL-2.0", "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/universal-provider": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", - "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", - "license": "Apache-2.0", + "node_modules/@safe-global/protocol-kit/node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "license": "MIT", "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.19.1", - "@walletconnect/types": "2.19.1", - "@walletconnect/utils": "2.19.1", - "es-toolkit": "1.33.0", - "events": "3.3.0" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/utils": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", - "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", - "license": "Apache-2.0", + "node_modules/@safe-global/protocol-kit/node_modules/ethers": { + "version": "6.10.0", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.19.1", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "elliptic": "6.6.1", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" + "@adraffy/ens-normalize": "1.10.0", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@safe-global/protocol-kit/node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", "license": "MIT", - "dependencies": { - "@noble/hashes": "1.7.1" - }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">= 16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/@noble/hashes": { + "node_modules/@safe-global/protocol-kit/node_modules/eventemitter3": { + "version": "4.0.4", + "license": "MIT" + }, + "node_modules/@safe-global/protocol-kit/node_modules/form-data-encoder": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "license": "MIT" + }, + "node_modules/@safe-global/protocol-kit/node_modules/got": { + "version": "12.1.0", "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=14.16" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@safe-global/protocol-kit/node_modules/got/node_modules/get-stream": { + "version": "6.0.1", "license": "MIT", - "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - }, - "peerDependencies": { - "typescript": ">=5.4.0" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@safe-global/protocol-kit/node_modules/lowercase-keys": { + "version": "3.0.0", "license": "MIT", - "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@reown/appkit/node_modules/@walletconnect/utils/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": ">=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/@reown/appkit/node_modules/@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", - "license": "MIT", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/@reown/appkit/node_modules/@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", - "license": "MIT", - "dependencies": { - "@walletconnect/window-getters": "^1.0.1", - "tslib": "1.14.1" - } - }, - "node_modules/@reown/appkit/node_modules/abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "license": "MIT", "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit/node_modules/base-x": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", - "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", - "license": "MIT" - }, - "node_modules/@reown/appkit/node_modules/bs58": { + "node_modules/@safe-global/protocol-kit/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", - "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", - "license": "MIT", + "license": "ISC", "dependencies": { - "base-x": "^5.0.0" - } - }, - "node_modules/@reown/appkit/node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@reown/appkit/node_modules/detect-browser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", - "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", - "license": "MIT" - }, - "node_modules/@reown/appkit/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/@reown/appkit/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.8.x" + "node": ">=10" } }, - "node_modules/@reown/appkit/node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "node_modules/@safe-global/protocol-kit/node_modules/mimic-response": { + "version": "3.1.0", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit/node_modules/ox": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", - "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@safe-global/protocol-kit/node_modules/node-fetch": { + "version": "2.7.0", "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" }, "peerDependencies": { - "typescript": ">=5.4.0" + "encoding": "^0.1.0" }, "peerDependenciesMeta": { - "typescript": { + "encoding": { "optional": true } } }, - "node_modules/@reown/appkit/node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "node_modules/@safe-global/protocol-kit/node_modules/normalize-url": { + "version": "6.1.0", "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit/node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "node_modules/@safe-global/protocol-kit/node_modules/p-cancelable": { + "version": "3.0.0", "license": "MIT", "engines": { - "node": ">=6" - } - }, - "node_modules/@reown/appkit/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" - }, - "node_modules/@reown/appkit/node_modules/uint8arrays": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", - "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", - "license": "MIT", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/@reown/appkit/node_modules/viem": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.24.2.tgz", - "integrity": "sha512-lUGoTHhMYlR4ktQiOrbTPmYvrMn3jKUdn2PSmB9QLICxnsQJxMkSCeGRoJFq7hi7K6PCMQgAyLMR/9J1key5cg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", - "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.9", - "ws": "8.18.1" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=12.20" } }, - "node_modules/@reown/appkit/node_modules/viem/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@safe-global/protocol-kit/node_modules/responselike": { + "version": "2.0.1", "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.1" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@reown/appkit/node_modules/viem/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" + "lowercase-keys": "^2.0.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@reown/appkit/node_modules/viem/node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "node_modules/@safe-global/protocol-kit/node_modules/responselike/node_modules/lowercase-keys": { + "version": "2.0.0", "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/@replit/codemirror-css-color-picker": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@replit/codemirror-css-color-picker/-/codemirror-css-color-picker-6.3.0.tgz", - "integrity": "sha512-19biDANghUm7Fz7L1SNMIhK48tagaWuCOHj4oPPxc7hxPGkTVY2lU/jVZ8tsbTKQPVG7BO2CBDzs7CBwb20t4A==", - "license": "MIT", - "peerDependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" + "node": ">=8" } }, - "node_modules/@rjsf/core": { - "version": "4.2.3", - "dev": true, - "license": "Apache-2.0", + "node_modules/@safe-global/protocol-kit/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", "dependencies": { - "@types/json-schema": "^7.0.7", - "ajv": "^6.7.0", - "core-js-pure": "^3.6.5", - "json-schema-merge-allof": "^0.6.0", - "jsonpointer": "^5.0.0", - "lodash": "^4.17.15", - "lodash-es": "^4.17.15", - "nanoid": "^3.1.23", - "prop-types": "^15.7.2", - "react-is": "16.9.0" + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=12" + "bin": { + "semver": "bin/semver.js" }, - "peerDependencies": { - "react": ">=16 || >=17" + "engines": { + "node": ">=10" } }, - "node_modules/@rjsf/core/node_modules/react-is": { - "version": "16.9.0", - "dev": true, + "node_modules/@safe-global/protocol-kit/node_modules/tr46": { + "version": "0.0.3", "license": "MIT" }, - "node_modules/@rmp135/sql-ts": { - "version": "1.18.0", - "dev": true, + "node_modules/@safe-global/protocol-kit/node_modules/tslib": { + "version": "2.4.0", + "license": "0BSD" + }, + "node_modules/@safe-global/protocol-kit/node_modules/uuid": { + "version": "9.0.1", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", - "dependencies": { - "change-case": "^4.1.2", - "handlebars": "^4.7.7", - "knex": "^2.4.2", - "yargs": "^17.7.2" - }, "bin": { - "sql-ts": "bin/sql-ts" - }, - "peerDependencies": { - "better-sqlite3": "^8.4.0", - "mssql": "^9.1.1", - "mysql": "^2.18.1", - "mysql2": "^3.3.2", - "pg": "^8.11.0", - "sqlite3": "^5.1.6" - }, - "peerDependenciesMeta": { - "better-sqlite3": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "sqlite3": { - "optional": true - } + "uuid": "dist/bin/uuid" } }, - "node_modules/@rmp135/sql-ts/node_modules/handlebars": { - "version": "4.7.8", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3": { + "version": "1.10.3", + "hasInstallScript": true, + "license": "LGPL-3.0", "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" + "web3-bzz": "1.10.3", + "web3-core": "1.10.3", + "web3-eth": "1.10.3", + "web3-eth-personal": "1.10.3", + "web3-net": "1.10.3", + "web3-shh": "1.10.3", + "web3-utils": "1.10.3" }, "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "node": ">=8.0.0" } }, - "node_modules/@rmp135/sql-ts/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/@safe-global/protocol-kit/node_modules/web3-bzz": { + "version": "1.10.3", + "hasInstallScript": true, + "license": "LGPL-3.0", + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0.0" } }, - "node_modules/@rmp135/sql-ts/node_modules/wordwrap": { - "version": "1.0.0", - "dev": true, + "node_modules/@safe-global/protocol-kit/node_modules/web3-bzz/node_modules/@types/node": { + "version": "12.20.55", "license": "MIT" }, - "node_modules/@rnx-kit/chromium-edge-launcher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz", - "integrity": "sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==", - "license": "Apache-2.0", + "node_modules/@safe-global/protocol-kit/node_modules/web3-core": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "@types/node": "^18.0.0", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0", - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-core-requestmanager": "1.10.3", + "web3-utils": "1.10.3" }, "engines": { - "node": ">=14.15" + "node": ">=8.0.0" } }, - "node_modules/@rnx-kit/chromium-edge-launcher/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" + "node_modules/@safe-global/protocol-kit/node_modules/web3-core-helpers": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" }, "engines": { - "node": ">=10" + "node": ">=8.0.0" } }, - "node_modules/@rnx-kit/chromium-edge-launcher/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", + "node_modules/@safe-global/protocol-kit/node_modules/web3-core-method": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.3", + "web3-core-promievent": "1.10.3", + "web3-core-subscriptions": "1.10.3", + "web3-utils": "1.10.3" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.47.tgz", - "integrity": "sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/plugin-alias": { - "version": "3.1.9", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3-core-promievent": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "slash": "^3.0.0" + "eventemitter3": "4.0.4" }, "engines": { "node": ">=8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/@rollup/plugin-alias/node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3-core-requestmanager": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.3", + "web3-providers-http": "1.10.3", + "web3-providers-ipc": "1.10.3", + "web3-providers-ws": "1.10.3" + }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3-core-subscriptions": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.3" }, "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-commonjs": { - "version": "21.0.2", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3-core/node_modules/@types/node": { + "version": "12.20.55", + "license": "MIT" + }, + "node_modules/@safe-global/protocol-kit/node_modules/web3-eth": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-core-subscriptions": "1.10.3", + "web3-eth-abi": "1.10.3", + "web3-eth-accounts": "1.10.3", + "web3-eth-contract": "1.10.3", + "web3-eth-ens": "1.10.3", + "web3-eth-iban": "1.10.3", + "web3-eth-personal": "1.10.3", + "web3-net": "1.10.3", + "web3-utils": "1.10.3" }, "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^2.38.3" + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-image": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-image/-/plugin-image-3.0.3.tgz", - "integrity": "sha512-qXWQwsXpvD4trSb8PeFPFajp8JLpRtqqOeNYRUKnEQNHm7e5UP7fuSRcbjQAJ7wDZBbnJvSdY5ujNBQd9B1iFg==", - "dev": true, + "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-abi": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "mini-svg-data-uri": "^1.4.4" + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.10.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-accounts": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "@ethereumjs/common": "2.6.5", + "@ethereumjs/tx": "3.5.2", + "@ethereumjs/util": "^8.1.0", + "eth-lib": "0.2.8", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-utils": "1.10.3" }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-contract": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-core-promievent": "1.10.3", + "web3-core-subscriptions": "1.10.3", + "web3-eth-abi": "1.10.3", + "web3-utils": "1.10.3" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-image/node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", - "dev": true, + "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-ens": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-promievent": "1.10.3", + "web3-eth-abi": "1.10.3", + "web3-eth-contract": "1.10.3", + "web3-utils": "1.10.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-iban": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-personal": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-net": "1.10.3", + "web3-utils": "1.10.3" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-image/node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true + "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-personal/node_modules/@types/node": { + "version": "12.20.55", + "license": "MIT" }, - "node_modules/@rollup/plugin-image/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "engines": { - "node": ">=12" + "node_modules/@safe-global/protocol-kit/node_modules/web3-net": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "web3-core": "1.10.3", + "web3-core-method": "1.10.3", + "web3-utils": "1.10.3" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-inject": { - "version": "4.0.4", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3-providers-http": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "estree-walker": "^2.0.1", - "magic-string": "^0.25.7" + "abortcontroller-polyfill": "^1.7.5", + "cross-fetch": "^4.0.0", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.3" }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-json": { - "version": "4.1.0", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3-providers-ipc": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "@rollup/pluginutils": "^3.0.8" + "oboe": "2.1.5", + "web3-core-helpers": "1.10.3" }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "13.1.3", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3-providers-ws": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.3", + "websocket": "^1.0.32" }, "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^2.42.0" + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-typescript": { - "version": "11.1.5", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3-shh": { + "version": "1.10.3", + "hasInstallScript": true, + "license": "LGPL-3.0", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "resolve": "^1.22.1" + "web3-core": "1.10.3", + "web3-core-method": "1.10.3", + "web3-core-subscriptions": "1.10.3", + "web3-net": "1.10.3" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0||^3.0.0||^4.0.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-typescript/node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "dev": true, - "license": "MIT", + "node_modules/@safe-global/protocol-kit/node_modules/web3-utils": { + "version": "1.10.3", + "license": "LGPL-3.0", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "@ethereumjs/util": "^8.1.0", + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereum-cryptography": "^2.1.2", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=8.0.0" } }, - "node_modules/@rollup/plugin-typescript/node_modules/@types/estree": { - "version": "1.0.5", - "dev": true, - "license": "MIT" + "node_modules/@safe-global/protocol-kit/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" }, - "node_modules/@rollup/plugin-virtual": { - "version": "3.0.2", - "dev": true, + "node_modules/@safe-global/protocol-kit/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@safe-global/protocol-kit/node_modules/ws": { + "version": "8.5.0", "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=10.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { - "rollup": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { "optional": true } } }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "dev": true, + "node_modules/@safe-global/protocol-kit/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/@safe-global/safe-apps-provider": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.5.tgz", + "integrity": "sha512-9v9wjBi3TwLsEJ3C2ujYoexp3pFJ0omDLH/GX91e2QB+uwCKTBYyhxFSrTQ9qzoyQd+bfsk4gjOGW87QcJhf7g==", "license": "MIT", "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "@safe-global/safe-apps-sdk": "^9.1.0", + "events": "^3.3.0" } }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "1.0.1", - "dev": true, - "license": "MIT" + "node_modules/@safe-global/safe-apps-provider/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", - "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", - "cpu": [ - "arm" - ], + "node_modules/@safe-global/safe-apps-sdk": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz", + "integrity": "sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==", "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", + "viem": "^2.1.1" + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", - "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", - "cpu": [ - "arm64" - ], + "node_modules/@safe-global/safe-core-sdk-types": { + "version": "4.0.0", "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "@safe-global/safe-deployments": "^1.32.0", + "ethers": "^6.7.1", + "web3-core": "^1.10.3", + "web3-utils": "^1.10.3" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.3.0", - "cpu": [ - "arm64" + "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/address": { + "version": "5.7.0", + "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, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", - "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", - "cpu": [ - "x64" + "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/properties": { + "version": "5.7.0", + "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", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.37.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.37.0.tgz", - "integrity": "sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==", - "cpu": [ - "arm64" + "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "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, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.37.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.37.0.tgz", - "integrity": "sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==", - "cpu": [ - "x64" + "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "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, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", - "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", - "cpu": [ - "arm" + "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "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", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz", - "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", - "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", - "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", - "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.37.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.37.0.tgz", - "integrity": "sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", - "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.37.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.37.0.tgz", - "integrity": "sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz", - "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", - "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", - "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", - "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", - "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", - "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", - "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.5.1", - "license": "MIT" - }, - "node_modules/@safe-global/api-kit": { - "version": "2.1.0", - "license": "MIT", "dependencies": { - "@safe-global/protocol-kit": "^3.0.0", - "@safe-global/safe-core-sdk-types": "^4.0.0", - "ethers": "^6.7.1", - "node-fetch": "^2.7.0" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, - "node_modules/@safe-global/api-kit/node_modules/@types/node": { + "node_modules/@safe-global/safe-core-sdk-types/node_modules/@types/node": { "version": "18.15.13", "license": "MIT" }, - "node_modules/@safe-global/api-kit/node_modules/aes-js": { + "node_modules/@safe-global/safe-core-sdk-types/node_modules/aes-js": { "version": "4.0.0-beta.5", "license": "MIT" }, - "node_modules/@safe-global/api-kit/node_modules/ethers": { + "node_modules/@safe-global/safe-core-sdk-types/node_modules/cross-fetch": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/ethers": { "version": "6.10.0", "funding": [ { @@ -33548,7 +31217,11 @@ "node": ">=14.0.0" } }, - "node_modules/@safe-global/api-kit/node_modules/node-fetch": { + "node_modules/@safe-global/safe-core-sdk-types/node_modules/eventemitter3": { + "version": "4.0.4", + "license": "MIT" + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/node-fetch": { "version": "2.7.0", "license": "MIT", "dependencies": { @@ -33566,19 +31239,163 @@ } } }, - "node_modules/@safe-global/api-kit/node_modules/tr46": { + "node_modules/@safe-global/safe-core-sdk-types/node_modules/tr46": { "version": "0.0.3", "license": "MIT" }, - "node_modules/@safe-global/api-kit/node_modules/tslib": { + "node_modules/@safe-global/safe-core-sdk-types/node_modules/tslib": { "version": "2.4.0", "license": "0BSD" }, - "node_modules/@safe-global/api-kit/node_modules/webidl-conversions": { + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-core-requestmanager": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-helpers": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-method": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.3", + "web3-core-promievent": "1.10.3", + "web3-core-subscriptions": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-promievent": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "eventemitter3": "4.0.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-requestmanager": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.3", + "web3-providers-http": "1.10.3", + "web3-providers-ipc": "1.10.3", + "web3-providers-ws": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-subscriptions": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core/node_modules/@types/node": { + "version": "12.20.55", + "license": "MIT" + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-eth-iban": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-providers-http": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "abortcontroller-polyfill": "^1.7.5", + "cross-fetch": "^4.0.0", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-providers-ipc": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-providers-ws": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.3", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-utils": { + "version": "1.10.3", + "license": "LGPL-3.0", + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereum-cryptography": "^2.1.2", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@safe-global/safe-core-sdk-types/node_modules/webidl-conversions": { "version": "3.0.1", "license": "BSD-2-Clause" }, - "node_modules/@safe-global/api-kit/node_modules/whatwg-url": { + "node_modules/@safe-global/safe-core-sdk-types/node_modules/whatwg-url": { "version": "5.0.0", "license": "MIT", "dependencies": { @@ -33586,7 +31403,7 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/@safe-global/api-kit/node_modules/ws": { + "node_modules/@safe-global/safe-core-sdk-types/node_modules/ws": { "version": "8.5.0", "license": "MIT", "engines": { @@ -33605,1398 +31422,1142 @@ } } }, - "node_modules/@safe-global/protocol-kit": { - "version": "3.0.0", + "node_modules/@safe-global/safe-deployments": { + "version": "1.32.0", "license": "MIT", "dependencies": { - "@noble/hashes": "^1.3.3", - "@safe-global/safe-deployments": "^1.32.0", - "ethereumjs-util": "^7.1.5", - "ethers": "^6.7.1", - "semver": "^7.5.4", - "web3": "^1.10.3", - "web3-core": "^1.10.3", - "web3-utils": "^1.10.3" + "semver": "^7.3.7" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "license": "MIT", + "node_modules/@safe-global/safe-deployments/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "license": "MPL-2.0", + "node_modules/@safe-global/safe-deployments/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/abi": { - "version": "5.7.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@safe-global/safe-deployments/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/@safe-global/safe-gateway-typescript-sdk": { + "version": "3.22.6", + "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.22.6.tgz", + "integrity": "sha512-R0Ck7n8fj7KtFUpbsGi0j3e2t0/bhpHTY/U8P8315vQ8aT/sfZrWMcfFcD5I9Kw8TEU7rvKY0+sngT1lCptJmQ==", "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "engines": { + "node": ">=16" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/analytics-client": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scalar/analytics-client/-/analytics-client-1.1.1.tgz", + "integrity": "sha512-Y5RczHNlSms+rRI3+0gVCONMywP1lEuxpufj+XX918TTbMlFFzQk6lX76olL6KSk0zbt/NUZvRKfDro5fNjZtw==", "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" + "zod": "^4.3.5" + }, + "engines": { + "node": ">=22" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/analytics-client/node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "funding": { + "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/address": { - "version": "5.7.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/code-highlight": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@scalar/code-highlight/-/code-highlight-0.3.1.tgz", + "integrity": "sha512-2nUHEssDMBJ52r5D9IhqcB+3cMuVmBP9s77pwRGd8Lj6Qa/R8Pzxqcv9jNbS7uYilNSNCZ5NbgR7Efh66qHLag==", "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" + "hast-util-to-text": "^4.0.2", + "highlight.js": "^11.11.1", + "highlightjs-curl": "^1.3.0", + "lowlight": "^3.3.0", + "rehype-external-links": "^3.0.0", + "rehype-format": "^5.0.1", + "rehype-parse": "^9.0.1", + "rehype-raw": "^7.0.0", + "rehype-sanitize": "^6.0.0", + "rehype-stringify": "^10.0.0", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=22" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/base64": { - "version": "5.7.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/code-highlight/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0" + "@types/unist": "*" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/hash": { - "version": "5.7.0", - "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.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } + "node_modules/@scalar/code-highlight/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/networks": { - "version": "5.7.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/code-highlight/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.7.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/properties": { - "version": "5.7.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/code-highlight/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.7.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/code-highlight/node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/code-highlight/node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", "license": "MIT", "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@ethersproject/web": { - "version": "5.7.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", "license": "MIT", "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/@noble/hashes": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 16" + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@sindresorhus/is": { - "version": "4.6.0", + "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" }, "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", + "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "license": "MIT", "dependencies": { - "defer-to-connect": "^2.0.1" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/@types/node": { - "version": "18.15.13", - "license": "MIT" - }, - "node_modules/@safe-global/protocol-kit/node_modules/aes-js": { - "version": "4.0.0-beta.5", - "license": "MIT" - }, - "node_modules/@safe-global/protocol-kit/node_modules/cacheable-lookup": { - "version": "6.1.0", - "license": "MIT", - "engines": { - "node": ">=10.6.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/cacheable-request": { - "version": "7.0.4", + "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", "license": "MIT", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/cacheable-request/node_modules/lowercase-keys": { + "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-task-list-item": { "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/cross-fetch": { - "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/decompress-response": { - "version": "6.0.0", + "node_modules/@scalar/code-highlight/node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "license": "MIT", "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/defer-to-connect": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=10" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/eth-lib": { - "version": "0.2.8", + "node_modules/@scalar/code-highlight/node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", "license": "MIT", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/ethereumjs-util": { - "version": "7.1.5", - "license": "MPL-2.0", + "node_modules/@scalar/code-highlight/node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "@types/mdast": "^4.0.0" }, - "engines": { - "node": ">=10.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", + "node_modules/@scalar/code-highlight/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/ethers": { - "version": "6.10.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "funding": [ { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/ethers/node_modules/@noble/hashes": { - "version": "1.3.2", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/@safe-global/protocol-kit/node_modules/form-data-encoder": { - "version": "1.7.1", - "license": "MIT" - }, - "node_modules/@safe-global/protocol-kit/node_modules/got": { - "version": "12.1.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", "license": "MIT", "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/got/node_modules/get-stream": { - "version": "6.0.1", + "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/lowercase-keys": { - "version": "3.0.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", + "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/mimic-response": { - "version": "3.1.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/node-fetch": { - "version": "2.7.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "micromark-util-types": "^2.0.0" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/normalize-url": { - "version": "6.1.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/protocol-kit/node_modules/p-cancelable": { - "version": "3.0.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">=12.20" + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/responselike": { + "node_modules/@scalar/code-highlight/node_modules/micromark-factory-label": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/@safe-global/protocol-kit/node_modules/tslib": { - "version": "2.4.0", - "license": "0BSD" - }, - "node_modules/@safe-global/protocol-kit/node_modules/uuid": { - "version": "9.0.1", + "node_modules/@scalar/code-highlight/node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } ], "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3": { - "version": "1.10.3", - "hasInstallScript": true, - "license": "LGPL-3.0", "dependencies": { - "web3-bzz": "1.10.3", - "web3-core": "1.10.3", - "web3-eth": "1.10.3", - "web3-eth-personal": "1.10.3", - "web3-net": "1.10.3", - "web3-shh": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-bzz": { - "version": "1.10.3", - "hasInstallScript": true, - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.55", - "license": "MIT" - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-core": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-core-requestmanager": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-core-helpers": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-core-method": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.3", - "web3-core-promievent": "1.10.3", - "web3-core-subscriptions": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-core-promievent": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-core-requestmanager": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.3", - "web3-providers-http": "1.10.3", - "web3-providers-ipc": "1.10.3", - "web3-providers-ws": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-core-subscriptions": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.55", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT" }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-eth": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-core-subscriptions": "1.10.3", - "web3-eth-abi": "1.10.3", - "web3-eth-accounts": "1.10.3", - "web3-eth-contract": "1.10.3", - "web3-eth-ens": "1.10.3", - "web3-eth-iban": "1.10.3", - "web3-eth-personal": "1.10.3", - "web3-net": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-abi": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-accounts": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/common": "2.6.5", - "@ethereumjs/tx": "3.5.2", - "@ethereumjs/util": "^8.1.0", - "eth-lib": "0.2.8", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-contract": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-core-promievent": "1.10.3", - "web3-core-subscriptions": "1.10.3", - "web3-eth-abi": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-ens": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-promievent": "1.10.3", - "web3-eth-abi": "1.10.3", - "web3-eth-contract": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-iban": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-personal": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-net": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.55", - "license": "MIT" - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-net": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.10.3", - "web3-core-method": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-providers-http": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "abortcontroller-polyfill": "^1.7.5", - "cross-fetch": "^4.0.0", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-providers-ipc": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-providers-ws": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.3", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-shh": { - "version": "1.10.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.10.3", - "web3-core-method": "1.10.3", - "web3-core-subscriptions": "1.10.3", - "web3-net": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/web3-utils": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/util": "^8.1.0", - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereum-cryptography": "^2.1.2", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/@safe-global/protocol-kit/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/ws": { - "version": "8.5.0", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true + "node_modules/@scalar/code-highlight/node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, - "utf-8-validate": { - "optional": true + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } - } - }, - "node_modules/@safe-global/protocol-kit/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@safe-global/safe-apps-provider": { - "version": "0.18.5", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.5.tgz", - "integrity": "sha512-9v9wjBi3TwLsEJ3C2ujYoexp3pFJ0omDLH/GX91e2QB+uwCKTBYyhxFSrTQ9qzoyQd+bfsk4gjOGW87QcJhf7g==", - "license": "MIT", - "dependencies": { - "@safe-global/safe-apps-sdk": "^9.1.0", - "events": "^3.3.0" - } - }, - "node_modules/@safe-global/safe-apps-provider/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/@safe-global/safe-apps-sdk": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz", - "integrity": "sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==", - "license": "MIT", - "dependencies": { - "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", - "viem": "^2.1.1" - } - }, - "node_modules/@safe-global/safe-core-sdk-types": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "@safe-global/safe-deployments": "^1.32.0", - "ethers": "^6.7.1", - "web3-core": "^1.10.3", - "web3-utils": "^1.10.3" - } + ], + "license": "MIT" }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/address": { - "version": "5.7.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/properties": { - "version": "5.7.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/rlp": { - "version": "5.7.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/signing-key": { - "version": "5.7.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/@ethersproject/transactions": { - "version": "5.7.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/@types/node": { - "version": "18.15.13", - "license": "MIT" - }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/aes-js": { - "version": "4.0.0-beta.5", "license": "MIT" }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/cross-fetch": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/ethers": { - "version": "6.10.0", + "node_modules/@scalar/code-highlight/node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "funding": [ { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], + "license": "MIT" + }, + "node_modules/@scalar/code-highlight/node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" }, - "engines": { - "node": ">=14.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/node-fetch": { - "version": "2.7.0", + "node_modules/@scalar/code-highlight/node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/tslib": { - "version": "2.4.0", - "license": "0BSD" - }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-core-requestmanager": "1.10.3", - "web3-utils": "1.10.3" + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-helpers": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-method": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.3", - "web3-core-promievent": "1.10.3", - "web3-core-subscriptions": "1.10.3", - "web3-utils": "1.10.3" + "@types/unist": "^3.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-promievent": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4" + "@types/unist": "^3.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-requestmanager": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.3", - "web3-providers-http": "1.10.3", - "web3-providers-ipc": "1.10.3", - "web3-providers-ws": "1.10.3" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core-subscriptions": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.3" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.55", - "license": "MIT" - }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-eth-iban": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-providers-http": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/code-highlight/node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", "dependencies": { - "abortcontroller-polyfill": "^1.7.5", - "cross-fetch": "^4.0.0", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.3" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-providers-ipc": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/draggable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@scalar/draggable/-/draggable-0.4.1.tgz", + "integrity": "sha512-TvTiy0tB2ulfBL7jwrpnsf7Geqlq/tWaIopkyZLii9bZPxPX5y1o6fVJXMyjtsUo0FSzvB382kN4uPi1TK/Hww==", + "license": "MIT", "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.3" + "vue": "^3.5.26" }, "engines": { - "node": ">=8.0.0" + "node": ">=22" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-providers-ws": { - "version": "1.10.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.3", - "websocket": "^1.0.32" - }, + "node_modules/@scalar/helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.4.2.tgz", + "integrity": "sha512-IrgrGVSahCfYDNWITazz4Q1BOndp5eEzlimRkfxiYn++KqeWyLfALyym1omqcdKGYtiSx1KIbKaUJL9vkjaN7w==", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=22" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/web3-utils": { - "version": "1.10.3", - "license": "LGPL-3.0", + "node_modules/@scalar/import": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@scalar/import/-/import-0.5.3.tgz", + "integrity": "sha512-eXclOMoVMiafHpR+yRs/SrxCexxXFVBekf+TagaQy0EVTAwFHi38jDURq6rs1E8SVUJlkH0Pu/xS2kHhxtmFAQ==", + "license": "MIT", "dependencies": { - "@ethereumjs/util": "^8.1.0", - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereum-cryptography": "^2.1.2", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "@scalar/helpers": "0.4.2", + "yaml": "^2.8.0" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node": ">=22" } }, - "node_modules/@safe-global/safe-core-sdk-types/node_modules/ws": { - "version": "8.5.0", - "license": "MIT", - "engines": { - "node": ">=10.0.0" + "node_modules/@scalar/import/node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "engines": { + "node": ">= 14.6" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, - "node_modules/@safe-global/safe-deployments": { - "version": "1.32.0", + "node_modules/@scalar/json-magic": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.12.4.tgz", + "integrity": "sha512-ZsJM+y9SOVjRL+g9Tr/jFEodcYPfHSt5ZRrpbeGDK71yTvSZw41A3UJ7Bg+RXM8JJWRYcJkYVkzrmbb/ig7qlA==", "license": "MIT", "dependencies": { - "semver": "^7.3.7" - } - }, - "node_modules/@safe-global/safe-deployments/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "@scalar/helpers": "0.4.2", + "pathe": "^2.0.3", + "yaml": "^2.8.0" }, "engines": { - "node": ">=10" + "node": ">=22" } }, - "node_modules/@safe-global/safe-deployments/node_modules/semver": { - "version": "7.5.4", + "node_modules/@scalar/json-magic/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/@scalar/json-magic/node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { - "semver": "bin/semver.js" + "yaml": "bin.mjs" }, "engines": { - "node": ">=10" + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, - "node_modules/@safe-global/safe-deployments/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@safe-global/safe-gateway-typescript-sdk": { - "version": "3.22.6", - "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.22.6.tgz", - "integrity": "sha512-R0Ck7n8fj7KtFUpbsGi0j3e2t0/bhpHTY/U8P8315vQ8aT/sfZrWMcfFcD5I9Kw8TEU7rvKY0+sngT1lCptJmQ==", + "node_modules/@scalar/object-utils": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@scalar/object-utils/-/object-utils-1.3.3.tgz", + "integrity": "sha512-8BvTy3d5CpF7nZjexgRDZ+TfAuv+biqvb9mJDV4UuWYMhLPZWKio0G+vcAB+8Rq3hrVrY+y9Yeha6OBz39NgVw==", "license": "MIT", + "dependencies": { + "@scalar/helpers": "0.4.2", + "flatted": "^3.3.3", + "just-clone": "^6.2.0", + "ts-deepmerge": "^7.0.3" + }, "engines": { - "node": ">=16" + "node": ">=22" } }, - "node_modules/@scalar/analytics-client": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scalar/analytics-client/-/analytics-client-1.1.1.tgz", - "integrity": "sha512-Y5RczHNlSms+rRI3+0gVCONMywP1lEuxpufj+XX918TTbMlFFzQk6lX76olL6KSk0zbt/NUZvRKfDro5fNjZtw==", + "node_modules/@scalar/openapi-types": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@scalar/openapi-types/-/openapi-types-0.6.1.tgz", + "integrity": "sha512-P1RvyTFN0vRSL136OqWjlZfSFjY9JoJfuD6LM1mIjoocfwmqX3WuzsFEFX6hAeeDlTh6gjbiy+OdhSee8GFfSA==", "license": "MIT", "dependencies": { "zod": "^4.3.5" @@ -35005,7 +32566,7 @@ "node": ">=22" } }, - "node_modules/@scalar/analytics-client/node_modules/zod": { + "node_modules/@scalar/openapi-types/node_modules/zod": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", @@ -35014,4817 +32575,4151 @@ "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/@scalar/code-highlight": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@scalar/code-highlight/-/code-highlight-0.3.1.tgz", - "integrity": "sha512-2nUHEssDMBJ52r5D9IhqcB+3cMuVmBP9s77pwRGd8Lj6Qa/R8Pzxqcv9jNbS7uYilNSNCZ5NbgR7Efh66qHLag==", + "node_modules/@scalar/postman-to-openapi": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@scalar/postman-to-openapi/-/postman-to-openapi-0.5.3.tgz", + "integrity": "sha512-Z7K5q5qTSyE320T/FncDxaYKsuqGkLTexaGub0FWqh53dv5mtkwdn7pLVTTt8K4oP+dS+xWJXEcogj36qN6JfQ==", "license": "MIT", "dependencies": { - "hast-util-to-text": "^4.0.2", - "highlight.js": "^11.11.1", - "highlightjs-curl": "^1.3.0", - "lowlight": "^3.3.0", - "rehype-external-links": "^3.0.0", - "rehype-format": "^5.0.1", - "rehype-parse": "^9.0.1", - "rehype-raw": "^7.0.0", - "rehype-sanitize": "^6.0.0", - "rehype-stringify": "^10.0.0", - "remark-gfm": "^4.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.1.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.4", - "unist-util-visit": "^5.0.0" + "@scalar/helpers": "0.4.2", + "@scalar/openapi-types": "0.6.1" }, "engines": { "node": ">=22" } }, - "node_modules/@scalar/code-highlight/node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "node_modules/@scalar/themes": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@scalar/themes/-/themes-0.15.1.tgz", + "integrity": "sha512-+UtMhokjshg+FJwOFIAIMlrn2/k6FC/Otd9QSL0unW7doP+vGY3nMXpyfQ18mNU4Tok8/nbLtfXHONxRIJgQHQ==", "license": "MIT", "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@scalar/code-highlight/node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@scalar/code-highlight/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" + "nanoid": "^5.1.6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=22" } }, - "node_modules/@scalar/code-highlight/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "node_modules/@scalar/themes/node_modules/nanoid": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz", + "integrity": "sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "engines": { - "node": ">=12" + "bin": { + "nanoid": "bin/nanoid.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^18 || >=20" } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "node_modules/@scalar/typebox": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@scalar/typebox/-/typebox-0.1.3.tgz", + "integrity": "sha512-lU055AUccECZMIfGA0z/C1StYmboAYIPJLDFBzOO81yXBi35Pxdq+I4fWX6iUZ8qcoHneiLGk9jAUM1rA93iEg==", + "license": "MIT" + }, + "node_modules/@scalar/types": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@scalar/types/-/types-0.7.4.tgz", + "integrity": "sha512-1o9uf42lZ9YD0XP/HMWrwXN0unx6vFTTgtduA1F28Yloea9Pfv9N2R/t0wO91iSIzw4+NubEFolunbdb2QcgHA==", "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" + "@scalar/helpers": "0.4.2", + "nanoid": "^5.1.6", + "type-fest": "^5.3.1", + "zod": "^4.3.5" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=22" } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-from-markdown": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", - "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "node_modules/@scalar/types/node_modules/nanoid": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz", + "integrity": "sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" + "bin": { + "nanoid": "bin/nanoid.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "^18 || >=20" } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", - "license": "MIT", + "node_modules/@scalar/types/node_modules/type-fest": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", + "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "license": "(MIT OR CC0-1.0)", "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "node_modules/@scalar/types/node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "node_modules/@scalar/use-codemirror": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/@scalar/use-codemirror/-/use-codemirror-0.14.10.tgz", + "integrity": "sha512-MtriwvGzWrHkYyUANzMGvD6aT6h2f/YBMA938ZKTxj9Rx0RxvolwGw+MdwBOYDHqVGNyrA3sxkbkZzlNv+O1Fw==", "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" + "@codemirror/autocomplete": "^6.18.3", + "@codemirror/commands": "^6.7.1", + "@codemirror/lang-css": "^6.3.1", + "@codemirror/lang-html": "^6.4.8", + "@codemirror/lang-json": "^6.0.0", + "@codemirror/lang-xml": "^6.0.0", + "@codemirror/lang-yaml": "^6.1.2", + "@codemirror/language": "^6.10.7", + "@codemirror/lint": "^6.8.4", + "@codemirror/state": "^6.5.0", + "@codemirror/view": "^6.35.3", + "@lezer/common": "^1.2.3", + "@lezer/highlight": "^1.2.1", + "@replit/codemirror-css-color-picker": "^6.3.0", + "vue": "^3.5.26" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=22" } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "node_modules/@scalar/use-hooks": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@scalar/use-hooks/-/use-hooks-0.4.1.tgz", + "integrity": "sha512-+lx57gPT9c5WT18MwgUQMxsYv8sqdcV1K/aaCRevD/SWMoFmG5rvUDsoApWtNpjjKsyR2G/QOLXIj7CN/RXOFQ==", "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" + "@scalar/use-toasts": "0.10.1", + "@vueuse/core": "13.9.0", + "cva": "1.0.0-beta.2", + "tailwind-merge": "3.4.0", + "vue": "^3.5.26", + "zod": "^4.3.5" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=22" } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "node_modules/@scalar/use-hooks/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=6" } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "license": "MIT", + "node_modules/@scalar/use-hooks/node_modules/cva": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/cva/-/cva-1.0.0-beta.2.tgz", + "integrity": "sha512-dqcOFe247I5pKxfuzqfq3seLL5iMYsTgo40Uw7+pKZAntPgFtR7Tmy59P5IVIq/XgB0NQWoIvYDt9TwHkuK8Cg==", + "license": "Apache-2.0", "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" + "clsx": "^2.1.1" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" + "url": "https://polar.sh/cva" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "typescript": ">= 4.5.5 < 6" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "node_modules/@scalar/use-hooks/node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/@scalar/code-highlight/node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "node_modules/@scalar/use-toasts": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@scalar/use-toasts/-/use-toasts-0.10.1.tgz", + "integrity": "sha512-8fsDd4efEDF+EydA+1+np/ac2KsAXPR1LdTYtTUxpv8Uj1l7lUMT/T5A7xnR+wNKmyVREihb9KnGp3pSjO2kYg==", "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0" + "vue": "^3.5.26", + "vue-sonner": "^1.0.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=22" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } + "node_modules/@scarf/scarf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz", + "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==", + "hasInstallScript": true }, - "node_modules/@scalar/code-highlight/node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "node_modules/@scure/base": { + "version": "1.1.1", "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "individual", + "url": "https://paulmillr.com/funding/" } ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } + "license": "MIT" }, - "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "license": "MIT", "dependencies": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "license": "MIT", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@noble/hashes": "1.4.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "engines": { + "node": ">= 16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "node_modules/@scure/bip32/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-table": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", - "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "node_modules/@scure/bip39": { + "version": "1.2.1", "license": "MIT", "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-tagfilter": { + "node_modules/@segment/loosely-validate-event": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "component-type": "^1.2.1", + "join-component": "^1.1.0" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "license": "MIT", + "node_modules/@self.id/3box-legacy": { + "version": "0.3.0", + "license": "(Apache-2.0 OR MIT)", "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "cross-fetch": "^3.1.4" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=14.14" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@self.id/core": { + "version": "0.4.1", + "license": "(Apache-2.0 OR MIT)", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@ceramicnetwork/3id-did-resolver": "^2.0.0", + "@ceramicnetwork/http-client": "^2.0.0", + "@ceramicnetwork/stream-caip10-link": "^2.0.0", + "@glazed/datamodel": "^0.3.0", + "@glazed/did-datastore": "^0.3.1", + "@glazed/tile-loader": "^0.2.0", + "caip": "^1.0.0", + "did-resolver": "^3.2.0", + "key-did-resolver": "^2.0.0" + }, + "engines": { + "node": ">=14.14" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@sendgrid/client": { + "version": "7.7.0", "license": "MIT", "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@sendgrid/helpers": "^7.7.0", + "axios": "^0.26.0" + }, + "engines": { + "node": "6.* || 8.* || >=10.*" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@sendgrid/client/node_modules/axios": { + "version": "0.26.1", "license": "MIT", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" + "follow-redirects": "^1.14.8" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "node_modules/@sendgrid/client/node_modules/follow-redirects": { + "version": "1.15.3", "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" } ], "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@sendgrid/helpers": { + "version": "7.7.0", "license": "MIT", "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "deepmerge": "^4.2.2" + }, + "engines": { + "node": ">= 6.0.0" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@sendgrid/mail": { + "version": "7.7.0", "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@sendgrid/client": "^7.7.0", + "@sendgrid/helpers": "^7.7.0" + }, + "engines": { + "node": "6.* || 8.* || >=10.*" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@sentry-internal/feedback": { + "version": "7.117.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.117.0.tgz", + "integrity": "sha512-4X+NnnY17W74TymgLFH7/KPTVYpEtoMMJh8HzVdCmHTOE6j32XKBeBMRaXBhmNYmEgovgyRKKf2KvtSfgw+V1Q==", "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "@sentry/core": "7.117.0", + "@sentry/types": "7.117.0", + "@sentry/utils": "7.117.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@sentry-internal/replay-canvas": { + "version": "7.117.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.117.0.tgz", + "integrity": "sha512-7hjIhwEcoosr+BIa0AyEssB5xwvvlzUpvD5fXu4scd3I3qfX8gdnofO96a8r+LrQm3bSj+eN+4TfKEtWb7bU5A==", "license": "MIT", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@sentry/core": "7.117.0", + "@sentry/replay": "7.117.0", + "@sentry/types": "7.117.0", + "@sentry/utils": "7.117.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@sentry-internal/tracing": { + "version": "7.117.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.117.0.tgz", + "integrity": "sha512-fAIyijNvKBZNA12IcKo+dOYDRTNrzNsdzbm3DP37vJRKVQu19ucqP4Y6InvKokffDP2HZPzFPDoGXYuXkDhUZg==", "license": "MIT", "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@sentry/core": "7.117.0", + "@sentry/types": "7.117.0", + "@sentry/utils": "7.117.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/@sentry/browser": { + "version": "7.117.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.117.0.tgz", + "integrity": "sha512-29X9HlvDEKIaWp6XKlNPPSNND0U6P/ede5WA2nVHfs1zJLWdZ7/ijuMc0sH/CueEkqHe/7gt94hBcI7HOU/wSw==", "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "@sentry-internal/feedback": "7.117.0", + "@sentry-internal/replay-canvas": "7.117.0", + "@sentry-internal/tracing": "7.117.0", + "@sentry/core": "7.117.0", + "@sentry/integrations": "7.117.0", + "@sentry/replay": "7.117.0", + "@sentry/types": "7.117.0", + "@sentry/utils": "7.117.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/@sentry/cli": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-3.1.0.tgz", + "integrity": "sha512-ngnx6E8XjXpg1uzma45INfKCS8yurb/fl3cZdXTCa2wmek8b4N6WIlmOlTKFTBrV54OauF6mloJxAlpuzoQR6g==", + "dev": true, + "hasInstallScript": true, + "license": "FSL-1.1-MIT", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "progress": "^2.0.3", + "proxy-from-env": "^1.1.0", + "undici": "^6.22.0", + "which": "^2.0.2" + }, + "bin": { + "sentry-cli": "bin/sentry-cli" + }, + "engines": { + "node": ">= 18" + }, + "optionalDependencies": { + "@sentry/cli-darwin": "3.1.0", + "@sentry/cli-linux-arm": "3.1.0", + "@sentry/cli-linux-arm64": "3.1.0", + "@sentry/cli-linux-i686": "3.1.0", + "@sentry/cli-linux-x64": "3.1.0", + "@sentry/cli-win32-arm64": "3.1.0", + "@sentry/cli-win32-i686": "3.1.0", + "@sentry/cli-win32-x64": "3.1.0" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/@sentry/cli-darwin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-3.1.0.tgz", + "integrity": "sha512-xT1WlCHenGGO29Lq/wKaIthdqZzNzZhlPs7dXrzlBx9DyA2Jnl0g7WEau0oWi8GyJGVRXCJMiCydR//Tb5qVwA==", + "dev": true, + "license": "FSL-1.1-MIT", + "optional": true, + "os": [ + "darwin" ], - "license": "MIT" + "engines": { + "node": ">=18" + } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/@sentry/cli-linux-arm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-3.1.0.tgz", + "integrity": "sha512-kbP3/8/Ct/Jbm569KDXbFIyMyPypIegObvIT7LdSsfdYSZdBd396GV7vUpSGKiLUVVN0xjn8OqQ48AVGfjmuMg==", + "cpu": [ + "arm" ], - "license": "MIT" - }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "dev": true, + "license": "FSL-1.1-MIT", + "optional": true, + "os": [ + "linux", + "freebsd", + "android" ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" + "engines": { + "node": ">=18" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/@sentry/cli-linux-arm64": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-3.1.0.tgz", + "integrity": "sha512-Jm/iHLKiHxrZYlAq2tT07amiegEVCOAQT9Unilr6djjcZzS2tcI9ThSRQvjP9tFpFRKop+NyNGE3XHXf69r00g==", + "cpu": [ + "arm64" ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" + "dev": true, + "license": "FSL-1.1-MIT", + "optional": true, + "os": [ + "linux", + "freebsd", + "android" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/@sentry/cli-linux-i686": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-3.1.0.tgz", + "integrity": "sha512-f/PK/EGK5vFOy7LC4Riwb+BEE20Nk7RbEFEMjvRq26DpETCrZYUGlbpIKvJFKOaUmr79aAkFCA/EjJiYfcQP2Q==", + "cpu": [ + "x86", + "ia32" ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "dev": true, + "license": "FSL-1.1-MIT", + "optional": true, + "os": [ + "linux", + "freebsd", + "android" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-subtokenize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/@sentry/cli-linux-x64": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-3.1.0.tgz", + "integrity": "sha512-T+v8x1ujhixZrOrH0sVhsW6uLwK4n0WS+B+5xV46WqUKe32cbYotursp2y53ROjgat8SQDGeP/VnC0Qa3Y2fEA==", + "cpu": [ + "x64" ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "dev": true, + "license": "FSL-1.1-MIT", + "optional": true, + "os": [ + "linux", + "freebsd", + "android" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/@sentry/cli-win32-arm64": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-3.1.0.tgz", + "integrity": "sha512-2DIPq6aW2DC34EDC9J0xwD+9BpFnKdFGdIcQUZMS+5pXlU6V7o8wpZxZAM8TdYNmsPkkQGKp7Dhl/arWpvNgrw==", + "cpu": [ + "arm64" ], - "license": "MIT" - }, - "node_modules/@scalar/code-highlight/node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "dev": true, + "license": "FSL-1.1-MIT", + "optional": true, + "os": [ + "win32" ], - "license": "MIT" + "engines": { + "node": ">=18" + } }, - "node_modules/@scalar/code-highlight/node_modules/remark-gfm": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", - "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@sentry/cli-win32-i686": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-3.1.0.tgz", + "integrity": "sha512-2NuywEiiZn6xJ1yAV2xjv/nuHiy6kZU5XR3RSAIrPdEZD1nBoMsH/gB2FufQw58Ziz/7otFcX+vtGpJjbIT5mQ==", + "cpu": [ + "x86", + "ia32" + ], + "dev": true, + "license": "FSL-1.1-MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@scalar/code-highlight/node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@sentry/cli-win32-x64": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-3.1.0.tgz", + "integrity": "sha512-Ip405Yqdrr+l9TImsZOJz6c9Nb4zvXcmtOIBKLHc9cowpfXfmlqsHbDp7Xh4+k4L0uLr9i+8ilgQ6ypcuF4UCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "FSL-1.1-MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@scalar/code-highlight/node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "node_modules/@sentry/cli/node_modules/undici": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", + "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=18.17" } }, - "node_modules/@scalar/code-highlight/node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "node_modules/@sentry/core": { + "version": "7.117.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.117.0.tgz", + "integrity": "sha512-1XZ4/d/DEwnfM2zBMloXDwX+W7s76lGKQMgd8bwgPJZjjEztMJ7X0uopKAGwlQcjn242q+hsCBR6C+fSuI5kvg==", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" + "@sentry/types": "7.117.0", + "@sentry/utils": "7.117.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/@scalar/code-highlight/node_modules/unist-util-is": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", - "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", - "license": "MIT", + "node_modules/@sentry/hub": { + "version": "6.2.5", + "license": "BSD-3-Clause", "dependencies": { - "@types/unist": "^3.0.0" + "@sentry/types": "6.2.5", + "@sentry/utils": "6.2.5", + "tslib": "^1.9.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=6" } }, - "node_modules/@scalar/code-highlight/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@sentry/hub/node_modules/@sentry/types": { + "version": "6.2.5", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6" } }, - "node_modules/@scalar/code-highlight/node_modules/unist-util-visit": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", - "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", - "license": "MIT", + "node_modules/@sentry/hub/node_modules/@sentry/utils": { + "version": "6.2.5", + "license": "BSD-3-Clause", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" + "@sentry/types": "6.2.5", + "tslib": "^1.9.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=6" } }, - "node_modules/@scalar/code-highlight/node_modules/unist-util-visit-parents": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", - "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "node_modules/@sentry/hub/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" + }, + "node_modules/@sentry/integrations": { + "version": "7.117.0", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.117.0.tgz", + "integrity": "sha512-U3suSZysmU9EiQqg0ga5CxveAyNbi9IVdsapMDq5EQGNcVDvheXtULs+BOc11WYP3Kw2yWB38VDqLepfc/Fg2g==", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" + "@sentry/core": "7.117.0", + "@sentry/types": "7.117.0", + "@sentry/utils": "7.117.0", + "localforage": "^1.8.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/@scalar/code-highlight/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", + "node_modules/@sentry/minimal": { + "version": "6.2.5", + "license": "BSD-3-Clause", "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" + "@sentry/hub": "6.2.5", + "@sentry/types": "6.2.5", + "tslib": "^1.9.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=6" } }, - "node_modules/@scalar/code-highlight/node_modules/vfile-message": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", - "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@sentry/minimal/node_modules/@sentry/types": { + "version": "6.2.5", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6" } }, - "node_modules/@scalar/draggable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@scalar/draggable/-/draggable-0.4.1.tgz", - "integrity": "sha512-TvTiy0tB2ulfBL7jwrpnsf7Geqlq/tWaIopkyZLii9bZPxPX5y1o6fVJXMyjtsUo0FSzvB382kN4uPi1TK/Hww==", - "license": "MIT", + "node_modules/@sentry/minimal/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" + }, + "node_modules/@sentry/node": { + "version": "6.2.5", + "license": "BSD-3-Clause", "dependencies": { - "vue": "^3.5.26" + "@sentry/core": "6.2.5", + "@sentry/hub": "6.2.5", + "@sentry/tracing": "6.2.5", + "@sentry/types": "6.2.5", + "@sentry/utils": "6.2.5", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" }, "engines": { - "node": ">=22" - } - }, - "node_modules/@scalar/helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.4.2.tgz", - "integrity": "sha512-IrgrGVSahCfYDNWITazz4Q1BOndp5eEzlimRkfxiYn++KqeWyLfALyym1omqcdKGYtiSx1KIbKaUJL9vkjaN7w==", - "license": "MIT", - "engines": { - "node": ">=22" + "node": ">=6" } }, - "node_modules/@scalar/import": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@scalar/import/-/import-0.5.3.tgz", - "integrity": "sha512-eXclOMoVMiafHpR+yRs/SrxCexxXFVBekf+TagaQy0EVTAwFHi38jDURq6rs1E8SVUJlkH0Pu/xS2kHhxtmFAQ==", - "license": "MIT", + "node_modules/@sentry/node/node_modules/@sentry/core": { + "version": "6.2.5", + "license": "BSD-3-Clause", "dependencies": { - "@scalar/helpers": "0.4.2", - "yaml": "^2.8.0" + "@sentry/hub": "6.2.5", + "@sentry/minimal": "6.2.5", + "@sentry/types": "6.2.5", + "@sentry/utils": "6.2.5", + "tslib": "^1.9.3" }, "engines": { - "node": ">=22" + "node": ">=6" } }, - "node_modules/@scalar/import/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, + "node_modules/@sentry/node/node_modules/@sentry/types": { + "version": "6.2.5", + "license": "BSD-3-Clause", "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" + "node": ">=6" } }, - "node_modules/@scalar/json-magic": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.12.4.tgz", - "integrity": "sha512-ZsJM+y9SOVjRL+g9Tr/jFEodcYPfHSt5ZRrpbeGDK71yTvSZw41A3UJ7Bg+RXM8JJWRYcJkYVkzrmbb/ig7qlA==", - "license": "MIT", + "node_modules/@sentry/node/node_modules/@sentry/utils": { + "version": "6.2.5", + "license": "BSD-3-Clause", "dependencies": { - "@scalar/helpers": "0.4.2", - "pathe": "^2.0.3", - "yaml": "^2.8.0" + "@sentry/types": "6.2.5", + "tslib": "^1.9.3" }, "engines": { - "node": ">=22" + "node": ">=6" } }, - "node_modules/@scalar/json-magic/node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "license": "MIT" - }, - "node_modules/@scalar/json-magic/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } + "node_modules/@sentry/node/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" }, - "node_modules/@scalar/object-utils": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@scalar/object-utils/-/object-utils-1.3.3.tgz", - "integrity": "sha512-8BvTy3d5CpF7nZjexgRDZ+TfAuv+biqvb9mJDV4UuWYMhLPZWKio0G+vcAB+8Rq3hrVrY+y9Yeha6OBz39NgVw==", + "node_modules/@sentry/replay": { + "version": "7.117.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.117.0.tgz", + "integrity": "sha512-V4DfU+x4UsA4BsufbQ8jHYa5H0q5PYUgso2X1PR31g1fpx7yiYguSmCfz1UryM6KkH92dfTnqXapDB44kXOqzQ==", "license": "MIT", "dependencies": { - "@scalar/helpers": "0.4.2", - "flatted": "^3.3.3", - "just-clone": "^6.2.0", - "ts-deepmerge": "^7.0.3" + "@sentry-internal/tracing": "7.117.0", + "@sentry/core": "7.117.0", + "@sentry/types": "7.117.0", + "@sentry/utils": "7.117.0" }, "engines": { - "node": ">=22" + "node": ">=12" } }, - "node_modules/@scalar/openapi-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@scalar/openapi-types/-/openapi-types-0.6.1.tgz", - "integrity": "sha512-P1RvyTFN0vRSL136OqWjlZfSFjY9JoJfuD6LM1mIjoocfwmqX3WuzsFEFX6hAeeDlTh6gjbiy+OdhSee8GFfSA==", + "node_modules/@sentry/tracing": { + "version": "6.2.5", "license": "MIT", "dependencies": { - "zod": "^4.3.5" + "@sentry/hub": "6.2.5", + "@sentry/minimal": "6.2.5", + "@sentry/types": "6.2.5", + "@sentry/utils": "6.2.5", + "tslib": "^1.9.3" }, "engines": { - "node": ">=22" - } - }, - "node_modules/@scalar/openapi-types/node_modules/zod": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", - "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" + "node": ">=6" } }, - "node_modules/@scalar/postman-to-openapi": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@scalar/postman-to-openapi/-/postman-to-openapi-0.5.3.tgz", - "integrity": "sha512-Z7K5q5qTSyE320T/FncDxaYKsuqGkLTexaGub0FWqh53dv5mtkwdn7pLVTTt8K4oP+dS+xWJXEcogj36qN6JfQ==", - "license": "MIT", - "dependencies": { - "@scalar/helpers": "0.4.2", - "@scalar/openapi-types": "0.6.1" - }, + "node_modules/@sentry/tracing/node_modules/@sentry/types": { + "version": "6.2.5", + "license": "BSD-3-Clause", "engines": { - "node": ">=22" + "node": ">=6" } }, - "node_modules/@scalar/themes": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@scalar/themes/-/themes-0.15.1.tgz", - "integrity": "sha512-+UtMhokjshg+FJwOFIAIMlrn2/k6FC/Otd9QSL0unW7doP+vGY3nMXpyfQ18mNU4Tok8/nbLtfXHONxRIJgQHQ==", - "license": "MIT", + "node_modules/@sentry/tracing/node_modules/@sentry/utils": { + "version": "6.2.5", + "license": "BSD-3-Clause", "dependencies": { - "nanoid": "^5.1.6" + "@sentry/types": "6.2.5", + "tslib": "^1.9.3" }, "engines": { - "node": ">=22" + "node": ">=6" } }, - "node_modules/@scalar/themes/node_modules/nanoid": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz", - "integrity": "sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/@sentry/tracing/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" + }, + "node_modules/@sentry/types": { + "version": "7.117.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.117.0.tgz", + "integrity": "sha512-5dtdulcUttc3F0Te7ekZmpSp/ebt/CA71ELx0uyqVGjWsSAINwskFD77sdcjqvZWek//WjiYX1+GRKlpJ1QqsA==", "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.js" - }, "engines": { - "node": "^18 || >=20" + "node": ">=8" } }, - "node_modules/@scalar/typebox": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@scalar/typebox/-/typebox-0.1.3.tgz", - "integrity": "sha512-lU055AUccECZMIfGA0z/C1StYmboAYIPJLDFBzOO81yXBi35Pxdq+I4fWX6iUZ8qcoHneiLGk9jAUM1rA93iEg==", - "license": "MIT" - }, - "node_modules/@scalar/types": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@scalar/types/-/types-0.7.4.tgz", - "integrity": "sha512-1o9uf42lZ9YD0XP/HMWrwXN0unx6vFTTgtduA1F28Yloea9Pfv9N2R/t0wO91iSIzw4+NubEFolunbdb2QcgHA==", + "node_modules/@sentry/utils": { + "version": "7.117.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.117.0.tgz", + "integrity": "sha512-KkcLY8643SGBiDyPvMQOubBkwVX5IPknMHInc7jYC8pDVncGp7C65Wi506bCNPpKCWspUd/0VDNWOOen51/qKA==", "license": "MIT", "dependencies": { - "@scalar/helpers": "0.4.2", - "nanoid": "^5.1.6", - "type-fest": "^5.3.1", - "zod": "^4.3.5" + "@sentry/types": "7.117.0" }, "engines": { - "node": ">=22" + "node": ">=8" } }, - "node_modules/@scalar/types/node_modules/nanoid": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz", - "integrity": "sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/@shikijs/core": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.29.2.tgz", + "integrity": "sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==", "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^18 || >=20" - } - }, - "node_modules/@scalar/types/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", - "license": "(MIT OR CC0-1.0)", "dependencies": { - "tagged-tag": "^1.0.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@shikijs/engine-javascript": "1.29.2", + "@shikijs/engine-oniguruma": "1.29.2", + "@shikijs/types": "1.29.2", + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.4" } }, - "node_modules/@scalar/types/node_modules/zod": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", - "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "node_modules/@shikijs/core/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" + "dependencies": { + "@types/unist": "*" } }, - "node_modules/@scalar/use-codemirror": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/@scalar/use-codemirror/-/use-codemirror-0.14.10.tgz", - "integrity": "sha512-MtriwvGzWrHkYyUANzMGvD6aT6h2f/YBMA938ZKTxj9Rx0RxvolwGw+MdwBOYDHqVGNyrA3sxkbkZzlNv+O1Fw==", + "node_modules/@shikijs/engine-javascript": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.29.2.tgz", + "integrity": "sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==", "license": "MIT", "dependencies": { - "@codemirror/autocomplete": "^6.18.3", - "@codemirror/commands": "^6.7.1", - "@codemirror/lang-css": "^6.3.1", - "@codemirror/lang-html": "^6.4.8", - "@codemirror/lang-json": "^6.0.0", - "@codemirror/lang-xml": "^6.0.0", - "@codemirror/lang-yaml": "^6.1.2", - "@codemirror/language": "^6.10.7", - "@codemirror/lint": "^6.8.4", - "@codemirror/state": "^6.5.0", - "@codemirror/view": "^6.35.3", - "@lezer/common": "^1.2.3", - "@lezer/highlight": "^1.2.1", - "@replit/codemirror-css-color-picker": "^6.3.0", - "vue": "^3.5.26" - }, - "engines": { - "node": ">=22" + "@shikijs/types": "1.29.2", + "@shikijs/vscode-textmate": "^10.0.1", + "oniguruma-to-es": "^2.2.0" } }, - "node_modules/@scalar/use-hooks": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@scalar/use-hooks/-/use-hooks-0.4.1.tgz", - "integrity": "sha512-+lx57gPT9c5WT18MwgUQMxsYv8sqdcV1K/aaCRevD/SWMoFmG5rvUDsoApWtNpjjKsyR2G/QOLXIj7CN/RXOFQ==", + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz", + "integrity": "sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==", "license": "MIT", "dependencies": { - "@scalar/use-toasts": "0.10.1", - "@vueuse/core": "13.9.0", - "cva": "1.0.0-beta.2", - "tailwind-merge": "3.4.0", - "vue": "^3.5.26", - "zod": "^4.3.5" - }, - "engines": { - "node": ">=22" + "@shikijs/types": "1.29.2", + "@shikijs/vscode-textmate": "^10.0.1" } }, - "node_modules/@scalar/use-hooks/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "node_modules/@shikijs/langs": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-1.29.2.tgz", + "integrity": "sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==", "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@scalar/use-hooks/node_modules/cva": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/cva/-/cva-1.0.0-beta.2.tgz", - "integrity": "sha512-dqcOFe247I5pKxfuzqfq3seLL5iMYsTgo40Uw7+pKZAntPgFtR7Tmy59P5IVIq/XgB0NQWoIvYDt9TwHkuK8Cg==", - "license": "Apache-2.0", "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" - }, - "peerDependencies": { - "typescript": ">= 4.5.5 < 6" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@shikijs/types": "1.29.2" } }, - "node_modules/@scalar/use-hooks/node_modules/zod": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", - "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "node_modules/@shikijs/rehype": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-1.29.2.tgz", + "integrity": "sha512-sxi53HZe5XDz0s2UqF+BVN/kgHPMS9l6dcacM4Ra3ZDzCJa5rDGJ+Ukpk4LxdD1+MITBM6hoLbPfGv9StV8a5Q==", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" + "dependencies": { + "@shikijs/types": "1.29.2", + "@types/hast": "^3.0.4", + "hast-util-to-string": "^3.0.1", + "shiki": "1.29.2", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0" } }, - "node_modules/@scalar/use-toasts": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@scalar/use-toasts/-/use-toasts-0.10.1.tgz", - "integrity": "sha512-8fsDd4efEDF+EydA+1+np/ac2KsAXPR1LdTYtTUxpv8Uj1l7lUMT/T5A7xnR+wNKmyVREihb9KnGp3pSjO2kYg==", + "node_modules/@shikijs/rehype/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "license": "MIT", "dependencies": { - "vue": "^3.5.26", - "vue-sonner": "^1.0.3" - }, - "engines": { - "node": ">=22" + "@types/unist": "*" } }, - "node_modules/@scarf/scarf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz", - "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==", - "hasInstallScript": true - }, - "node_modules/@scure/base": { - "version": "1.1.1", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/@shikijs/rehype/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, - "node_modules/@scure/bip32": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", - "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "node_modules/@shikijs/rehype/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "license": "MIT", - "dependencies": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" + "engines": { + "node": ">=12" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "node_modules/@shikijs/rehype/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "license": "MIT", "dependencies": { - "@noble/hashes": "1.4.0" + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "node_modules/@shikijs/rehype/node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", "license": "MIT", - "engines": { - "node": ">= 16" + "dependencies": { + "@types/unist": "^3.0.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@scure/bip32/node_modules/@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "node_modules/@shikijs/rehype/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@scure/bip39": { - "version": "1.2.1", + "node_modules/@shikijs/rehype/node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", "license": "MIT", "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@scure/starknet": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/starknet/-/starknet-1.1.0.tgz", - "integrity": "sha512-83g3M6Ix2qRsPN4wqLDqiRZ2GBNbjVWfboJE/9UjfG+MHr6oDSu/CWgy8hsBSJejr09DkkL+l0Ze4KVrlCIdtQ==", + "node_modules/@shikijs/rehype/node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", "dependencies": { - "@noble/curves": "~1.7.0", - "@noble/hashes": "~1.6.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@scure/starknet/node_modules/@noble/curves": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz", - "integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==", + "node_modules/@shikijs/rehype/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.6.0" - }, - "engines": { - "node": "^14.21.3 || >=16" + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@scure/starknet/node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz", - "integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/starknet/node_modules/@noble/hashes": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz", - "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@segment/loosely-validate-event": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", - "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", - "dependencies": { - "component-type": "^1.2.1", - "join-component": "^1.1.0" - } - }, - "node_modules/@self.id/3box-legacy": { - "version": "0.3.0", - "license": "(Apache-2.0 OR MIT)", - "dependencies": { - "cross-fetch": "^3.1.4" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@self.id/core": { - "version": "0.4.1", - "license": "(Apache-2.0 OR MIT)", - "dependencies": { - "@ceramicnetwork/3id-did-resolver": "^2.0.0", - "@ceramicnetwork/http-client": "^2.0.0", - "@ceramicnetwork/stream-caip10-link": "^2.0.0", - "@glazed/datamodel": "^0.3.0", - "@glazed/did-datastore": "^0.3.1", - "@glazed/tile-loader": "^0.2.0", - "caip": "^1.0.0", - "did-resolver": "^3.2.0", - "key-did-resolver": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@sendgrid/client": { - "version": "7.7.0", + "node_modules/@shikijs/rehype/node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", "license": "MIT", "dependencies": { - "@sendgrid/helpers": "^7.7.0", - "axios": "^0.26.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "engines": { - "node": "6.* || 8.* || >=10.*" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@sendgrid/client/node_modules/axios": { - "version": "0.26.1", + "node_modules/@shikijs/themes": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-1.29.2.tgz", + "integrity": "sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.14.8" - } - }, - "node_modules/@sendgrid/client/node_modules/follow-redirects": { - "version": "1.15.3", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "@shikijs/types": "1.29.2" } }, - "node_modules/@sendgrid/helpers": { - "version": "7.7.0", + "node_modules/@shikijs/transformers": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.29.2.tgz", + "integrity": "sha512-NHQuA+gM7zGuxGWP9/Ub4vpbwrYCrho9nQCLcCPfOe3Yc7LOYwmSuhElI688oiqIXk9dlZwDiyAG9vPBTuPJMA==", "license": "MIT", "dependencies": { - "deepmerge": "^4.2.2" - }, - "engines": { - "node": ">= 6.0.0" + "@shikijs/core": "1.29.2", + "@shikijs/types": "1.29.2" } }, - "node_modules/@sendgrid/mail": { - "version": "7.7.0", + "node_modules/@shikijs/twoslash": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-1.29.2.tgz", + "integrity": "sha512-2S04ppAEa477tiaLfGEn1QJWbZUmbk8UoPbAEw4PifsrxkBXtAtOflIZJNtuCwz8ptc/TPxy7CO7gW4Uoi6o/g==", "license": "MIT", "dependencies": { - "@sendgrid/client": "^7.7.0", - "@sendgrid/helpers": "^7.7.0" - }, - "engines": { - "node": "6.* || 8.* || >=10.*" + "@shikijs/core": "1.29.2", + "@shikijs/types": "1.29.2", + "twoslash": "^0.2.12" } }, - "node_modules/@sentry-internal/feedback": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.117.0.tgz", - "integrity": "sha512-4X+NnnY17W74TymgLFH7/KPTVYpEtoMMJh8HzVdCmHTOE6j32XKBeBMRaXBhmNYmEgovgyRKKf2KvtSfgw+V1Q==", + "node_modules/@shikijs/twoslash/node_modules/twoslash": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.2.12.tgz", + "integrity": "sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw==", "license": "MIT", "dependencies": { - "@sentry/core": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" + "@typescript/vfs": "^1.6.0", + "twoslash-protocol": "0.2.12" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "typescript": "*" } }, - "node_modules/@sentry-internal/replay-canvas": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.117.0.tgz", - "integrity": "sha512-7hjIhwEcoosr+BIa0AyEssB5xwvvlzUpvD5fXu4scd3I3qfX8gdnofO96a8r+LrQm3bSj+eN+4TfKEtWb7bU5A==", + "node_modules/@shikijs/twoslash/node_modules/twoslash-protocol": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.2.12.tgz", + "integrity": "sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg==", + "license": "MIT" + }, + "node_modules/@shikijs/types": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.29.2.tgz", + "integrity": "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==", "license": "MIT", "dependencies": { - "@sentry/core": "7.117.0", - "@sentry/replay": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" - }, - "engines": { - "node": ">=12" + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4" } }, - "node_modules/@sentry-internal/tracing": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.117.0.tgz", - "integrity": "sha512-fAIyijNvKBZNA12IcKo+dOYDRTNrzNsdzbm3DP37vJRKVQu19ucqP4Y6InvKokffDP2HZPzFPDoGXYuXkDhUZg==", + "node_modules/@shikijs/types/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "license": "MIT", "dependencies": { - "@sentry/core": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" - }, - "engines": { - "node": ">=8" + "@types/unist": "*" } }, - "node_modules/@sentry/browser": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.117.0.tgz", - "integrity": "sha512-29X9HlvDEKIaWp6XKlNPPSNND0U6P/ede5WA2nVHfs1zJLWdZ7/ijuMc0sH/CueEkqHe/7gt94hBcI7HOU/wSw==", - "license": "MIT", + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT" + }, + "node_modules/@shopify/flash-list": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@shopify/flash-list/-/flash-list-1.8.3.tgz", + "integrity": "sha512-vXuj6JyuMjONVOXjEhWFeaONPuWN/53Cl2LeyeM8TZ0JzUcNU+BE6iyga1/yyJeDf0K7YPgAE/PcUX2+DM1LiA==", "dependencies": { - "@sentry-internal/feedback": "7.117.0", - "@sentry-internal/replay-canvas": "7.117.0", - "@sentry-internal/tracing": "7.117.0", - "@sentry/core": "7.117.0", - "@sentry/integrations": "7.117.0", - "@sentry/replay": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" + "recyclerlistview": "4.2.3", + "tslib": "2.8.1" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@babel/runtime": "*", + "react": "*", + "react-native": "*" } }, - "node_modules/@sentry/cli": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-3.1.0.tgz", - "integrity": "sha512-ngnx6E8XjXpg1uzma45INfKCS8yurb/fl3cZdXTCa2wmek8b4N6WIlmOlTKFTBrV54OauF6mloJxAlpuzoQR6g==", + "node_modules/@sideway/address": { + "version": "4.1.4", "dev": true, - "hasInstallScript": true, - "license": "FSL-1.1-MIT", + "license": "BSD-3-Clause", "dependencies": { - "progress": "^2.0.3", - "proxy-from-env": "^1.1.0", - "undici": "^6.22.0", - "which": "^2.0.2" - }, - "bin": { - "sentry-cli": "bin/sentry-cli" - }, - "engines": { - "node": ">= 18" - }, - "optionalDependencies": { - "@sentry/cli-darwin": "3.1.0", - "@sentry/cli-linux-arm": "3.1.0", - "@sentry/cli-linux-arm64": "3.1.0", - "@sentry/cli-linux-i686": "3.1.0", - "@sentry/cli-linux-x64": "3.1.0", - "@sentry/cli-win32-arm64": "3.1.0", - "@sentry/cli-win32-i686": "3.1.0", - "@sentry/cli-win32-x64": "3.1.0" + "@hapi/hoek": "^9.0.0" } }, - "node_modules/@sentry/cli-darwin": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-3.1.0.tgz", - "integrity": "sha512-xT1WlCHenGGO29Lq/wKaIthdqZzNzZhlPs7dXrzlBx9DyA2Jnl0g7WEau0oWi8GyJGVRXCJMiCydR//Tb5qVwA==", + "node_modules/@sideway/formula": { + "version": "3.0.1", "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } + "license": "BSD-3-Clause" }, - "node_modules/@sentry/cli-linux-arm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-3.1.0.tgz", - "integrity": "sha512-kbP3/8/Ct/Jbm569KDXbFIyMyPypIegObvIT7LdSsfdYSZdBd396GV7vUpSGKiLUVVN0xjn8OqQ48AVGfjmuMg==", - "cpu": [ - "arm" - ], + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "linux", - "freebsd", - "android" - ], - "engines": { - "node": ">=18" - } + "license": "BSD-3-Clause" }, - "node_modules/@sentry/cli-linux-arm64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-3.1.0.tgz", - "integrity": "sha512-Jm/iHLKiHxrZYlAq2tT07amiegEVCOAQT9Unilr6djjcZzS2tcI9ThSRQvjP9tFpFRKop+NyNGE3XHXf69r00g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "linux", - "freebsd", - "android" - ], + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "license": "MIT", "engines": { - "node": ">=18" + "node": ">=6" } }, - "node_modules/@sentry/cli-linux-i686": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-3.1.0.tgz", - "integrity": "sha512-f/PK/EGK5vFOy7LC4Riwb+BEE20Nk7RbEFEMjvRq26DpETCrZYUGlbpIKvJFKOaUmr79aAkFCA/EjJiYfcQP2Q==", - "cpu": [ - "x86", - "ia32" - ], - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "linux", - "freebsd", - "android" - ], + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "license": "MIT", "engines": { "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@sentry/cli-linux-x64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-3.1.0.tgz", - "integrity": "sha512-T+v8x1ujhixZrOrH0sVhsW6uLwK4n0WS+B+5xV46WqUKe32cbYotursp2y53ROjgat8SQDGeP/VnC0Qa3Y2fEA==", - "cpu": [ - "x64" - ], + "node_modules/@sinonjs/commons": { + "version": "1.8.6", "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "linux", - "freebsd", - "android" - ], - "engines": { - "node": ">=18" + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" } }, - "node_modules/@sentry/cli-win32-arm64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-3.1.0.tgz", - "integrity": "sha512-2DIPq6aW2DC34EDC9J0xwD+9BpFnKdFGdIcQUZMS+5pXlU6V7o8wpZxZAM8TdYNmsPkkQGKp7Dhl/arWpvNgrw==", - "cpu": [ - "arm64" - ], + "node_modules/@sinonjs/formatio": { + "version": "3.2.2", "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^3.1.0" } }, - "node_modules/@sentry/cli-win32-i686": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-3.1.0.tgz", - "integrity": "sha512-2NuywEiiZn6xJ1yAV2xjv/nuHiy6kZU5XR3RSAIrPdEZD1nBoMsH/gB2FufQw58Ziz/7otFcX+vtGpJjbIT5mQ==", - "cpu": [ - "x86", - "ia32" - ], + "node_modules/@sinonjs/formatio/node_modules/@sinonjs/samsam": { + "version": "3.3.3", "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.3.0", + "array-from": "^2.1.1", + "lodash": "^4.17.15" } }, - "node_modules/@sentry/cli-win32-x64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-3.1.0.tgz", - "integrity": "sha512-Ip405Yqdrr+l9TImsZOJz6c9Nb4zvXcmtOIBKLHc9cowpfXfmlqsHbDp7Xh4+k4L0uLr9i+8ilgQ6ypcuF4UCg==", - "cpu": [ - "x64" - ], + "node_modules/@sinonjs/samsam": { + "version": "2.1.3", "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } + "license": "BSD-3-Clause" }, - "node_modules/@sentry/cli/node_modules/undici": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", - "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.17" + "license": "(Unlicense OR Apache-2.0)" + }, + "node_modules/@snapchat/snap-kit-react-native": { + "version": "0.4.0", + "license": "SEE LICENSE IN 'LICENSE' FILE", + "peerDependencies": { + "react": "*", + "react-native": "*" } }, - "node_modules/@sentry/core": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.117.0.tgz", - "integrity": "sha512-1XZ4/d/DEwnfM2zBMloXDwX+W7s76lGKQMgd8bwgPJZjjEztMJ7X0uopKAGwlQcjn242q+hsCBR6C+fSuI5kvg==", + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "license": "MIT" + }, + "node_modules/@solana/buffer-layout": { + "version": "4.0.1", "license": "MIT", "dependencies": { - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" + "buffer": "~6.0.3" }, "engines": { - "node": ">=8" + "node": ">=5.10" } }, - "node_modules/@sentry/hub": { - "version": "6.2.5", - "license": "BSD-3-Clause", + "node_modules/@solana/buffer-layout-utils": { + "version": "0.2.0", + "license": "Apache-2.0", "dependencies": { - "@sentry/types": "6.2.5", - "@sentry/utils": "6.2.5", - "tslib": "^1.9.3" + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" }, "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub/node_modules/@sentry/types": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" + "node": ">= 10" } }, - "node_modules/@sentry/hub/node_modules/@sentry/utils": { - "version": "6.2.5", - "license": "BSD-3-Clause", + "node_modules/@solana/spl-token": { + "version": "0.3.8", + "license": "Apache-2.0", "dependencies": { - "@sentry/types": "6.2.5", - "tslib": "^1.9.3" + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" }, "engines": { - "node": ">=6" + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.47.4" } }, - "node_modules/@sentry/hub/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" - }, - "node_modules/@sentry/integrations": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.117.0.tgz", - "integrity": "sha512-U3suSZysmU9EiQqg0ga5CxveAyNbi9IVdsapMDq5EQGNcVDvheXtULs+BOc11WYP3Kw2yWB38VDqLepfc/Fg2g==", - "license": "MIT", + "node_modules/@solana/wallet-adapter-base": { + "version": "0.9.23", + "license": "Apache-2.0", "dependencies": { - "@sentry/core": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0", - "localforage": "^1.8.1" + "@solana/wallet-standard-features": "^1.1.0", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "eventemitter3": "^4.0.7" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.77.3" } }, - "node_modules/@sentry/minimal": { - "version": "6.2.5", - "license": "BSD-3-Clause", + "node_modules/@solana/wallet-standard": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard/-/wallet-standard-1.1.4.tgz", + "integrity": "sha512-NF+MI5tOxyvfTU4A+O5idh/gJFmjm52bMwsPpFGRSL79GECSN0XLmpVOO/jqTKJgac2uIeYDpQw/eMaQuWuUXw==", + "license": "Apache-2.0", "dependencies": { - "@sentry/hub": "6.2.5", - "@sentry/types": "6.2.5", - "tslib": "^1.9.3" + "@solana/wallet-standard-core": "^1.1.2", + "@solana/wallet-standard-wallet-adapter": "^1.1.4" }, "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/@sentry/minimal/node_modules/@sentry/types": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal/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" - }, - "node_modules/@sentry/node": { - "version": "6.2.5", - "license": "BSD-3-Clause", + "node_modules/@solana/wallet-standard-chains": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-chains/-/wallet-standard-chains-1.1.1.tgz", + "integrity": "sha512-Us3TgL4eMVoVWhuC4UrePlYnpWN+lwteCBlhZDUhFZBJ5UMGh94mYPXno3Ho7+iHPYRtuCi/ePvPcYBqCGuBOw==", + "license": "Apache-2.0", "dependencies": { - "@sentry/core": "6.2.5", - "@sentry/hub": "6.2.5", - "@sentry/tracing": "6.2.5", - "@sentry/types": "6.2.5", - "@sentry/utils": "6.2.5", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" + "@wallet-standard/base": "^1.1.0" }, "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/@sentry/node/node_modules/@sentry/core": { - "version": "6.2.5", - "license": "BSD-3-Clause", + "node_modules/@solana/wallet-standard-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-core/-/wallet-standard-core-1.1.2.tgz", + "integrity": "sha512-FaSmnVsIHkHhYlH8XX0Y4TYS+ebM+scW7ZeDkdXo3GiKge61Z34MfBPinZSUMV08hCtzxxqH2ydeU9+q/KDrLA==", + "license": "Apache-2.0", "dependencies": { - "@sentry/hub": "6.2.5", - "@sentry/minimal": "6.2.5", - "@sentry/types": "6.2.5", - "@sentry/utils": "6.2.5", - "tslib": "^1.9.3" + "@solana/wallet-standard-chains": "^1.1.1", + "@solana/wallet-standard-features": "^1.3.0", + "@solana/wallet-standard-util": "^1.1.2" }, "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/@sentry/node/node_modules/@sentry/types": { - "version": "6.2.5", - "license": "BSD-3-Clause", + "node_modules/@solana/wallet-standard-features": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-features/-/wallet-standard-features-1.3.0.tgz", + "integrity": "sha512-ZhpZtD+4VArf6RPitsVExvgkF+nGghd1rzPjd97GmBximpnt1rsUxMOEyoIEuH3XBxPyNB6Us7ha7RHWQR+abg==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.1.0", + "@wallet-standard/features": "^1.1.0" + }, "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/@sentry/node/node_modules/@sentry/utils": { - "version": "6.2.5", - "license": "BSD-3-Clause", + "node_modules/@solana/wallet-standard-util": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-util/-/wallet-standard-util-1.1.2.tgz", + "integrity": "sha512-rUXFNP4OY81Ddq7qOjQV4Kmkozx4wjYAxljvyrqPx8Ycz0FYChG/hQVWqvgpK3sPsEaO/7ABG1NOACsyAKWNOA==", + "license": "Apache-2.0", "dependencies": { - "@sentry/types": "6.2.5", - "tslib": "^1.9.3" + "@noble/curves": "^1.8.0", + "@solana/wallet-standard-chains": "^1.1.1", + "@solana/wallet-standard-features": "^1.3.0" }, "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/@sentry/node/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" - }, - "node_modules/@sentry/replay": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.117.0.tgz", - "integrity": "sha512-V4DfU+x4UsA4BsufbQ8jHYa5H0q5PYUgso2X1PR31g1fpx7yiYguSmCfz1UryM6KkH92dfTnqXapDB44kXOqzQ==", + "node_modules/@solana/wallet-standard-util/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "license": "MIT", "dependencies": { - "@sentry-internal/tracing": "7.117.0", - "@sentry/core": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" + "@noble/hashes": "1.7.1" }, "engines": { - "node": ">=12" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@sentry/tracing": { - "version": "6.2.5", + "node_modules/@solana/wallet-standard-util/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@solana/wallet-standard-wallet-adapter": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-wallet-adapter/-/wallet-standard-wallet-adapter-1.1.4.tgz", + "integrity": "sha512-YSBrxwov4irg2hx9gcmM4VTew3ofNnkqsXQ42JwcS6ykF1P1ecVY8JCbrv75Nwe6UodnqeoZRbN7n/p3awtjNQ==", + "license": "Apache-2.0", "dependencies": { - "@sentry/hub": "6.2.5", - "@sentry/minimal": "6.2.5", - "@sentry/types": "6.2.5", - "@sentry/utils": "6.2.5", - "tslib": "^1.9.3" + "@solana/wallet-standard-wallet-adapter-base": "^1.1.4", + "@solana/wallet-standard-wallet-adapter-react": "^1.1.4" }, "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/@sentry/tracing/node_modules/@sentry/types": { - "version": "6.2.5", - "license": "BSD-3-Clause", + "node_modules/@solana/wallet-standard-wallet-adapter-base": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-wallet-adapter-base/-/wallet-standard-wallet-adapter-base-1.1.4.tgz", + "integrity": "sha512-Q2Rie9YaidyFA4UxcUIxUsvynW+/gE2noj/Wmk+IOwDwlVrJUAXCvFaCNsPDSyKoiYEKxkSnlG13OA1v08G4iw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.23", + "@solana/wallet-standard-chains": "^1.1.1", + "@solana/wallet-standard-features": "^1.3.0", + "@solana/wallet-standard-util": "^1.1.2", + "@wallet-standard/app": "^1.1.0", + "@wallet-standard/base": "^1.1.0", + "@wallet-standard/features": "^1.1.0", + "@wallet-standard/wallet": "^1.1.0" + }, "engines": { - "node": ">=6" + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0", + "bs58": "^6.0.0" } }, - "node_modules/@sentry/tracing/node_modules/@sentry/utils": { - "version": "6.2.5", - "license": "BSD-3-Clause", + "node_modules/@solana/wallet-standard-wallet-adapter-react": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-wallet-adapter-react/-/wallet-standard-wallet-adapter-react-1.1.4.tgz", + "integrity": "sha512-xa4KVmPgB7bTiWo4U7lg0N6dVUtt2I2WhEnKlIv0jdihNvtyhOjCKMjucWet6KAVhir6I/mSWrJk1U9SvVvhCg==", + "license": "Apache-2.0", "dependencies": { - "@sentry/types": "6.2.5", - "tslib": "^1.9.3" + "@solana/wallet-standard-wallet-adapter-base": "^1.1.4", + "@wallet-standard/app": "^1.1.0", + "@wallet-standard/base": "^1.1.0" }, "engines": { - "node": ">=6" + "node": ">=16" + }, + "peerDependencies": { + "@solana/wallet-adapter-base": "*", + "react": "*" } }, - "node_modules/@sentry/tracing/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" - }, - "node_modules/@sentry/types": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.117.0.tgz", - "integrity": "sha512-5dtdulcUttc3F0Te7ekZmpSp/ebt/CA71ELx0uyqVGjWsSAINwskFD77sdcjqvZWek//WjiYX1+GRKlpJ1QqsA==", + "node_modules/@solana/web3.js": { + "version": "1.98.0", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@babel/runtime": "^7.25.0", + "@noble/curves": "^1.4.2", + "@noble/hashes": "^1.4.0", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^4.1.1", + "node-fetch": "^2.7.0", + "rpc-websockets": "^9.0.2", + "superstruct": "^2.0.2" } }, - "node_modules/@sentry/utils": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.117.0.tgz", - "integrity": "sha512-KkcLY8643SGBiDyPvMQOubBkwVX5IPknMHInc7jYC8pDVncGp7C65Wi506bCNPpKCWspUd/0VDNWOOen51/qKA==", + "node_modules/@solana/web3.js/node_modules/@babel/runtime": { + "version": "7.26.0", "license": "MIT", "dependencies": { - "@sentry/types": "7.117.0" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/@shikijs/core": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.29.2.tgz", - "integrity": "sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==", + "node_modules/@solana/web3.js/node_modules/@noble/curves": { + "version": "1.8.0", "license": "MIT", "dependencies": { - "@shikijs/engine-javascript": "1.29.2", - "@shikijs/engine-oniguruma": "1.29.2", - "@shikijs/types": "1.29.2", - "@shikijs/vscode-textmate": "^10.0.1", - "@types/hast": "^3.0.4", - "hast-util-to-html": "^9.0.4" + "@noble/hashes": "1.7.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@shikijs/core/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "node_modules/@solana/web3.js/node_modules/@noble/hashes": { + "version": "1.7.0", "license": "MIT", - "dependencies": { - "@types/unist": "*" + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@shikijs/engine-javascript": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.29.2.tgz", - "integrity": "sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==", - "license": "MIT", + "node_modules/@solana/web3.js/node_modules/borsh": { + "version": "0.7.0", + "license": "Apache-2.0", "dependencies": { - "@shikijs/types": "1.29.2", - "@shikijs/vscode-textmate": "^10.0.1", - "oniguruma-to-es": "^2.2.0" + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" } }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz", - "integrity": "sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==", + "node_modules/@solana/web3.js/node_modules/node-fetch": { + "version": "2.7.0", "license": "MIT", "dependencies": { - "@shikijs/types": "1.29.2", - "@shikijs/vscode-textmate": "^10.0.1" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/@shikijs/langs": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-1.29.2.tgz", - "integrity": "sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==", + "node_modules/@solana/web3.js/node_modules/regenerator-runtime": { + "version": "0.14.1", + "license": "MIT" + }, + "node_modules/@solana/web3.js/node_modules/superstruct": { + "version": "2.0.2", "license": "MIT", - "dependencies": { - "@shikijs/types": "1.29.2" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@shikijs/rehype": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-1.29.2.tgz", - "integrity": "sha512-sxi53HZe5XDz0s2UqF+BVN/kgHPMS9l6dcacM4Ra3ZDzCJa5rDGJ+Ukpk4LxdD1+MITBM6hoLbPfGv9StV8a5Q==", + "node_modules/@solana/web3.js/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/@solana/web3.js/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/@solana/web3.js/node_modules/whatwg-url": { + "version": "5.0.0", "license": "MIT", "dependencies": { - "@shikijs/types": "1.29.2", - "@types/hast": "^3.0.4", - "hast-util-to-string": "^3.0.1", - "shiki": "1.29.2", - "unified": "^11.0.5", - "unist-util-visit": "^5.0.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/@shikijs/rehype/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "node_modules/@stablelib/aead": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/binary": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@types/unist": "*" + "@stablelib/int": "^1.0.1" } }, - "node_modules/@shikijs/rehype/node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "node_modules/@stablelib/bytes": { + "version": "1.0.1", "license": "MIT" }, - "node_modules/@shikijs/rehype/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "node_modules/@stablelib/chacha": { + "version": "1.0.1", "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/rehype/node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "node_modules/@stablelib/chacha20poly1305": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@stablelib/aead": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/poly1305": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/rehype/node_modules/unist-util-is": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", - "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "node_modules/@stablelib/constant-time": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/ed25519": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@stablelib/random": "^1.0.2", + "@stablelib/sha512": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/rehype/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/@stablelib/hash": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/hkdf": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@stablelib/hash": "^1.0.1", + "@stablelib/hmac": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/rehype/node_modules/unist-util-visit": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", - "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "node_modules/@stablelib/hmac": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@stablelib/constant-time": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/rehype/node_modules/unist-util-visit-parents": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", - "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "node_modules/@stablelib/int": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/keyagreement": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@stablelib/bytes": "^1.0.1" } }, - "node_modules/@shikijs/rehype/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "node_modules/@stablelib/poly1305": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/rehype/node_modules/vfile-message": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", - "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "node_modules/@stablelib/random": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/themes": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-1.29.2.tgz", - "integrity": "sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==", + "node_modules/@stablelib/sha256": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@shikijs/types": "1.29.2" + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/transformers": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.29.2.tgz", - "integrity": "sha512-NHQuA+gM7zGuxGWP9/Ub4vpbwrYCrho9nQCLcCPfOe3Yc7LOYwmSuhElI688oiqIXk9dlZwDiyAG9vPBTuPJMA==", + "node_modules/@stablelib/sha512": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@shikijs/core": "1.29.2", - "@shikijs/types": "1.29.2" + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/twoslash": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-1.29.2.tgz", - "integrity": "sha512-2S04ppAEa477tiaLfGEn1QJWbZUmbk8UoPbAEw4PifsrxkBXtAtOflIZJNtuCwz8ptc/TPxy7CO7gW4Uoi6o/g==", + "node_modules/@stablelib/wipe": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/x25519": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "@shikijs/core": "1.29.2", - "@shikijs/types": "1.29.2", - "twoslash": "^0.2.12" + "@stablelib/keyagreement": "^1.0.1", + "@stablelib/random": "^1.0.2", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@shikijs/twoslash/node_modules/twoslash": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.2.12.tgz", - "integrity": "sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw==", + "node_modules/@stacks/common": { + "version": "6.10.0", "license": "MIT", "dependencies": { - "@typescript/vfs": "^1.6.0", - "twoslash-protocol": "0.2.12" - }, - "peerDependencies": { - "typescript": "*" - } - }, - "node_modules/@shikijs/twoslash/node_modules/twoslash-protocol": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.2.12.tgz", - "integrity": "sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg==", - "license": "MIT" - }, - "node_modules/@shikijs/types": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.29.2.tgz", - "integrity": "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==", - "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.1", - "@types/hast": "^3.0.4" + "@types/bn.js": "^5.1.0", + "@types/node": "^18.0.4" } }, - "node_modules/@shikijs/types/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "node_modules/@stacks/encryption": { + "version": "6.11.2", "license": "MIT", "dependencies": { - "@types/unist": "*" + "@noble/hashes": "1.1.5", + "@noble/secp256k1": "1.7.1", + "@scure/bip39": "1.1.0", + "@stacks/common": "^6.10.0", + "@types/node": "^18.0.4", + "base64-js": "^1.5.1", + "bs58": "^5.0.0", + "ripemd160-min": "^0.0.6", + "varuint-bitcoin": "^1.1.2" } }, - "node_modules/@shikijs/vscode-textmate": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "node_modules/@stacks/encryption/node_modules/@noble/hashes": { + "version": "1.1.5", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "license": "MIT" }, - "node_modules/@shopify/flash-list": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@shopify/flash-list/-/flash-list-1.8.3.tgz", - "integrity": "sha512-vXuj6JyuMjONVOXjEhWFeaONPuWN/53Cl2LeyeM8TZ0JzUcNU+BE6iyga1/yyJeDf0K7YPgAE/PcUX2+DM1LiA==", - "dependencies": { - "recyclerlistview": "4.2.3", - "tslib": "2.8.1" - }, - "peerDependencies": { - "@babel/runtime": "*", - "react": "*", - "react-native": "*" - } + "node_modules/@stacks/encryption/node_modules/@noble/secp256k1": { + "version": "1.7.1", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/@stacks/encryption/node_modules/@scure/bip39": { + "version": "1.1.0", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", "dependencies": { - "@hapi/hoek": "^9.0.0" + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" } }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", + "node_modules/@stacks/encryption/node_modules/base-x": { + "version": "4.0.0", "license": "MIT" }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "node_modules/@stacks/encryption/node_modules/bs58": { + "version": "5.0.0", "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "type-detect": "4.0.8" + "base-x": "^4.0.0" } }, - "node_modules/@sinonjs/formatio": { - "version": "3.2.2", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/@stacks/network": { + "version": "6.10.0", + "license": "MIT", "dependencies": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" + "@stacks/common": "^6.10.0", + "cross-fetch": "^3.1.5" } }, - "node_modules/@sinonjs/formatio/node_modules/@sinonjs/samsam": { - "version": "3.3.3", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/@stacks/transactions": { + "version": "6.11.2", + "license": "MIT", "dependencies": { - "@sinonjs/commons": "^1.3.0", - "array-from": "^2.1.1", - "lodash": "^4.17.15" + "@noble/hashes": "1.1.5", + "@noble/secp256k1": "1.7.1", + "@stacks/common": "^6.10.0", + "@stacks/network": "^6.10.0", + "c32check": "^2.0.0", + "lodash.clonedeep": "^4.5.0" } }, - "node_modules/@sinonjs/samsam": { - "version": "2.1.3", - "dev": true, - "license": "BSD-3-Clause" + "node_modules/@stacks/transactions/node_modules/@noble/hashes": { + "version": "1.1.5", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", - "dev": true, - "license": "(Unlicense OR Apache-2.0)" + "node_modules/@stacks/transactions/node_modules/@noble/secp256k1": { + "version": "1.7.1", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" }, - "node_modules/@snapchat/snap-kit-react-native": { - "version": "0.4.0", - "license": "SEE LICENSE IN 'LICENSE' FILE", + "node_modules/@stripe/crypto": { + "version": "0.0.4", + "license": "MIT", "peerDependencies": { - "react": "*", - "react-native": "*" + "@stripe/stripe-js": "^1.46.0" } }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "node_modules/@stripe/stripe-js": { + "version": "1.54.1", "license": "MIT" }, - "node_modules/@solana/buffer-layout": { - "version": "4.0.1", + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", "license": "MIT", - "dependencies": { - "buffer": "~6.0.3" - }, "engines": { - "node": ">=5.10" - } - }, - "node_modules/@solana/buffer-layout-utils": { - "version": "0.2.0", - "license": "Apache-2.0", - "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/web3.js": "^1.32.0", - "bigint-buffer": "^1.1.5", - "bignumber.js": "^9.0.1" + "node": ">=14" }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@solana/codecs": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.0.0-rc.1.tgz", - "integrity": "sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-data-structures": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/codecs-strings": "2.0.0-rc.1", - "@solana/options": "2.0.0-rc.1" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "typescript": ">=5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@solana/codecs-core": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.0.0-rc.1.tgz", - "integrity": "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==", - "dependencies": { - "@solana/errors": "2.0.0-rc.1" + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "license": "MIT", + "engines": { + "node": ">=14" }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/codecs-data-structures": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-rc.1.tgz", - "integrity": "sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "typescript": ">=5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@solana/codecs-numbers": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.0.0-rc.1.tgz", - "integrity": "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "typescript": ">=5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@solana/codecs-strings": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.0.0-rc.1.tgz", - "integrity": "sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "fastestsmallesttextencoderdecoder": "^1.0.22", - "typescript": ">=5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@solana/errors": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.0.0-rc.1.tgz", - "integrity": "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==", - "dependencies": { - "chalk": "^5.3.0", - "commander": "^12.1.0" + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "license": "MIT", + "engines": { + "node": ">=14" }, - "bin": { - "errors": "bin/cli.mjs" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "typescript": ">=5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@solana/errors/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "license": "MIT", "engines": { - "node": ">=18" - } - }, - "node_modules/@solana/options": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.0.0-rc.1.tgz", - "integrity": "sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-data-structures": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/codecs-strings": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "typescript": ">=5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@solana/spl-token": { - "version": "0.3.8", - "license": "Apache-2.0", - "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "buffer": "^6.0.3" - }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@solana/web3.js": "^1.47.4" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@solana/spl-token-group": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@solana/spl-token-group/-/spl-token-group-0.0.7.tgz", - "integrity": "sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug==", - "dependencies": { - "@solana/codecs": "2.0.0-rc.1" - }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@solana/web3.js": "^1.95.3" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@solana/spl-token-metadata": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@solana/spl-token-metadata/-/spl-token-metadata-0.1.6.tgz", - "integrity": "sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==", + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "license": "MIT", "dependencies": { - "@solana/codecs": "2.0.0-rc.1" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" }, "engines": { - "node": ">=16" + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@solana/web3.js": "^1.95.3" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@solana/wallet-adapter-base": { - "version": "0.9.23", - "license": "Apache-2.0", + "node_modules/@svgr/core": { + "version": "8.1.0", + "license": "MIT", "dependencies": { - "@solana/wallet-standard-features": "^1.1.0", - "@wallet-standard/base": "^1.0.1", - "@wallet-standard/features": "^1.0.3", - "eventemitter3": "^4.0.7" + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" }, "engines": { - "node": ">=16" + "node": ">=14" }, - "peerDependencies": { - "@solana/web3.js": "^1.77.3" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@solana/wallet-standard": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@solana/wallet-standard/-/wallet-standard-1.1.4.tgz", - "integrity": "sha512-NF+MI5tOxyvfTU4A+O5idh/gJFmjm52bMwsPpFGRSL79GECSN0XLmpVOO/jqTKJgac2uIeYDpQw/eMaQuWuUXw==", - "license": "Apache-2.0", - "dependencies": { - "@solana/wallet-standard-core": "^1.1.2", - "@solana/wallet-standard-wallet-adapter": "^1.1.4" - }, + "node_modules/@svgr/core/node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/@svgr/core/node_modules/camelcase": { + "version": "6.3.0", + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@solana/wallet-standard-chains": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@solana/wallet-standard-chains/-/wallet-standard-chains-1.1.1.tgz", - "integrity": "sha512-Us3TgL4eMVoVWhuC4UrePlYnpWN+lwteCBlhZDUhFZBJ5UMGh94mYPXno3Ho7+iHPYRtuCi/ePvPcYBqCGuBOw==", - "license": "Apache-2.0", + "node_modules/@svgr/core/node_modules/cosmiconfig": { + "version": "8.3.6", + "license": "MIT", "dependencies": { - "@wallet-standard/base": "^1.1.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@solana/wallet-standard-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@solana/wallet-standard-core/-/wallet-standard-core-1.1.2.tgz", - "integrity": "sha512-FaSmnVsIHkHhYlH8XX0Y4TYS+ebM+scW7ZeDkdXo3GiKge61Z34MfBPinZSUMV08hCtzxxqH2ydeU9+q/KDrLA==", - "license": "Apache-2.0", + "node_modules/@svgr/core/node_modules/js-yaml": { + "version": "4.1.0", + "license": "MIT", "dependencies": { - "@solana/wallet-standard-chains": "^1.1.1", - "@solana/wallet-standard-features": "^1.3.0", - "@solana/wallet-standard-util": "^1.1.2" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=16" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@solana/wallet-standard-features": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@solana/wallet-standard-features/-/wallet-standard-features-1.3.0.tgz", - "integrity": "sha512-ZhpZtD+4VArf6RPitsVExvgkF+nGghd1rzPjd97GmBximpnt1rsUxMOEyoIEuH3XBxPyNB6Us7ha7RHWQR+abg==", - "license": "Apache-2.0", + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "license": "MIT", "dependencies": { - "@wallet-standard/base": "^1.1.0", - "@wallet-standard/features": "^1.1.0" + "@babel/types": "^7.21.3", + "entities": "^4.4.0" }, "engines": { - "node": ">=16" + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@solana/wallet-standard-util": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@solana/wallet-standard-util/-/wallet-standard-util-1.1.2.tgz", - "integrity": "sha512-rUXFNP4OY81Ddq7qOjQV4Kmkozx4wjYAxljvyrqPx8Ycz0FYChG/hQVWqvgpK3sPsEaO/7ABG1NOACsyAKWNOA==", - "license": "Apache-2.0", - "dependencies": { - "@noble/curves": "^1.8.0", - "@solana/wallet-standard-chains": "^1.1.1", - "@solana/wallet-standard-features": "^1.3.0" - }, + "node_modules/@svgr/hast-util-to-babel-ast/node_modules/entities": { + "version": "4.5.0", + "license": "BSD-2-Clause", "engines": { - "node": ">=16" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/@solana/wallet-standard-util/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.1" + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=14" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" } }, - "node_modules/@solana/wallet-standard-util/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=14" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" } }, - "node_modules/@solana/wallet-standard-wallet-adapter": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@solana/wallet-standard-wallet-adapter/-/wallet-standard-wallet-adapter-1.1.4.tgz", - "integrity": "sha512-YSBrxwov4irg2hx9gcmM4VTew3ofNnkqsXQ42JwcS6ykF1P1ecVY8JCbrv75Nwe6UodnqeoZRbN7n/p3awtjNQ==", - "license": "Apache-2.0", - "dependencies": { - "@solana/wallet-standard-wallet-adapter-base": "^1.1.4", - "@solana/wallet-standard-wallet-adapter-react": "^1.1.4" - }, - "engines": { - "node": ">=16" - } + "node_modules/@svgr/plugin-svgo/node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" }, - "node_modules/@solana/wallet-standard-wallet-adapter-base": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@solana/wallet-standard-wallet-adapter-base/-/wallet-standard-wallet-adapter-base-1.1.4.tgz", - "integrity": "sha512-Q2Rie9YaidyFA4UxcUIxUsvynW+/gE2noj/Wmk+IOwDwlVrJUAXCvFaCNsPDSyKoiYEKxkSnlG13OA1v08G4iw==", - "license": "Apache-2.0", + "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": { + "version": "8.3.6", + "license": "MIT", "dependencies": { - "@solana/wallet-adapter-base": "^0.9.23", - "@solana/wallet-standard-chains": "^1.1.1", - "@solana/wallet-standard-features": "^1.3.0", - "@solana/wallet-standard-util": "^1.1.2", - "@wallet-standard/app": "^1.1.0", - "@wallet-standard/base": "^1.1.0", - "@wallet-standard/features": "^1.1.0", - "@wallet-standard/wallet": "^1.1.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.98.0", - "bs58": "^6.0.0" - } - }, - "node_modules/@solana/wallet-standard-wallet-adapter-react": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@solana/wallet-standard-wallet-adapter-react/-/wallet-standard-wallet-adapter-react-1.1.4.tgz", - "integrity": "sha512-xa4KVmPgB7bTiWo4U7lg0N6dVUtt2I2WhEnKlIv0jdihNvtyhOjCKMjucWet6KAVhir6I/mSWrJk1U9SvVvhCg==", - "license": "Apache-2.0", - "dependencies": { - "@solana/wallet-standard-wallet-adapter-base": "^1.1.4", - "@wallet-standard/app": "^1.1.0", - "@wallet-standard/base": "^1.1.0" + "node": ">=14" }, - "engines": { - "node": ">=16" + "funding": { + "url": "https://github.com/sponsors/d-fischer" }, "peerDependencies": { - "@solana/wallet-adapter-base": "*", - "react": "*" + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@solana/web3.js": { - "version": "1.98.0", + "node_modules/@svgr/plugin-svgo/node_modules/js-yaml": { + "version": "4.1.0", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.25.0", - "@noble/curves": "^1.4.2", - "@noble/hashes": "^1.4.0", - "@solana/buffer-layout": "^4.0.1", - "agentkeepalive": "^4.5.0", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.3", - "fast-stable-stringify": "^1.0.0", - "jayson": "^4.1.1", - "node-fetch": "^2.7.0", - "rpc-websockets": "^9.0.2", - "superstruct": "^2.0.2" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@solana/web3.js/node_modules/@babel/runtime": { - "version": "7.26.0", + "node_modules/@svgr/rollup": { + "version": "8.1.0", + "dev": true, "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@rollup/pluginutils": "^5.0.2", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@solana/web3.js/node_modules/@noble/curves": { - "version": "1.8.0", + "node_modules/@svgr/rollup/node_modules/@rollup/pluginutils": { + "version": "5.0.5", + "dev": true, "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.0" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=14.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@solana/web3.js/node_modules/@noble/hashes": { - "version": "1.7.0", + "node_modules/@svgr/rollup/node_modules/@types/estree": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "dev": true, "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=14" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@solana/web3.js/node_modules/borsh": { - "version": "0.7.0", + "node_modules/@swc/core": { + "version": "1.3.96", + "dev": true, + "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, - "node_modules/@solana/web3.js/node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" + "@swc/counter": "^0.1.1", + "@swc/types": "^0.1.5" }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.96", + "@swc/core-darwin-x64": "1.3.96", + "@swc/core-linux-arm-gnueabihf": "1.3.96", + "@swc/core-linux-arm64-gnu": "1.3.96", + "@swc/core-linux-arm64-musl": "1.3.96", + "@swc/core-linux-x64-gnu": "1.3.96", + "@swc/core-linux-x64-musl": "1.3.96", + "@swc/core-win32-arm64-msvc": "1.3.96", + "@swc/core-win32-ia32-msvc": "1.3.96", + "@swc/core-win32-x64-msvc": "1.3.96" }, "peerDependencies": { - "encoding": "^0.1.0" + "@swc/helpers": "^0.5.0" }, "peerDependenciesMeta": { - "encoding": { + "@swc/helpers": { "optional": true } } }, - "node_modules/@solana/web3.js/node_modules/regenerator-runtime": { - "version": "0.14.1", - "license": "MIT" - }, - "node_modules/@solana/web3.js/node_modules/superstruct": { - "version": "2.0.2", - "license": "MIT", + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.96", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=14.0.0" + "node": ">=10" } }, - "node_modules/@solana/web3.js/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/@solana/web3.js/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/@solana/web3.js/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node_modules/@swc/core-darwin-x64": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.3.tgz", + "integrity": "sha512-p68OeCz1ui+MZYG4wmfJGvcsAcFYb6Sl25H9TxWl+GkBgmNimIiRdnypK9nBGlqMZAcxngNPtnG3kEMNnvoJ2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/aead": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@stablelib/int": "^1.0.1" + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.3.tgz", + "integrity": "sha512-Nuj5iF4JteFgwrai97mUX+xUOl+rQRHqTvnvHMATL/l9xE6/TJfPBpd3hk/PVpClMXG3Uvk1MxUFOEzM1JrMYg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/bytes": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/chacha": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.3.tgz", + "integrity": "sha512-2Nc/s8jE6mW2EjXWxO/lyQuLKShcmTrym2LRf5Ayp3ICEMX6HwFqB1EzDhwoMa2DcUgmnZIalesq2lG3krrUNw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/chacha20poly1305": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.3.tgz", + "integrity": "sha512-j4SJniZ/qaZ5g8op+p1G9K1z22s/EYGg1UXIb3+Cg4nsxEpF5uSIGEE4mHUfA70L0BR9wKT2QF/zv3vkhfpX4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/constant-time": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/ed25519": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "@stablelib/random": "^1.0.2", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.3.tgz", + "integrity": "sha512-aKttAZnz8YB1VJwPQZtyU8Uk0BfMP63iDMkvjhJzRZVgySmqt/apWSdnoIcZlUoGheBrcqbMC17GGUmur7OT5A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/hash": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/hkdf": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@stablelib/hash": "^1.0.1", - "@stablelib/hmac": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.3.tgz", + "integrity": "sha512-oe8FctPu1gnUsdtGJRO2rvOUIkkIIaHqsO9xxN0bTR7dFTlPTGi2Fhk1tnvXeyAvCPxLIcwD8phzKg6wLv9yug==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/hmac": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.3.tgz", + "integrity": "sha512-L9AjzP2ZQ/Xh58e0lTRMLvEDrcJpR7GwZqAtIeNLcTK7JVE+QineSyHp0kLkO1rttCHyCy0U74kDTj0dRz6raA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/int": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/keyagreement": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@stablelib/bytes": "^1.0.1" + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.3.tgz", + "integrity": "sha512-B8UtogMzErUPDWUoKONSVBdsgKYd58rRyv2sHJWKOIMCHfZ22FVXICR4O/VwIYtlnZ7ahERcjayBHDlBZpR0aw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/poly1305": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.3.tgz", + "integrity": "sha512-SpZKMR9QBTecHeqpzJdYEfgw30Oo8b/Xl6rjSzBt1g0ZsXyy60KLXrp6IagQyfTYqNYE/caDvwtF2FPn7pomog==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/random": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core/node_modules/@swc/core-darwin-x64": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.96.tgz", + "integrity": "sha512-mFp9GFfuPg+43vlAdQZl0WZpZSE8sEzqL7sr/7Reul5McUHP0BaLsEzwjvD035ESfkY8GBZdLpMinblIbFNljQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/sha256": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core/node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.96.tgz", + "integrity": "sha512-8UEKkYJP4c8YzYIY/LlbSo8z5Obj4hqcv/fUTHiEePiGsOddgGf7AWjh56u7IoN/0uEmEro59nc1ChFXqXSGyg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/sha512": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core/node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.96.tgz", + "integrity": "sha512-c/IiJ0s1y3Ymm2BTpyC/xr6gOvoqAVETrivVXHq68xgNms95luSpbYQ28rqaZC8bQC8M5zdXpSc0T8DJu8RJGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stablelib/wipe": { - "version": "1.0.1", - "license": "MIT" + "node_modules/@swc/core/node_modules/@swc/core-linux-arm64-musl": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.96.tgz", + "integrity": "sha512-i5/UTUwmJLri7zhtF6SAo/4QDQJDH2fhYJaBIUhrICmIkRO/ltURmpejqxsM/ye9Jqv5zG7VszMC0v/GYn/7BQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } }, - "node_modules/@stablelib/x25519": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.2", - "@stablelib/wipe": "^1.0.1" + "node_modules/@swc/core/node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.96.tgz", + "integrity": "sha512-USdaZu8lTIkm4Yf9cogct/j5eqtdZqTgcTib4I+NloUW0E/hySou3eSyp3V2UAA1qyuC72ld1otXuyKBna0YKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stacks/common": { - "version": "6.10.0", - "license": "MIT", - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4" + "node_modules/@swc/core/node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.96.tgz", + "integrity": "sha512-QYErutd+G2SNaCinUVobfL7jWWjGTI0QEoQ6hqTp7PxCJS/dmKmj3C5ZkvxRYcq7XcZt7ovrYCTwPTHzt6lZBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stacks/encryption": { - "version": "6.11.2", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@scure/bip39": "1.1.0", - "@stacks/common": "^6.10.0", - "@types/node": "^18.0.4", - "base64-js": "^1.5.1", - "bs58": "^5.0.0", - "ripemd160-min": "^0.0.6", - "varuint-bitcoin": "^1.1.2" + "node_modules/@swc/core/node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.96.tgz", + "integrity": "sha512-hjGvvAduA3Un2cZ9iNP4xvTXOO4jL3G9iakhFsgVhpkU73SGmK7+LN8ZVBEu4oq2SUcHO6caWvnZ881cxGuSpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stacks/encryption/node_modules/@noble/hashes": { - "version": "1.1.5", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } + "node_modules/@swc/core/node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.96.tgz", + "integrity": "sha512-Far2hVFiwr+7VPCM2GxSmbh3ikTpM3pDombE+d69hkedvYHYZxtTF+2LTKl/sXtpbUnsoq7yV/32c9R/xaaWfw==", + "cpu": [ + "ia32" ], - "license": "MIT" - }, - "node_modules/@stacks/encryption/node_modules/@noble/secp256k1": { - "version": "1.7.1", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" ], - "license": "MIT" + "engines": { + "node": ">=10" + } }, - "node_modules/@stacks/encryption/node_modules/@scure/bip39": { - "version": "1.1.0", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } + "node_modules/@swc/core/node_modules/@swc/core-win32-x64-msvc": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.96.tgz", + "integrity": "sha512-4VbSAniIu0ikLf5mBX81FsljnfqjoVGleEkCQv4+zRlyZtO3FHoDPkeLVoy6WRlj7tyrRcfUJ4mDdPkbfTO14g==", + "cpu": [ + "x64" ], - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@stacks/encryption/node_modules/base-x": { - "version": "4.0.0", - "license": "MIT" + "node_modules/@swc/counter": { + "version": "0.1.3", + "dev": true, + "license": "Apache-2.0" }, - "node_modules/@stacks/encryption/node_modules/bs58": { - "version": "5.0.0", - "license": "MIT", + "node_modules/@swc/helpers": { + "version": "0.5.11", + "license": "Apache-2.0", "dependencies": { - "base-x": "^4.0.0" + "tslib": "^2.4.0" } }, - "node_modules/@stacks/network": { - "version": "6.10.0", - "license": "MIT", - "dependencies": { - "@stacks/common": "^6.10.0", - "cross-fetch": "^3.1.5" - } + "node_modules/@swc/types": { + "version": "0.1.5", + "dev": true, + "license": "Apache-2.0" }, - "node_modules/@stacks/transactions": { - "version": "6.11.2", + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", "license": "MIT", "dependencies": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@stacks/common": "^6.10.0", - "@stacks/network": "^6.10.0", - "c32check": "^2.0.0", - "lodash.clonedeep": "^4.5.0" - } - }, - "node_modules/@stacks/transactions/node_modules/@noble/hashes": { - "version": "1.1.5", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "license": "MIT" - }, - "node_modules/@stacks/transactions/node_modules/@noble/secp256k1": { - "version": "1.7.1", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "license": "MIT" - }, - "node_modules/@stripe/crypto": { - "version": "0.0.4", - "license": "MIT", - "peerDependencies": { - "@stripe/stripe-js": "^1.46.0" - } - }, - "node_modules/@stripe/stripe-js": { - "version": "1.54.1", - "license": "MIT" - }, - "node_modules/@suchipi/femver": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/@supercharge/promise-pool": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-3.2.0.tgz", - "integrity": "sha512-pj0cAALblTZBPtMltWOlZTQSLT07jIaFNeM8TWoJD1cQMgDB9mcMlVMoetiB35OzNJpqQ2b+QEtwiR9f20mADg==", + "defer-to-connect": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", + "node_modules/@tanstack/eslint-plugin-query": { + "version": "5.0.5", + "dev": true, "license": "MIT", - "engines": { - "node": ">=14" + "dependencies": { + "@typescript-eslint/utils": "^5.54.0" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/gregberge" + "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^8.0.0" } }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "8.0.0", + "node_modules/@tanstack/query-async-storage-persister": { + "version": "5.62.7", + "resolved": "https://registry.npmjs.org/@tanstack/query-async-storage-persister/-/query-async-storage-persister-5.62.7.tgz", + "integrity": "sha512-8qSJ1oTnGhCikPADWd35xrswyYtmkqYnakWgqeXjxL+F+qPGgsfexNUlBu9TNqo9eAP/1ia4Lt5Ks2fTsMzBgg==", "license": "MIT", - "engines": { - "node": ">=14" + "dependencies": { + "@tanstack/query-persist-client-core": "5.62.7" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "8.0.0", + "node_modules/@tanstack/query-core": { + "version": "5.62.7", "license": "MIT", - "engines": { - "node": ">=14" - }, "funding": { "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", + "node_modules/@tanstack/query-devtools": { + "version": "5.61.4", "license": "MIT", - "engines": { - "node": ">=14" - }, "funding": { "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", + "node_modules/@tanstack/query-persist-client-core": { + "version": "5.62.7", + "resolved": "https://registry.npmjs.org/@tanstack/query-persist-client-core/-/query-persist-client-core-5.62.7.tgz", + "integrity": "sha512-9HcaD9rEp2nGWnrw2osK5UCSKJbJKEdn+MEhVVfnUPSFN7MZFpFZxpRCHJi3fRpWOYsVeH9EFODX+aoJaniJMA==", "license": "MIT", - "engines": { - "node": ">=14" + "dependencies": { + "@tanstack/query-core": "5.62.7" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", + "node_modules/@tanstack/react-query": { + "version": "5.62.7", "license": "MIT", - "engines": { - "node": ">=14" + "dependencies": { + "@tanstack/query-core": "5.62.7" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/gregberge" + "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": "^18 || ^19" } }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", + "node_modules/@tanstack/react-query-devtools": { + "version": "5.62.7", "license": "MIT", - "engines": { - "node": ">=14" + "dependencies": { + "@tanstack/query-devtools": "5.61.4" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/gregberge" + "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@tanstack/react-query": "^5.62.7", + "react": "^18 || ^19" } }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", + "node_modules/@tanstack/react-query-persist-client": { + "version": "5.62.7", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-persist-client/-/react-query-persist-client-5.62.7.tgz", + "integrity": "sha512-RmEJ3YvsK7lv1Of3CCXBgHDtoZVwHMtTKCTegZz+xijVJsgJaNNfel4YTpbQ0ydnWT2IcohdqnHUtBE6p1KCIA==", "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "@tanstack/query-persist-client-core": "5.62.7" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/gregberge" + "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@tanstack/react-query": "^5.62.7", + "react": "^18 || ^19" } }, - "node_modules/@svgr/babel-preset": { - "version": "8.1.0", + "node_modules/@tanstack/virtual-core": { + "version": "3.13.23", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.23.tgz", + "integrity": "sha512-zSz2Z2HNyLjCplANTDyl3BcdQJc2k1+yyFoKhNRmCr7V7dY8o8q5m8uFTI1/Pg1kL+Hgrz6u3Xo6eFUB7l66cg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/vue-virtual": { + "version": "3.13.23", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.13.23.tgz", + "integrity": "sha512-b5jPluAR6U3eOq6GWAYSpj3ugnAIZgGR0e6aGAgyRse0Yu6MVQQ0ZWm9SArSXWtageogn6bkVD8D//c4IjW3xQ==", "license": "MIT", "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" + "@tanstack/virtual-core": "3.13.23" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/gregberge" + "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "vue": "^2.7.0 || ^3.0.0" } }, - "node_modules/@svgr/core": { - "version": "8.1.0", - "license": "MIT", + "node_modules/@terra-dev/browser-check": { + "version": "2.5.3", + "license": "Apache-2.0", "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" + "bowser": "^2.11.0", + "mobile-detect": "^1.4.5" }, "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "node": ">=12" } }, - "node_modules/@svgr/core/node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" - }, - "node_modules/@svgr/core/node_modules/camelcase": { - "version": "6.3.0", - "license": "MIT", + "node_modules/@terra-dev/chrome-extension": { + "version": "2.5.3", + "license": "Apache-2.0", + "dependencies": { + "@terra-dev/browser-check": "^2.5.3", + "@terra-dev/wallet-types": "^2.5.3", + "fix-hmr": "^1.0.2", + "rxjs": "^7.4.0", + "styled-components": "^5.0.0" + }, "engines": { - "node": ">=10" + "node": ">=12" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@terra-money/terra.js": "^2.0.0", + "react": "^17.0.0", + "react-dom": "^17.0.0" } }, - "node_modules/@svgr/core/node_modules/cosmiconfig": { - "version": "8.3.6", - "license": "MIT", + "node_modules/@terra-dev/readonly-wallet": { + "version": "2.5.3", + "license": "Apache-2.0", "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "@terra-dev/wallet-types": "^2.5.3" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" + "node": ">=12" }, "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@terra-money/terra.js": "^2.0.0" } }, - "node_modules/@svgr/core/node_modules/js-yaml": { - "version": "4.1.0", - "license": "MIT", + "node_modules/@terra-dev/readonly-wallet-modal": { + "version": "2.5.3", + "license": "Apache-2.0", "dependencies": { - "argparse": "^2.0.1" + "@terra-dev/readonly-wallet": "^2.5.3", + "@terra-dev/wallet-types": "^2.5.3", + "styled-components": "^5.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@terra-money/terra.js": "^2.0.0", + "react": "^17.0.0", + "react-dom": "^17.0.0" } }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "license": "MIT", + "node_modules/@terra-dev/use-wallet": { + "version": "2.5.3", + "license": "Apache-2.0", "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" + "@terra-dev/wallet-types": "^2.5.3" }, "engines": { - "node": ">=14" + "node": ">=12" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "peerDependencies": { + "@terra-money/terra.js": "^2.0.0", + "react": "^17.0.0" } }, - "node_modules/@svgr/hast-util-to-babel-ast/node_modules/entities": { - "version": "4.5.0", - "license": "BSD-2-Clause", + "node_modules/@terra-dev/wallet-types": { + "version": "2.5.3", + "license": "Apache-2.0", "engines": { - "node": ">=0.12" + "node": ">=12" }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "peerDependencies": { + "@terra-money/terra.js": "^2.0.0" } }, - "node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "license": "MIT", + "node_modules/@terra-dev/walletconnect": { + "version": "2.5.3", + "license": "Apache-2.0", "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" + "@terra-dev/browser-check": "^2.5.3", + "@terra-dev/walletconnect-qrcode-modal": "^2.5.3", + "@walletconnect/core": "^1.6.6", + "@walletconnect/iso-crypto": "^1.6.6", + "@walletconnect/types": "^1.6.6", + "@walletconnect/utils": "^1.6.6", + "rxjs": "^7.4.0", + "ws": "^7.5.5" }, "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "node": ">=12" }, "peerDependencies": { - "@svgr/core": "*" + "@terra-money/terra.js": "^2.0.0" } }, - "node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "license": "MIT", + "node_modules/@terra-dev/walletconnect-qrcode-modal": { + "version": "2.5.3", + "license": "Apache-2.0", "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" + "@terra-dev/browser-check": "^2.5.3", + "@walletconnect/types": "^1.6.6", + "qrcode.react": "^1.0.1", + "styled-components": "^5.0.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "node": ">=12" }, "peerDependencies": { - "@svgr/core": "*" + "react": "^17.0.0", + "react-dom": "^17.0.0" } }, - "node_modules/@svgr/plugin-svgo/node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" - }, - "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": { - "version": "8.3.6", + "node_modules/@terra-dev/web-connector-controller": { + "version": "0.8.1", "license": "MIT", "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "@terra-dev/web-connector-interface": "^0.8.1", + "bowser": "^2.11.0", + "rxjs": "^7.4.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" + "node": ">=12" }, "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@terra-money/terra.js": "^2.0.0" } }, - "node_modules/@svgr/plugin-svgo/node_modules/js-yaml": { - "version": "4.1.0", + "node_modules/@terra-dev/web-connector-interface": { + "version": "0.8.1", "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "rxjs": "^7.4.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@terra-money/terra.js": "^2.0.0" } }, - "node_modules/@svgr/rollup": { - "version": "8.1.0", - "dev": true, + "node_modules/@terra-money/terra.js": { + "version": "2.1.23", "license": "MIT", "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@rollup/pluginutils": "^5.0.2", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" + "@terra-money/terra.proto": "^0.1.7", + "axios": "^0.21.1", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "decimal.js": "^10.2.1", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.4.2" }, "engines": { "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@svgr/rollup/node_modules/@rollup/pluginutils": { - "version": "5.0.5", - "dev": true, + "node_modules/@terra-money/terra.js/node_modules/axios": { + "version": "0.21.4", "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@terra-money/terra.js/node_modules/follow-redirects": { + "version": "1.15.3", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "node": ">=4.0" }, "peerDependenciesMeta": { - "rollup": { + "debug": { "optional": true } } }, - "node_modules/@svgr/rollup/node_modules/@types/estree": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@svgr/webpack": { - "version": "8.1.0", - "dev": true, - "license": "MIT", + "node_modules/@terra-money/terra.proto": { + "version": "0.1.7", + "license": "Apache-2.0", "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "node_modules/@swc/core": { - "version": "1.3.96", - "dev": true, - "hasInstallScript": true, + "node_modules/@terra-money/wallet-provider": { + "version": "2.5.3", "license": "Apache-2.0", "dependencies": { - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" + "@terra-dev/browser-check": "^2.5.3", + "@terra-dev/chrome-extension": "^2.5.3", + "@terra-dev/readonly-wallet": "^2.5.3", + "@terra-dev/readonly-wallet-modal": "^2.5.3", + "@terra-dev/use-wallet": "^2.5.3", + "@terra-dev/wallet-types": "^2.5.3", + "@terra-dev/walletconnect": "^2.5.3", + "@terra-dev/web-connector-controller": "^0.8.1", + "@terra-dev/web-connector-interface": "^0.8.1", + "fast-deep-equal": "^3.1.3", + "rxjs": "^7.4.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.96", - "@swc/core-darwin-x64": "1.3.96", - "@swc/core-linux-arm-gnueabihf": "1.3.96", - "@swc/core-linux-arm64-gnu": "1.3.96", - "@swc/core-linux-arm64-musl": "1.3.96", - "@swc/core-linux-x64-gnu": "1.3.96", - "@swc/core-linux-x64-musl": "1.3.96", - "@swc/core-win32-arm64-msvc": "1.3.96", - "@swc/core-win32-ia32-msvc": "1.3.96", - "@swc/core-win32-x64-msvc": "1.3.96" + "node": ">=12" }, "peerDependencies": { - "@swc/helpers": "^0.5.0" + "@terra-money/terra.js": "^2.0.0", + "react": "^17.0.0" }, "peerDependenciesMeta": { - "@swc/helpers": { + "react-router-dom": { "optional": true } } }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.3.96", - "cpu": [ - "arm64" - ], + "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, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", + "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": ">=10" + "node": ">=18" } }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.3.tgz", - "integrity": "sha512-p68OeCz1ui+MZYG4wmfJGvcsAcFYb6Sl25H9TxWl+GkBgmNimIiRdnypK9nBGlqMZAcxngNPtnG3kEMNnvoJ2A==", - "cpu": [ - "x64" - ], + "node_modules/@testing-library/jest-native": { + "version": "5.4.3", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "jest-diff": "^29.0.1", + "jest-matcher-utils": "^29.0.1", + "pretty-format": "^29.0.3", + "redent": "^3.0.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-native": ">=0.59", + "react-test-renderer": ">=16.0.0" } }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.3.tgz", - "integrity": "sha512-Nuj5iF4JteFgwrai97mUX+xUOl+rQRHqTvnvHMATL/l9xE6/TJfPBpd3hk/PVpClMXG3Uvk1MxUFOEzM1JrMYg==", - "cpu": [ - "arm" - ], + "node_modules/@testing-library/jest-native/node_modules/chalk": { + "version": "4.1.2", "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "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/@swc/core-linux-arm64-gnu": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.3.tgz", - "integrity": "sha512-2Nc/s8jE6mW2EjXWxO/lyQuLKShcmTrym2LRf5Ayp3ICEMX6HwFqB1EzDhwoMa2DcUgmnZIalesq2lG3krrUNw==", - "cpu": [ - "arm64" - ], + "node_modules/@testing-library/jest-native/node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.3.tgz", - "integrity": "sha512-j4SJniZ/qaZ5g8op+p1G9K1z22s/EYGg1UXIb3+Cg4nsxEpF5uSIGEE4mHUfA70L0BR9wKT2QF/zv3vkhfpX4g==", - "cpu": [ - "arm64" - ], + "node_modules/@testing-library/jest-native/node_modules/pretty-format": { + "version": "29.7.0", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.3.tgz", - "integrity": "sha512-aKttAZnz8YB1VJwPQZtyU8Uk0BfMP63iDMkvjhJzRZVgySmqt/apWSdnoIcZlUoGheBrcqbMC17GGUmur7OT5A==", - "cpu": [ - "x64" - ], + "node_modules/@testing-library/jest-native/node_modules/react-is": { + "version": "18.2.0", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } + "license": "MIT" }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.3.tgz", - "integrity": "sha512-oe8FctPu1gnUsdtGJRO2rvOUIkkIIaHqsO9xxN0bTR7dFTlPTGi2Fhk1tnvXeyAvCPxLIcwD8phzKg6wLv9yug==", - "cpu": [ - "x64" - ], + "node_modules/@testing-library/jest-native/node_modules/supports-color": { + "version": "7.2.0", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.3.tgz", - "integrity": "sha512-L9AjzP2ZQ/Xh58e0lTRMLvEDrcJpR7GwZqAtIeNLcTK7JVE+QineSyHp0kLkO1rttCHyCy0U74kDTj0dRz6raA==", - "cpu": [ - "arm64" - ], + "node_modules/@testing-library/react": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", + "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, "engines": { - "node": ">=10" + "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/@swc/core-win32-ia32-msvc": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.3.tgz", - "integrity": "sha512-B8UtogMzErUPDWUoKONSVBdsgKYd58rRyv2sHJWKOIMCHfZ22FVXICR4O/VwIYtlnZ7ahERcjayBHDlBZpR0aw==", - "cpu": [ - "ia32" - ], + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "license": "MIT" + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 10" } }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.3.tgz", - "integrity": "sha512-SpZKMR9QBTecHeqpzJdYEfgw30Oo8b/Xl6rjSzBt1g0ZsXyy60KLXrp6IagQyfTYqNYE/caDvwtF2FPn7pomog==", - "cpu": [ - "x64" - ], + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "license": "MIT" + }, + "node_modules/@truffle/blockchain-utils": { + "version": "0.0.18", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "source-map-support": "^0.5.16" } }, - "node_modules/@swc/core/node_modules/@swc/core-darwin-x64": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.96.tgz", - "integrity": "sha512-mFp9GFfuPg+43vlAdQZl0WZpZSE8sEzqL7sr/7Reul5McUHP0BaLsEzwjvD035ESfkY8GBZdLpMinblIbFNljQ==", - "cpu": [ - "x64" - ], + "node_modules/@truffle/contract": { + "version": "4.2.1", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "@truffle/blockchain-utils": "^0.0.18", + "@truffle/contract-schema": "^3.1.0", + "@truffle/error": "^0.0.8", + "@truffle/interface-adapter": "^0.4.6", + "bignumber.js": "^7.2.1", + "ethereum-ens": "^0.8.0", + "ethers": "^4.0.0-beta.1", + "exorcist": "^1.0.1", + "source-map-support": "^0.5.16", + "web3": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-utils": "1.2.1" } }, - "node_modules/@swc/core/node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.96.tgz", - "integrity": "sha512-8UEKkYJP4c8YzYIY/LlbSo8z5Obj4hqcv/fUTHiEePiGsOddgGf7AWjh56u7IoN/0uEmEro59nc1ChFXqXSGyg==", - "cpu": [ - "arm" - ], + "node_modules/@truffle/contract-schema": { + "version": "3.4.16", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "ajv": "^6.10.0", + "debug": "^4.3.1" + }, "engines": { - "node": ">=10" + "node": "^16.20 || ^18.16 || >=20" } }, - "node_modules/@swc/core/node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.96.tgz", - "integrity": "sha512-c/IiJ0s1y3Ymm2BTpyC/xr6gOvoqAVETrivVXHq68xgNms95luSpbYQ28rqaZC8bQC8M5zdXpSc0T8DJu8RJGw==", - "cpu": [ - "arm64" - ], + "node_modules/@truffle/contract/node_modules/aes-js": { + "version": "3.0.0", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "MIT" + }, + "node_modules/@truffle/contract/node_modules/bignumber.js": { + "version": "7.2.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": "*" } }, - "node_modules/@swc/core/node_modules/@swc/core-linux-arm64-musl": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.96.tgz", - "integrity": "sha512-i5/UTUwmJLri7zhtF6SAo/4QDQJDH2fhYJaBIUhrICmIkRO/ltURmpejqxsM/ye9Jqv5zG7VszMC0v/GYn/7BQ==", - "cpu": [ - "arm64" - ], + "node_modules/@truffle/contract/node_modules/buffer": { + "version": "5.7.1", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } ], - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/@swc/core/node_modules/@swc/core-linux-x64-gnu": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.96.tgz", - "integrity": "sha512-USdaZu8lTIkm4Yf9cogct/j5eqtdZqTgcTib4I+NloUW0E/hySou3eSyp3V2UAA1qyuC72ld1otXuyKBna0YKQ==", - "cpu": [ - "x64" - ], + "node_modules/@truffle/contract/node_modules/chownr": { + "version": "1.1.4", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } + "license": "ISC" }, - "node_modules/@swc/core/node_modules/@swc/core-linux-x64-musl": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.96.tgz", - "integrity": "sha512-QYErutd+G2SNaCinUVobfL7jWWjGTI0QEoQ6hqTp7PxCJS/dmKmj3C5ZkvxRYcq7XcZt7ovrYCTwPTHzt6lZBg==", - "cpu": [ - "x64" - ], + "node_modules/@truffle/contract/node_modules/debug": { + "version": "2.6.9", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/@swc/core/node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.96.tgz", - "integrity": "sha512-hjGvvAduA3Un2cZ9iNP4xvTXOO4jL3G9iakhFsgVhpkU73SGmK7+LN8ZVBEu4oq2SUcHO6caWvnZ881cxGuSpg==", - "cpu": [ - "arm64" - ], + "node_modules/@truffle/contract/node_modules/decompress-response": { + "version": "3.3.0", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/@swc/core/node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.96.tgz", - "integrity": "sha512-Far2hVFiwr+7VPCM2GxSmbh3ikTpM3pDombE+d69hkedvYHYZxtTF+2LTKl/sXtpbUnsoq7yV/32c9R/xaaWfw==", - "cpu": [ - "ia32" - ], + "node_modules/@truffle/contract/node_modules/ethers": { + "version": "4.0.49", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" } }, - "node_modules/@swc/core/node_modules/@swc/core-win32-x64-msvc": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.96.tgz", - "integrity": "sha512-4VbSAniIu0ikLf5mBX81FsljnfqjoVGleEkCQv4+zRlyZtO3FHoDPkeLVoy6WRlj7tyrRcfUJ4mDdPkbfTO14g==", - "cpu": [ - "x64" - ], + "node_modules/@truffle/contract/node_modules/eventemitter3": { + "version": "3.1.2", "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } + "license": "MIT" }, - "node_modules/@swc/counter": { - "version": "0.1.3", + "node_modules/@truffle/contract/node_modules/fs-extra": { + "version": "4.0.3", "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.11", - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "node_modules/@swc/types": { - "version": "0.1.5", + "node_modules/@truffle/contract/node_modules/fs-minipass": { + "version": "1.2.7", "dev": true, - "license": "Apache-2.0" + "license": "ISC", + "dependencies": { + "minipass": "^2.6.0" + } }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", + "node_modules/@truffle/contract/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/@tanstack/eslint-plugin-query": { - "version": "5.0.5", + "node_modules/@truffle/contract/node_modules/hash.js": { + "version": "1.1.3", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^5.54.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "eslint": "^8.0.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/@tanstack/query-async-storage-persister": { - "version": "5.62.7", - "resolved": "https://registry.npmjs.org/@tanstack/query-async-storage-persister/-/query-async-storage-persister-5.62.7.tgz", - "integrity": "sha512-8qSJ1oTnGhCikPADWd35xrswyYtmkqYnakWgqeXjxL+F+qPGgsfexNUlBu9TNqo9eAP/1ia4Lt5Ks2fTsMzBgg==", + "node_modules/@truffle/contract/node_modules/is-plain-obj": { + "version": "1.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "@tanstack/query-persist-client-core": "5.62.7" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@tanstack/query-core": { - "version": "5.62.7", + "node_modules/@truffle/contract/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@tanstack/query-devtools": { - "version": "5.61.4", + "node_modules/@truffle/contract/node_modules/js-sha3": { + "version": "0.5.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@truffle/contract/node_modules/mimic-response": { + "version": "1.0.1", + "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "engines": { + "node": ">=4" } }, - "node_modules/@tanstack/query-persist-client-core": { - "version": "5.62.7", - "resolved": "https://registry.npmjs.org/@tanstack/query-persist-client-core/-/query-persist-client-core-5.62.7.tgz", - "integrity": "sha512-9HcaD9rEp2nGWnrw2osK5UCSKJbJKEdn+MEhVVfnUPSFN7MZFpFZxpRCHJi3fRpWOYsVeH9EFODX+aoJaniJMA==", - "license": "MIT", + "node_modules/@truffle/contract/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "license": "ISC", "dependencies": { - "@tanstack/query-core": "5.62.7" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, - "node_modules/@tanstack/react-query": { - "version": "5.62.7", + "node_modules/@truffle/contract/node_modules/minizlib": { + "version": "1.3.3", + "dev": true, "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.62.7" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^18 || ^19" + "minipass": "^2.9.0" } }, - "node_modules/@tanstack/react-query-devtools": { - "version": "5.62.7", - "license": "MIT", + "node_modules/@truffle/contract/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@truffle/contract/node_modules/oboe": { + "version": "2.1.4", + "dev": true, + "license": "BSD", "dependencies": { - "@tanstack/query-devtools": "5.61.4" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@tanstack/react-query": "^5.62.7", - "react": "^18 || ^19" + "http-https": "^1.0.0" } }, - "node_modules/@tanstack/react-query-persist-client": { - "version": "5.62.7", - "resolved": "https://registry.npmjs.org/@tanstack/react-query-persist-client/-/react-query-persist-client-5.62.7.tgz", - "integrity": "sha512-RmEJ3YvsK7lv1Of3CCXBgHDtoZVwHMtTKCTegZz+xijVJsgJaNNfel4YTpbQ0ydnWT2IcohdqnHUtBE6p1KCIA==", + "node_modules/@truffle/contract/node_modules/p-cancelable": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@truffle/contract/node_modules/p-timeout": { + "version": "1.2.1", + "dev": true, "license": "MIT", "dependencies": { - "@tanstack/query-persist-client-core": "5.62.7" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "p-finally": "^1.0.0" }, - "peerDependencies": { - "@tanstack/react-query": "^5.62.7", - "react": "^18 || ^19" + "engines": { + "node": ">=4" } }, - "node_modules/@tanstack/virtual-core": { - "version": "3.13.23", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.23.tgz", - "integrity": "sha512-zSz2Z2HNyLjCplANTDyl3BcdQJc2k1+yyFoKhNRmCr7V7dY8o8q5m8uFTI1/Pg1kL+Hgrz6u3Xo6eFUB7l66cg==", + "node_modules/@truffle/contract/node_modules/prepend-http": { + "version": "1.0.4", + "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@tanstack/vue-virtual": { - "version": "3.13.23", - "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.13.23.tgz", - "integrity": "sha512-b5jPluAR6U3eOq6GWAYSpj3ugnAIZgGR0e6aGAgyRse0Yu6MVQQ0ZWm9SArSXWtageogn6bkVD8D//c4IjW3xQ==", + "node_modules/@truffle/contract/node_modules/scrypt-js": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@truffle/contract/node_modules/scryptsy": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@truffle/contract/node_modules/semver": { + "version": "6.2.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@truffle/contract/node_modules/setimmediate": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@truffle/contract/node_modules/swarm-js": { + "version": "0.1.39", + "dev": true, "license": "MIT", "dependencies": { - "@tanstack/virtual-core": "3.13.23" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "vue": "^2.7.0 || ^3.0.0" + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "decompress": "^4.0.0", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/@terra-dev/browser-check": { - "version": "2.5.3", - "license": "Apache-2.0", + "node_modules/@truffle/contract/node_modules/swarm-js/node_modules/got": { + "version": "7.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "bowser": "^2.11.0", - "mobile-detect": "^1.4.5" + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" }, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/@terra-dev/chrome-extension": { - "version": "2.5.3", - "license": "Apache-2.0", + "node_modules/@truffle/contract/node_modules/swarm-js/node_modules/setimmediate": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@truffle/contract/node_modules/tar": { + "version": "4.4.19", + "dev": true, + "license": "ISC", "dependencies": { - "@terra-dev/browser-check": "^2.5.3", - "@terra-dev/wallet-types": "^2.5.3", - "fix-hmr": "^1.0.2", - "rxjs": "^7.4.0", - "styled-components": "^5.0.0" + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@terra-money/terra.js": "^2.0.0", - "react": "^17.0.0", - "react-dom": "^17.0.0" + "node": ">=4.5" } }, - "node_modules/@terra-dev/readonly-wallet": { - "version": "2.5.3", - "license": "Apache-2.0", + "node_modules/@truffle/contract/node_modules/underscore": { + "version": "1.9.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@truffle/contract/node_modules/url-parse-lax": { + "version": "1.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "@terra-dev/wallet-types": "^2.5.3" + "prepend-http": "^1.0.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@terra-money/terra.js": "^2.0.0" + "node": ">=0.10.0" } }, - "node_modules/@terra-dev/readonly-wallet-modal": { - "version": "2.5.3", - "license": "Apache-2.0", + "node_modules/@truffle/contract/node_modules/uuid": { + "version": "2.0.1", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/web3": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "@terra-dev/readonly-wallet": "^2.5.3", - "@terra-dev/wallet-types": "^2.5.3", - "styled-components": "^5.0.0" + "web3-bzz": "1.2.1", + "web3-core": "1.2.1", + "web3-eth": "1.2.1", + "web3-eth-personal": "1.2.1", + "web3-net": "1.2.1", + "web3-shh": "1.2.1", + "web3-utils": "1.2.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@terra-money/terra.js": "^2.0.0", - "react": "^17.0.0", - "react-dom": "^17.0.0" + "node": ">=8.0.0" } }, - "node_modules/@terra-dev/use-wallet": { - "version": "2.5.3", - "license": "Apache-2.0", + "node_modules/@truffle/contract/node_modules/web3-bzz": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "@terra-dev/wallet-types": "^2.5.3" + "got": "9.6.0", + "swarm-js": "0.1.39", + "underscore": "1.9.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@terra-money/terra.js": "^2.0.0", - "react": "^17.0.0" + "node": ">=8.0.0" } }, - "node_modules/@terra-dev/wallet-types": { - "version": "2.5.3", - "license": "Apache-2.0", - "engines": { - "node": ">=12" + "node_modules/@truffle/contract/node_modules/web3-core": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", + "dependencies": { + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-requestmanager": "1.2.1", + "web3-utils": "1.2.1" }, - "peerDependencies": { - "@terra-money/terra.js": "^2.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@terra-dev/walletconnect": { - "version": "2.5.3", - "license": "Apache-2.0", + "node_modules/@truffle/contract/node_modules/web3-core-helpers": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "@terra-dev/browser-check": "^2.5.3", - "@terra-dev/walletconnect-qrcode-modal": "^2.5.3", - "@walletconnect/core": "^1.6.6", - "@walletconnect/iso-crypto": "^1.6.6", - "@walletconnect/types": "^1.6.6", - "@walletconnect/utils": "^1.6.6", - "rxjs": "^7.4.0", - "ws": "^7.5.5" + "underscore": "1.9.1", + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@terra-money/terra.js": "^2.0.0" + "node": ">=8.0.0" } }, - "node_modules/@terra-dev/walletconnect-qrcode-modal": { - "version": "2.5.3", - "license": "Apache-2.0", + "node_modules/@truffle/contract/node_modules/web3-core-method": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "@terra-dev/browser-check": "^2.5.3", - "@walletconnect/types": "^1.6.6", - "qrcode.react": "^1.0.1", - "styled-components": "^5.0.0" + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-utils": "1.2.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": "^17.0.0", - "react-dom": "^17.0.0" + "node": ">=8.0.0" } }, - "node_modules/@terra-dev/web-connector-controller": { - "version": "0.8.1", - "license": "MIT", + "node_modules/@truffle/contract/node_modules/web3-core-requestmanager": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "@terra-dev/web-connector-interface": "^0.8.1", - "bowser": "^2.11.0", - "rxjs": "^7.4.0" + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "web3-providers-http": "1.2.1", + "web3-providers-ipc": "1.2.1", + "web3-providers-ws": "1.2.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@terra-money/terra.js": "^2.0.0" + "node": ">=8.0.0" } }, - "node_modules/@terra-dev/web-connector-interface": { - "version": "0.8.1", - "license": "MIT", + "node_modules/@truffle/contract/node_modules/web3-core-subscriptions": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "rxjs": "^7.4.0" + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@terra-money/terra.js": "^2.0.0" + "node": ">=8.0.0" } }, - "node_modules/@terra-money/terra.js": { - "version": "2.1.23", - "license": "MIT", + "node_modules/@truffle/contract/node_modules/web3-eth": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "@terra-money/terra.proto": "^0.1.7", - "axios": "^0.21.1", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "decimal.js": "^10.2.1", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.4.2" + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-accounts": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-eth-ens": "1.2.1", + "web3-eth-iban": "1.2.1", + "web3-eth-personal": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" }, "engines": { - "node": ">=14" + "node": ">=8.0.0" } }, - "node_modules/@terra-money/terra.js/node_modules/axios": { - "version": "0.21.4", - "license": "MIT", + "node_modules/@truffle/contract/node_modules/web3-eth-accounts": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "follow-redirects": "^1.14.0" + "any-promise": "1.3.0", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.7", + "scryptsy": "2.1.0", + "semver": "6.2.0", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@terra-money/terra.js/node_modules/follow-redirects": { - "version": "1.15.3", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/eth-lib": { + "version": "0.2.7", + "dev": true, "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/@terra-money/terra.proto": { - "version": "0.1.7", - "license": "Apache-2.0", - "dependencies": { - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" } }, - "node_modules/@terra-money/wallet-provider": { - "version": "2.5.3", - "license": "Apache-2.0", + "node_modules/@truffle/contract/node_modules/web3-eth-contract": { + "version": "1.2.1", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "@terra-dev/browser-check": "^2.5.3", - "@terra-dev/chrome-extension": "^2.5.3", - "@terra-dev/readonly-wallet": "^2.5.3", - "@terra-dev/readonly-wallet-modal": "^2.5.3", - "@terra-dev/use-wallet": "^2.5.3", - "@terra-dev/wallet-types": "^2.5.3", - "@terra-dev/walletconnect": "^2.5.3", - "@terra-dev/web-connector-controller": "^0.8.1", - "@terra-dev/web-connector-interface": "^0.8.1", - "fast-deep-equal": "^3.1.3", - "rxjs": "^7.4.0" + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-utils": "1.2.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@terra-money/terra.js": "^2.0.0", - "react": "^17.0.0" - }, - "peerDependenciesMeta": { - "react-router-dom": { - "optional": true - } + "node": ">=8.0.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==", + "node_modules/@truffle/contract/node_modules/web3-eth-ens": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "LGPL-3.0", "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" + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-utils": "1.2.1" }, "engines": { - "node": ">=18" + "node": ">=8.0.0" } }, - "node_modules/@testing-library/jest-native": { - "version": "5.4.3", + "node_modules/@truffle/contract/node_modules/web3-eth-iban": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "LGPL-3.0", "dependencies": { - "chalk": "^4.1.2", - "jest-diff": "^29.0.1", - "jest-matcher-utils": "^29.0.1", - "pretty-format": "^29.0.3", - "redent": "^3.0.0" + "bn.js": "4.11.8", + "web3-utils": "1.2.1" }, - "peerDependencies": { - "react": ">=16.0.0", - "react-native": ">=0.59", - "react-test-renderer": ">=16.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@testing-library/jest-native/node_modules/chalk": { - "version": "4.1.2", + "node_modules/@truffle/contract/node_modules/web3-eth-personal": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "LGPL-3.0", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8.0.0" } }, - "node_modules/@testing-library/jest-native/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/@truffle/contract/node_modules/web3-net": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "LGPL-3.0", "dependencies": { - "color-convert": "^2.0.1" + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=8.0.0" } }, - "node_modules/@testing-library/jest-native/node_modules/pretty-format": { - "version": "29.7.0", + "node_modules/@truffle/contract/node_modules/web3-providers-http": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "LGPL-3.0", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "web3-core-helpers": "1.2.1", + "xhr2-cookies": "1.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8.0.0" } }, - "node_modules/@testing-library/jest-native/node_modules/react-is": { - "version": "18.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/jest-native/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/@truffle/contract/node_modules/web3-providers-ipc": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "LGPL-3.0", "dependencies": { - "has-flag": "^4.0.0" + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1" }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/@testing-library/react": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", - "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", + "node_modules/@truffle/contract/node_modules/web3-providers-ws": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "LGPL-3.0", "dependencies": { - "@babel/runtime": "^7.12.5" + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" }, "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": ">=8.0.0" } }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "license": "MIT" - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", + "node_modules/@truffle/contract/node_modules/web3-shh": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "LGPL-3.0", + "dependencies": { + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-net": "1.2.1" + }, "engines": { - "node": ">= 10" + "node": ">=8.0.0" } }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "license": "MIT" - }, - "node_modules/@truffle/blockchain-utils": { - "version": "0.0.18", + "node_modules/@truffle/contract/node_modules/web3-utils": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "LGPL-3.0", "dependencies": { - "source-map-support": "^0.5.16" + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@truffle/contract": { - "version": "4.2.1", + "node_modules/@truffle/contract/node_modules/web3-utils/node_modules/eth-lib": { + "version": "0.2.7", "dev": true, "license": "MIT", "dependencies": { - "@truffle/blockchain-utils": "^0.0.18", - "@truffle/contract-schema": "^3.1.0", - "@truffle/error": "^0.0.8", - "@truffle/interface-adapter": "^0.4.6", - "bignumber.js": "^7.2.1", - "ethereum-ens": "^0.8.0", - "ethers": "^4.0.0-beta.1", - "exorcist": "^1.0.1", - "source-map-support": "^0.5.16", - "web3": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/@truffle/contract-schema": { - "version": "3.4.16", + "node_modules/@truffle/contract/node_modules/websocket": { + "version": "1.0.29", "dev": true, - "license": "MIT", + "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "ajv": "^6.10.0", - "debug": "^4.3.1" + "debug": "^2.2.0", + "gulp": "^4.0.2", + "nan": "^2.11.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" }, "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node": ">=0.10.0" } }, - "node_modules/@truffle/contract/node_modules/aes-js": { - "version": "3.0.0", + "node_modules/@truffle/error": { + "version": "0.0.8", "dev": true, "license": "MIT" }, - "node_modules/@truffle/contract/node_modules/bignumber.js": { - "version": "7.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/@truffle/contract/node_modules/buffer": { - "version": "5.7.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/@truffle/hdwallet-provider": { + "version": "1.7.0", "license": "MIT", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "@ethereumjs/common": "^2.4.0", + "@ethereumjs/tx": "^3.3.0", + "@trufflesuite/web3-provider-engine": "15.0.14", + "eth-sig-util": "^3.0.1", + "ethereum-cryptography": "^0.1.3", + "ethereum-protocol": "^1.0.1", + "ethereumjs-util": "^6.1.0", + "ethereumjs-wallet": "^1.0.1" } }, - "node_modules/@truffle/contract/node_modules/chownr": { - "version": "1.1.4", - "dev": true, - "license": "ISC" - }, - "node_modules/@truffle/contract/node_modules/debug": { - "version": "2.6.9", - "dev": true, + "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/common": { + "version": "2.6.5", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@truffle/contract/node_modules/decompress-response": { - "version": "3.3.0", - "dev": true, - "license": "MIT", + "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { + "version": "7.1.5", + "license": "MPL-2.0", "dependencies": { - "mimic-response": "^1.0.0" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, "engines": { - "node": ">=4" + "node": ">=10.0.0" } }, - "node_modules/@truffle/contract/node_modules/ethers": { - "version": "4.0.49", - "dev": true, - "license": "MIT", + "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "license": "MPL-2.0", "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@truffle/contract/node_modules/eventemitter3": { - "version": "3.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@truffle/contract/node_modules/fs-extra": { - "version": "4.0.3", - "dev": true, - "license": "MIT", + "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { + "version": "7.1.5", + "license": "MPL-2.0", "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@truffle/contract/node_modules/fs-minipass": { - "version": "1.2.7", - "dev": true, + "node_modules/@truffle/hdwallet-provider/node_modules/eth-sig-util": { + "version": "3.0.1", "license": "ISC", "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/@truffle/contract/node_modules/get-stream": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.0" } }, - "node_modules/@truffle/contract/node_modules/hash.js": { - "version": "1.1.3", - "dev": true, - "license": "MIT", + "node_modules/@truffle/hdwallet-provider/node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "license": "MPL-2.0", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@truffle/contract/node_modules/is-plain-obj": { - "version": "1.1.0", - "dev": true, + "node_modules/@truffle/hdwallet-provider/node_modules/ethereum-cryptography": { + "version": "0.1.3", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@truffle/contract/node_modules/is-stream": { - "version": "1.1.0", - "dev": true, + "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-abi": { + "version": "0.6.8", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/@truffle/contract/node_modules/js-sha3": { - "version": "0.5.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@truffle/contract/node_modules/mimic-response": { - "version": "1.0.1", - "dev": true, + "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-wallet": { + "version": "1.0.2", "license": "MIT", + "dependencies": { + "aes-js": "^3.1.2", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^7.1.2", + "randombytes": "^2.1.0", + "scrypt-js": "^3.0.1", + "utf8": "^3.0.0", + "uuid": "^8.3.2" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-wallet/node_modules/ethereumjs-util": { + "version": "7.1.5", + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, "engines": { - "node": ">=4" + "node": ">=10.0.0" } }, - "node_modules/@truffle/contract/node_modules/minipass": { - "version": "2.9.0", + "node_modules/@truffle/hdwallet-provider/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@truffle/interface-adapter": { + "version": "0.4.24", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "bn.js": "^5.1.3", + "ethers": "^4.0.32", + "web3": "1.3.6" } }, - "node_modules/@truffle/contract/node_modules/minizlib": { - "version": "1.3.3", + "node_modules/@truffle/interface-adapter/node_modules/@ethersproject/abi": { + "version": "5.0.7", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^2.9.0" + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" } }, - "node_modules/@truffle/contract/node_modules/ms": { - "version": "2.0.0", + "node_modules/@truffle/interface-adapter/node_modules/@types/node": { + "version": "12.20.55", "dev": true, "license": "MIT" }, - "node_modules/@truffle/contract/node_modules/oboe": { - "version": "2.1.4", + "node_modules/@truffle/interface-adapter/node_modules/aes-js": { + "version": "3.0.0", "dev": true, - "license": "BSD", - "dependencies": { - "http-https": "^1.0.0" - } + "license": "MIT" }, - "node_modules/@truffle/contract/node_modules/p-cancelable": { - "version": "0.3.0", + "node_modules/@truffle/interface-adapter/node_modules/eth-lib": { + "version": "0.2.8", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/@truffle/contract/node_modules/p-timeout": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/ethers": { + "version": "4.0.49", "dev": true, "license": "MIT", "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" } }, - "node_modules/@truffle/contract/node_modules/prepend-http": { - "version": "1.0.4", + "node_modules/@truffle/interface-adapter/node_modules/eventemitter3": { + "version": "4.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@truffle/interface-adapter/node_modules/hash.js": { + "version": "1.1.3", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/@truffle/contract/node_modules/scrypt-js": { - "version": "2.0.4", + "node_modules/@truffle/interface-adapter/node_modules/js-sha3": { + "version": "0.5.7", "dev": true, "license": "MIT" }, - "node_modules/@truffle/contract/node_modules/scryptsy": { - "version": "2.1.0", + "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { + "version": "2.0.4", "dev": true, "license": "MIT" }, - "node_modules/@truffle/contract/node_modules/semver": { - "version": "6.2.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@truffle/contract/node_modules/setimmediate": { + "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { "version": "1.0.4", "dev": true, "license": "MIT" }, - "node_modules/@truffle/contract/node_modules/swarm-js": { - "version": "0.1.39", - "dev": true, - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/@truffle/contract/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@truffle/contract/node_modules/swarm-js/node_modules/setimmediate": { - "version": "1.0.5", + "node_modules/@truffle/interface-adapter/node_modules/underscore": { + "version": "1.12.1", "dev": true, "license": "MIT" }, - "node_modules/@truffle/contract/node_modules/tar": { - "version": "4.4.19", + "node_modules/@truffle/interface-adapter/node_modules/uuid": { + "version": "2.0.1", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/web3": { + "version": "1.3.6", "dev": true, - "license": "ISC", + "hasInstallScript": true, + "license": "LGPL-3.0", "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "web3-bzz": "1.3.6", + "web3-core": "1.3.6", + "web3-eth": "1.3.6", + "web3-eth-personal": "1.3.6", + "web3-net": "1.3.6", + "web3-shh": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { - "node": ">=4.5" + "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/underscore": { - "version": "1.9.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@truffle/contract/node_modules/url-parse-lax": { - "version": "1.0.0", + "node_modules/@truffle/interface-adapter/node_modules/web3-bzz": { + "version": "1.3.6", "dev": true, - "license": "MIT", + "hasInstallScript": true, + "license": "LGPL-3.0", "dependencies": { - "prepend-http": "^1.0.1" + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.12.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/uuid": { - "version": "2.0.1", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/web3": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-core": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-core-requestmanager": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-bzz": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-core-helpers": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" + "underscore": "1.12.1", + "web3-eth-iban": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-core": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-core-method": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.12.1", + "web3-core-helpers": "1.3.6", + "web3-core-promievent": "1.3.6", + "web3-core-subscriptions": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-core-helpers": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-core-promievent": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" + "eventemitter3": "4.0.4" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-core-method": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-core-requestmanager": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" + "underscore": "1.12.1", + "util": "^0.12.0", + "web3-core-helpers": "1.3.6", + "web3-providers-http": "1.3.6", + "web3-providers-ipc": "1.3.6", + "web3-providers-ws": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-core-requestmanager": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" + "eventemitter3": "4.0.4", + "underscore": "1.12.1", + "web3-core-helpers": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-core-subscriptions": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-eth": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" + "underscore": "1.12.1", + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-core-subscriptions": "1.3.6", + "web3-eth-abi": "1.3.6", + "web3-eth-accounts": "1.3.6", + "web3-eth-contract": "1.3.6", + "web3-eth-ens": "1.3.6", + "web3-eth-iban": "1.3.6", + "web3-eth-personal": "1.3.6", + "web3-net": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-eth": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-abi": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/abi": "5.0.7", + "underscore": "1.12.1", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "any-promise": "1.3.0", "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", + "eth-lib": "0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", + "underscore": "1.12.1", "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.7", + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/scrypt-js": { + "version": "3.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } + "license": "MIT" }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/uuid": { + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { "version": "3.3.2", "dev": true, "license": "MIT", @@ -39832,251 +36727,309 @@ "uuid": "bin/uuid" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-contract": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" + "@types/bn.js": "^4.11.5", + "underscore": "1.12.1", + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-core-promievent": "1.3.6", + "web3-core-subscriptions": "1.3.6", + "web3-eth-abi": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-ens": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { + "content-hash": "^2.5.2", "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" + "underscore": "1.12.1", + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-promievent": "1.3.6", + "web3-eth-abi": "1.3.6", + "web3-eth-contract": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-iban": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-iban": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" + "bn.js": "^4.11.9", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-personal": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "@types/node": "^12.12.6", + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-net": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-net": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-net": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" + "web3-core": "1.3.6", + "web3-core-method": "1.3.6", + "web3-utils": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-providers-http": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-providers-http": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "web3-core-helpers": "1.2.1", + "web3-core-helpers": "1.3.6", "xhr2-cookies": "1.1.0" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-providers-ipc": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ipc": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" + "oboe": "2.1.5", + "underscore": "1.12.1", + "web3-core-helpers": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-providers-ws": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ws": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + "eventemitter3": "4.0.4", + "underscore": "1.12.1", + "web3-core-helpers": "1.3.6", + "websocket": "^1.0.32" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-shh": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-shh": { + "version": "1.3.6", "dev": true, + "hasInstallScript": true, "license": "LGPL-3.0", "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" + "web3-core": "1.3.6", + "web3-core-method": "1.3.6", + "web3-core-subscriptions": "1.3.6", + "web3-net": "1.3.6" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-utils": { - "version": "1.2.1", + "node_modules/@truffle/interface-adapter/node_modules/web3-utils": { + "version": "1.3.6", "dev": true, "license": "LGPL-3.0", "dependencies": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", + "randombytes": "^2.1.0", + "underscore": "1.12.1", "utf8": "3.0.0" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-utils/node_modules/eth-lib": { - "version": "0.2.7", - "dev": true, - "license": "MIT", + "node_modules/@trufflesuite/eth-json-rpc-filters": { + "version": "4.1.2-1", + "license": "ISC", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", + "await-semaphore": "^0.1.3", + "eth-query": "^2.1.2", + "json-rpc-engine": "^5.1.3", + "lodash.flatmap": "^4.5.0", + "safe-event-emitter": "^1.0.1" } }, - "node_modules/@truffle/contract/node_modules/websocket": { - "version": "1.0.29", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", + "node_modules/@trufflesuite/eth-json-rpc-filters/node_modules/json-rpc-engine": { + "version": "5.4.0", + "license": "ISC", "dependencies": { - "debug": "^2.2.0", - "gulp": "^4.0.2", - "nan": "^2.11.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=0.10.0" + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, - "node_modules/@truffle/error": { - "version": "0.0.8", - "dev": true, - "license": "MIT" - }, - "node_modules/@truffle/hdwallet-provider": { - "version": "1.7.0", - "license": "MIT", + "node_modules/@trufflesuite/eth-json-rpc-infura": { + "version": "4.0.3-0", + "license": "ISC", "dependencies": { - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/web3-provider-engine": "15.0.14", - "eth-sig-util": "^3.0.1", - "ethereum-cryptography": "^0.1.3", - "ethereum-protocol": "^1.0.1", - "ethereumjs-util": "^6.1.0", - "ethereumjs-wallet": "^1.0.1" + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "cross-fetch": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "json-rpc-engine": "^5.1.3" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/common": { - "version": "2.6.5", + "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/cross-fetch": { + "version": "2.2.6", "license": "MIT", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { - "version": "7.1.5", - "license": "MPL-2.0", + "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/eth-json-rpc-errors": { + "version": "1.1.1", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" + "fast-safe-stringify": "^2.0.6" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "license": "MPL-2.0", + "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/json-rpc-engine": { + "version": "5.4.0", + "license": "ISC", "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { - "version": "7.1.5", - "license": "MPL-2.0", + "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/node-fetch": { + "version": "2.7.0", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=10.0.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/@truffle/hdwallet-provider/node_modules/eth-sig-util": { + "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/webidl-conversions": { "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/whatwg-fetch": { + "version": "2.0.4", + "license": "MIT" + }, + "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware": { + "version": "4.4.2-1", "license": "ISC", "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" + "@trufflesuite/eth-sig-util": "^1.4.2", + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "eth-query": "^2.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.7", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.6.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^5.1.3", + "json-stable-stringify": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/eth-json-rpc-errors": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "fast-safe-stringify": "^2.0.6" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereum-common": { + "version": "0.0.18", + "license": "MIT" + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-tx": { + "version": "1.3.7", + "license": "MPL-2.0", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-util": { "version": "5.2.1", "license": "MPL-2.0", "dependencies": { @@ -40089,7 +37042,23 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereum-cryptography": { + "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/json-rpc-engine": { + "version": "5.4.0", + "license": "ISC", + "dependencies": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/@trufflesuite/eth-sig-util": { + "version": "1.4.2", + "license": "ISC", + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1" + } + }, + "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereum-cryptography": { "version": "0.1.3", "license": "MIT", "dependencies": { @@ -40110,7 +37079,7 @@ "setimmediate": "^1.0.5" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-abi": { + "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereumjs-abi": { "version": "0.6.8", "license": "MIT", "dependencies": { @@ -40118,21 +37087,91 @@ "ethereumjs-util": "^6.0.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-wallet": { - "version": "1.0.2", + "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/@trufflesuite/web3-provider-engine": { + "version": "15.0.14", "license": "MIT", "dependencies": { - "aes-js": "^3.1.2", - "bs58check": "^2.1.2", + "@ethereumjs/tx": "^3.3.0", + "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", + "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "@trufflesuite/eth-sig-util": "^1.4.2", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-errors": "^2.0.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + } + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { + "version": "7.1.5", + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.1.2", - "randombytes": "^2.1.0", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^8.3.2" + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-wallet/node_modules/ethereumjs-util": { + "node_modules/@trufflesuite/web3-provider-engine/node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { "version": "7.1.5", "license": "MPL-2.0", "dependencies": { @@ -40146,1411 +37185,657 @@ "node": ">=10.0.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/uuid": { - "version": "8.3.2", + "node_modules/@trufflesuite/web3-provider-engine/node_modules/async": { + "version": "2.6.4", "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "lodash": "^4.17.14" } }, - "node_modules/@truffle/interface-adapter": { - "version": "0.4.24", - "dev": true, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/cross-fetch": { + "version": "2.2.6", "license": "MIT", "dependencies": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.3.6" + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" } }, - "node_modules/@truffle/interface-adapter/node_modules/@ethersproject/abi": { - "version": "5.0.7", - "dev": true, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereum-cryptography": { + "version": "0.1.3", "license": "MIT", "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@truffle/interface-adapter/node_modules/@types/node": { - "version": "12.20.55", - "dev": true, - "license": "MIT" + "node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } }, - "node_modules/@truffle/interface-adapter/node_modules/aes-js": { - "version": "3.0.0", - "dev": true, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/isarray": { + "version": "1.0.0", "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/eth-lib": { - "version": "0.2.8", - "dev": true, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/node-fetch": { + "version": "2.7.0", "license": "MIT", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/@truffle/interface-adapter/node_modules/ethers": { - "version": "4.0.49", - "dev": true, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/readable-stream": { + "version": "2.3.8", "license": "MIT", "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "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/@truffle/interface-adapter/node_modules/eventemitter3": { - "version": "4.0.4", - "dev": true, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/safe-buffer": { + "version": "5.1.2", "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/hash.js": { - "version": "1.1.3", - "dev": true, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/string_decoder": { + "version": "1.1.1", "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/js-sha3": { - "version": "0.5.7", - "dev": true, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/tr46": { + "version": "0.0.3", "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { + "node_modules/@trufflesuite/web3-provider-engine/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/whatwg-fetch": { "version": "2.0.4", - "dev": true, "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { - "version": "1.0.4", - "dev": true, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@trufflesuite/web3-provider-engine/node_modules/ws": { + "version": "5.2.3", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/underscore": { - "version": "1.12.1", - "dev": true, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/uuid": { - "version": "2.0.1", - "dev": true + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/web3": { - "version": "1.3.6", + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "license": "MIT" + }, + "node_modules/@tsconfig/strictest": { + "version": "2.0.2", "dev": true, - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-bzz": "1.3.6", - "web3-core": "1.3.6", - "web3-eth": "1.3.6", - "web3-eth-personal": "1.3.6", - "web3-net": "1.3.6", - "web3-shh": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" - } + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/web3-bzz": { - "version": "1.3.6", + "node_modules/@types/3box": { + "version": "1.22.0", "dev": true, - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40", - "underscore": "1.12.1" - }, - "engines": { - "node": ">=8.0.0" - } + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core": { - "version": "1.3.6", + "node_modules/@types/acorn": { + "version": "4.0.6", "dev": true, - "license": "LGPL-3.0", + "license": "MIT", "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.3.6", - "web3-core-method": "1.3.6", - "web3-core-requestmanager": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@types/estree": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-helpers": { - "version": "1.3.6", + "node_modules/@types/amplitude-js": { + "version": "8.0.2", "dev": true, - "license": "LGPL-3.0", - "dependencies": { - "underscore": "1.12.1", - "web3-eth-iban": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" - } + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-method": { - "version": "1.3.6", + "node_modules/@types/archiver": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-6.0.3.tgz", + "integrity": "sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==", "dev": true, - "license": "LGPL-3.0", "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "underscore": "1.12.1", - "web3-core-helpers": "1.3.6", - "web3-core-promievent": "1.3.6", - "web3-core-subscriptions": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@types/readdir-glob": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-promievent": { - "version": "1.3.6", + "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, - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-requestmanager": { - "version": "1.3.6", + "node_modules/@types/array.prototype.flat": { + "version": "1.2.1", "dev": true, - "license": "LGPL-3.0", + "license": "MIT" + }, + "node_modules/@types/async-retry": { + "version": "1.4.4", + "dev": true, + "license": "MIT", "dependencies": { - "underscore": "1.12.1", - "util": "^0.12.0", - "web3-core-helpers": "1.3.6", - "web3-providers-http": "1.3.6", - "web3-providers-ipc": "1.3.6", - "web3-providers-ws": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@types/retry": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions": { - "version": "1.3.6", - "dev": true, - "license": "LGPL-3.0", + "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==", + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.12.1", - "web3-core-helpers": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth": { - "version": "1.3.6", - "dev": true, - "license": "LGPL-3.0", + "node_modules/@types/babel__generator": { + "version": "7.6.6", + "license": "MIT", "dependencies": { - "underscore": "1.12.1", - "web3-core": "1.3.6", - "web3-core-helpers": "1.3.6", - "web3-core-method": "1.3.6", - "web3-core-subscriptions": "1.3.6", - "web3-eth-abi": "1.3.6", - "web3-eth-accounts": "1.3.6", - "web3-eth-contract": "1.3.6", - "web3-eth-ens": "1.3.6", - "web3-eth-iban": "1.3.6", - "web3-eth-personal": "1.3.6", - "web3-net": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@babel/types": "^7.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-abi": { - "version": "1.3.6", - "dev": true, - "license": "LGPL-3.0", + "node_modules/@types/babel__template": { + "version": "7.4.3", + "license": "MIT", "dependencies": { - "@ethersproject/abi": "5.0.7", - "underscore": "1.12.1", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts": { - "version": "1.3.6", - "dev": true, - "license": "LGPL-3.0", + "node_modules/@types/babel__traverse": { + "version": "7.20.3", + "license": "MIT", "dependencies": { - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-js": "^3.0.1", - "underscore": "1.12.1", - "uuid": "3.3.2", - "web3-core": "1.3.6", - "web3-core-helpers": "1.3.6", - "web3-core-method": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@babel/types": "^7.20.7" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", + "node_modules/@types/base16": { + "version": "1.0.5", "dev": true, "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "dev": true, + "node_modules/@types/bn.js": { + "version": "5.1.0", "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract": { - "version": "1.3.6", - "dev": true, - "license": "LGPL-3.0", "dependencies": { - "@types/bn.js": "^4.11.5", - "underscore": "1.12.1", - "web3-core": "1.3.6", - "web3-core-helpers": "1.3.6", - "web3-core-method": "1.3.6", - "web3-core-promievent": "1.3.6", - "web3-core-subscriptions": "1.3.6", - "web3-eth-abi": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens": { - "version": "1.3.6", - "dev": true, - "license": "LGPL-3.0", + "node_modules/@types/body-parser": { + "version": "1.19.4", + "license": "MIT", "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "underscore": "1.12.1", - "web3-core": "1.3.6", - "web3-core-helpers": "1.3.6", - "web3-core-promievent": "1.3.6", - "web3-eth-abi": "1.3.6", - "web3-eth-contract": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@types/connect": "*", + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-iban": { - "version": "1.3.6", + "node_modules/@types/body-scroll-lock": { + "version": "2.6.1", "dev": true, - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" - } + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal": { - "version": "1.3.6", + "node_modules/@types/bs58": { + "version": "4.0.1", "dev": true, - "license": "LGPL-3.0", + "license": "MIT", "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.3.6", - "web3-core-helpers": "1.3.6", - "web3-core-method": "1.3.6", - "web3-net": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "base-x": "^3.0.6" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-net": { - "version": "1.3.6", - "dev": true, - "license": "LGPL-3.0", + "node_modules/@types/bunyan": { + "version": "1.8.7", + "license": "MIT", "dependencies": { - "web3-core": "1.3.6", - "web3-core-method": "1.3.6", - "web3-utils": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-http": { - "version": "1.3.6", - "dev": true, - "license": "LGPL-3.0", + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "license": "MIT", "dependencies": { - "web3-core-helpers": "1.3.6", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ipc": { - "version": "1.3.6", - "dev": true, - "license": "LGPL-3.0", + "node_modules/@types/cacheable-request/node_modules/@types/keyv": { + "version": "3.1.4", + "license": "MIT", "dependencies": { - "oboe": "2.1.5", - "underscore": "1.12.1", - "web3-core-helpers": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ws": { - "version": "1.3.6", + "node_modules/@types/chai": { + "version": "4.3.9", "dev": true, - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.12.1", - "web3-core-helpers": "1.3.6", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/web3-shh": { - "version": "1.3.6", + "node_modules/@types/chai-subset": { + "version": "1.3.4", "dev": true, - "hasInstallScript": true, - "license": "LGPL-3.0", + "license": "MIT", "dependencies": { - "web3-core": "1.3.6", - "web3-core-method": "1.3.6", - "web3-core-subscriptions": "1.3.6", - "web3-net": "1.3.6" - }, - "engines": { - "node": ">=8.0.0" + "@types/chai": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-utils": { - "version": "1.3.6", + "node_modules/@types/chrome": { + "version": "0.0.254", "dev": true, - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.12.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-filters": { - "version": "4.1.2-1", - "license": "ISC", + "license": "MIT", "dependencies": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", - "await-semaphore": "^0.1.3", - "eth-query": "^2.1.2", - "json-rpc-engine": "^5.1.3", - "lodash.flatmap": "^4.5.0", - "safe-event-emitter": "^1.0.1" + "@types/filesystem": "*", + "@types/har-format": "*" } }, - "node_modules/@trufflesuite/eth-json-rpc-filters/node_modules/json-rpc-engine": { - "version": "5.4.0", - "license": "ISC", - "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } + "node_modules/@types/classnames": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.10.tgz", + "integrity": "sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ==", + "dev": true }, - "node_modules/@trufflesuite/eth-json-rpc-infura": { - "version": "4.0.3-0", - "license": "ISC", + "node_modules/@types/codemirror": { + "version": "5.60.15", + "dev": true, + "license": "MIT", "dependencies": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "cross-fetch": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "json-rpc-engine": "^5.1.3" + "@types/tern": "*" } }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/cross-fetch": { - "version": "2.2.6", + "node_modules/@types/color": { + "version": "3.0.6", + "dev": true, "license": "MIT", "dependencies": { - "node-fetch": "^2.6.7", - "whatwg-fetch": "^2.0.4" + "@types/color-convert": "*" } }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/eth-json-rpc-errors": { - "version": "1.1.1", + "node_modules/@types/color-convert": { + "version": "2.0.3", + "dev": true, "license": "MIT", "dependencies": { - "fast-safe-stringify": "^2.0.6" + "@types/color-name": "*" } }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/json-rpc-engine": { - "version": "5.4.0", - "license": "ISC", + "node_modules/@types/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/concat-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "@types/node": "*" } }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/node-fetch": { - "version": "2.7.0", + "node_modules/@types/connect": { + "version": "3.4.37", "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "@types/node": "*" } }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/tr46": { - "version": "0.0.3", + "node_modules/@types/cookie": { + "version": "0.4.1", + "dev": true, "license": "MIT" }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/whatwg-fetch": { - "version": "2.0.4", + "node_modules/@types/cookiejar": { + "version": "2.1.3", + "dev": true, "license": "MIT" }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/whatwg-url": { - "version": "5.0.0", + "node_modules/@types/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==", + "dev": true, "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "@types/node": "*" } }, - "node_modules/@trufflesuite/eth-json-rpc-middleware": { - "version": "4.4.2-1", - "license": "ISC", - "dependencies": { - "@trufflesuite/eth-sig-util": "^1.4.2", - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "eth-query": "^2.1.2", - "ethereumjs-block": "^1.6.0", - "ethereumjs-tx": "^1.3.7", - "ethereumjs-util": "^5.1.2", - "ethereumjs-vm": "^2.6.0", - "fetch-ponyfill": "^4.0.0", - "json-rpc-engine": "^5.1.3", - "json-stable-stringify": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } + "node_modules/@types/css-font-loading-module": { + "version": "0.0.7", + "license": "MIT" }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/eth-json-rpc-errors": { - "version": "1.1.1", + "node_modules/@types/d3": { + "version": "7.4.3", + "dev": true, "license": "MIT", "dependencies": { - "fast-safe-stringify": "^2.0.6" + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" } }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereum-common": { - "version": "0.0.18", + "node_modules/@types/d3-array": { + "version": "3.2.1", + "dev": true, "license": "MIT" }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "license": "MPL-2.0", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/json-rpc-engine": { - "version": "5.4.0", - "license": "ISC", - "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/@trufflesuite/eth-sig-util": { - "version": "1.4.2", - "license": "ISC", - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1" - } - }, - "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereumjs-abi": { - "version": "0.6.8", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@trufflesuite/web3-provider-engine": { - "version": "15.0.14", + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "dev": true, "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" + "@types/d3-selection": "*" } }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/@ethereumjs/common": { - "version": "2.6.5", + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "dev": true, "license": "MIT", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { - "version": "7.1.5", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { - "version": "7.1.5", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" + "@types/d3-selection": "*" } }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/async": { - "version": "2.6.4", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "dev": true, + "license": "MIT" }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/cross-fetch": { - "version": "2.2.6", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.6.7", - "whatwg-fetch": "^2.0.4" - } + "node_modules/@types/d3-color": { + "version": "3.1.3", + "dev": true, + "license": "MIT" }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereum-cryptography": { - "version": "0.1.3", + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "dev": true, "license": "MIT", "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "@types/d3-array": "*", + "@types/geojson": "*" } }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "dev": true, + "license": "MIT" }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/isarray": { - "version": "1.0.0", + "node_modules/@types/d3-dispatch": { + "version": "3.0.6", + "dev": true, "license": "MIT" }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/node-fetch": { - "version": "2.7.0", + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "dev": true, "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "@types/d3-selection": "*" } }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/readable-stream": { - "version": "2.3.8", - "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/@types/d3-dsv": { + "version": "3.0.7", + "dev": true, + "license": "MIT" }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/safe-buffer": { - "version": "5.1.2", + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "dev": true, "license": "MIT" }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/string_decoder": { - "version": "1.1.1", + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "@types/d3-dsv": "*" } }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/tr46": { - "version": "0.0.3", + "node_modules/@types/d3-force": { + "version": "3.0.9", + "dev": true, "license": "MIT" }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/whatwg-fetch": { - "version": "2.0.4", + "node_modules/@types/d3-format": { + "version": "3.0.4", + "dev": true, "license": "MIT" }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/whatwg-url": { - "version": "5.0.0", + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "@types/geojson": "*" } }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/ws": { - "version": "5.2.3", + "node_modules/@types/d3-hierarchy": { + "version": "3.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "dev": true, "license": "MIT", "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "license": "ISC", - "engines": { - "node": ">=10.13.0" + "@types/d3-color": "*" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", + "node_modules/@types/d3-path": { + "version": "3.1.0", + "dev": true, "license": "MIT" }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "dev": true, "license": "MIT" }, - "node_modules/@tsconfig/strictest": { - "version": "2.0.2", + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", "dev": true, "license": "MIT" }, - "node_modules/@types/3box": { - "version": "1.22.0", + "node_modules/@types/d3-random": { + "version": "3.0.3", "dev": true, "license": "MIT" }, - "node_modules/@types/acorn": { - "version": "4.0.6", + "node_modules/@types/d3-scale": { + "version": "4.0.8", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "*" + "@types/d3-time": "*" } }, - "node_modules/@types/amplitude-js": { - "version": "8.0.2", + "node_modules/@types/d3-scale-chromatic": { + "version": "3.0.3", "dev": true, "license": "MIT" }, - "node_modules/@types/archiver": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-6.0.3.tgz", - "integrity": "sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==", + "node_modules/@types/d3-selection": { + "version": "3.0.10", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.6", "dev": true, + "license": "MIT", "dependencies": { - "@types/readdir-glob": "*" + "@types/d3-path": "*" } }, - "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/@types/d3-time": { + "version": "3.0.3", "dev": true, "license": "MIT" }, - "node_modules/@types/array.prototype.flat": { - "version": "1.2.1", + "node_modules/@types/d3-time-format": { + "version": "4.0.3", "dev": true, "license": "MIT" }, - "node_modules/@types/async-retry": { - "version": "1.4.4", + "node_modules/@types/d3-timer": { + "version": "3.0.2", "dev": true, - "license": "MIT", - "dependencies": { - "@types/retry": "*" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } + "license": "MIT" }, - "node_modules/@types/babel__generator": { - "version": "7.6.6", + "node_modules/@types/d3-transition": { + "version": "3.0.8", + "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.0.0" + "@types/d3-selection": "*" } }, - "node_modules/@types/babel__template": { - "version": "7.4.3", + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.3", + "node_modules/@types/debug": { + "version": "4.1.10", "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "@types/ms": "*" } }, - "node_modules/@types/base16": { - "version": "1.0.5", + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", "dev": true, "license": "MIT" }, - "node_modules/@types/bn.js": { - "version": "5.1.0", + "node_modules/@types/estree": { + "version": "0.0.39", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "@types/node": "*" + "@types/estree": "*" } }, - "node_modules/@types/body-parser": { - "version": "1.19.4", + "node_modules/@types/eth-sig-util": { + "version": "2.1.1", + "dev": true, "license": "MIT", "dependencies": { - "@types/connect": "*", "@types/node": "*" } }, - "node_modules/@types/body-scroll-lock": { - "version": "2.6.1", + "node_modules/@types/events": { + "version": "3.0.2", "dev": true, "license": "MIT" }, - "node_modules/@types/bs58": { - "version": "4.0.1", + "node_modules/@types/expect": { + "version": "24.3.0", "dev": true, "license": "MIT", "dependencies": { - "base-x": "^3.0.6" - } - }, - "node_modules/@types/bunyan": { - "version": "1.8.7", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/cacheable-request/node_modules/@types/keyv": { - "version": "3.1.4", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.9", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/chai-subset": { - "version": "1.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/chrome": { - "version": "0.0.254", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/filesystem": "*", - "@types/har-format": "*" - } - }, - "node_modules/@types/classnames": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.10.tgz", - "integrity": "sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ==", - "dev": true - }, - "node_modules/@types/codemirror": { - "version": "5.60.15", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/tern": "*" - } - }, - "node_modules/@types/color": { - "version": "3.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/color-convert": "*" - } - }, - "node_modules/@types/color-convert": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/color-name": "*" - } - }, - "node_modules/@types/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/concat-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.37", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/cookiejar": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/cross-spawn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz", - "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/css-font-loading-module": { - "version": "0.0.7", - "license": "MIT" - }, - "node_modules/@types/d3": { - "version": "7.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-array": "*", - "@types/d3-axis": "*", - "@types/d3-brush": "*", - "@types/d3-chord": "*", - "@types/d3-color": "*", - "@types/d3-contour": "*", - "@types/d3-delaunay": "*", - "@types/d3-dispatch": "*", - "@types/d3-drag": "*", - "@types/d3-dsv": "*", - "@types/d3-ease": "*", - "@types/d3-fetch": "*", - "@types/d3-force": "*", - "@types/d3-format": "*", - "@types/d3-geo": "*", - "@types/d3-hierarchy": "*", - "@types/d3-interpolate": "*", - "@types/d3-path": "*", - "@types/d3-polygon": "*", - "@types/d3-quadtree": "*", - "@types/d3-random": "*", - "@types/d3-scale": "*", - "@types/d3-scale-chromatic": "*", - "@types/d3-selection": "*", - "@types/d3-shape": "*", - "@types/d3-time": "*", - "@types/d3-time-format": "*", - "@types/d3-timer": "*", - "@types/d3-transition": "*", - "@types/d3-zoom": "*" - } - }, - "node_modules/@types/d3-array": { - "version": "3.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-axis": { - "version": "3.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-brush": { - "version": "3.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-chord": { - "version": "3.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-contour": { - "version": "3.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-array": "*", - "@types/geojson": "*" - } - }, - "node_modules/@types/d3-delaunay": { - "version": "6.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-dispatch": { - "version": "3.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-drag": { - "version": "3.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-dsv": { - "version": "3.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-fetch": { - "version": "3.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-dsv": "*" - } - }, - "node_modules/@types/d3-force": { - "version": "3.0.9", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-format": { - "version": "3.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-geo": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/geojson": "*" - } - }, - "node_modules/@types/d3-hierarchy": { - "version": "3.1.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-polygon": { - "version": "3.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-quadtree": { - "version": "3.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-random": { - "version": "3.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-selection": { - "version": "3.0.10", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-shape": { - "version": "3.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-time-format": { - "version": "4.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-transition": { - "version": "3.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-zoom": { - "version": "3.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-interpolate": "*", - "@types/d3-selection": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.10", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/deep-eql": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/eth-sig-util": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/events": { - "version": "3.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/expect": { - "version": "24.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "*" + "expect": "*" } }, "node_modules/@types/express": { @@ -41848,15 +38133,6 @@ "version": "0.7.33", "license": "MIT" }, - "node_modules/@types/multer": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, "node_modules/@types/node": { "version": "18.17.0", "license": "MIT" @@ -48162,52 +44438,6 @@ "web3-utils": "^1.2.1" } }, - "node_modules/abi-wan-kanabi": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/abi-wan-kanabi/-/abi-wan-kanabi-2.2.4.tgz", - "integrity": "sha512-0aA81FScmJCPX+8UvkXLki3X1+yPQuWxEkqXBVKltgPAK79J+NB+Lp5DouMXa7L6f+zcRlIA/6XO7BN/q9fnvg==", - "dependencies": { - "ansicolors": "^0.3.2", - "cardinal": "^2.1.1", - "fs-extra": "^10.0.0", - "yargs": "^17.7.2" - }, - "bin": { - "generate": "dist/generate.js" - } - }, - "node_modules/abi-wan-kanabi/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/abi-wan-kanabi/node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/abi-wan-kanabi/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/abort-controller": { "version": "3.0.0", "license": "MIT", @@ -49700,18 +45930,6 @@ "node": ">=0.10.0" } }, - "node_modules/arweave-stream-tx": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/arweave-stream-tx/-/arweave-stream-tx-1.2.2.tgz", - "integrity": "sha512-bNt9rj0hbAEzoUZEF2s6WJbIz8nasZlZpxIw03Xm8fzb9gRiiZlZGW3lxQLjfc9Z0VRUWDzwtqoYeEoB/JDToQ==", - "optional": true, - "dependencies": { - "exponential-backoff": "^3.1.0" - }, - "peerDependencies": { - "arweave": "^1.10.0" - } - }, "node_modules/as-table": { "version": "1.0.55", "dev": true, @@ -51869,6 +48087,7 @@ }, "node_modules/base64url": { "version": "3.0.1", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -53735,18 +49954,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } - }, "node_modules/cartonne": { "version": "2.2.0", "license": "(Apache-2.0 AND MIT)", @@ -53938,14 +50145,6 @@ "chai": "^4.0.0" } }, - "node_modules/chain": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chain/-/chain-0.4.2.tgz", - "integrity": "sha512-GtM+TlN398yBhtSp1D2dBLQomKM3Umbji3h2/NdCqAWSMKhWbjlz33j0e55rStsEZD+8OLRHuz7kWd0U3xKMDg==", - "engines": { - "node": ">=18" - } - }, "node_modules/chalk": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", @@ -54447,6 +50646,7 @@ }, "node_modules/cli-width": { "version": "3.0.0", + "dev": true, "license": "ISC", "engines": { "node": ">= 10" @@ -64184,15 +60384,6 @@ } } }, - "node_modules/fetch-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-3.0.1.tgz", - "integrity": "sha512-ZGXe8Y5Z/1FWqQ9q/CrJhkUD73DyBU9VF0hBQmEO/wPHe4A9PKTjplFDLeFX8aOsYypZUcX5Ji/eByn3VCVO3Q==", - "dependencies": { - "set-cookie-parser": "^2.4.8", - "tough-cookie": "^4.0.0" - } - }, "node_modules/fetch-mock": { "version": "9.9.1", "dev": true, @@ -64281,6 +60472,7 @@ }, "node_modules/figures": { "version": "3.2.0", + "dev": true, "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" @@ -64294,6 +60486,7 @@ }, "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -69499,6 +65692,7 @@ }, "node_modules/inquirer": { "version": "8.2.6", + "dev": true, "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", @@ -69523,6 +65717,7 @@ }, "node_modules/inquirer/node_modules/ansi-styles": { "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -69536,6 +65731,7 @@ }, "node_modules/inquirer/node_modules/chalk": { "version": "4.1.2", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -69550,6 +65746,7 @@ }, "node_modules/inquirer/node_modules/supports-color": { "version": "7.2.0", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -76194,11 +72391,6 @@ "loose-envify": "cli.js" } }, - "node_modules/lossless-json": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lossless-json/-/lossless-json-4.2.0.tgz", - "integrity": "sha512-bsHH3x+7acZfqokfn9Ks/ej96yF/z6oGGw1aBmXesq4r3fAjhdG4uYuqzDgZMk5g1CZUd5w3kwwIp9K1LOYUiA==" - }, "node_modules/lottie-react": { "version": "2.4.0", "license": "MIT", @@ -83452,30 +79644,6 @@ "buffer": "^5.5.0" } }, - "node_modules/multistream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", - "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "dependencies": { - "once": "^1.4.0", - "readable-stream": "^3.6.0" - } - }, "node_modules/murmurhash": { "version": "0.0.2" }, @@ -87979,35 +84147,6 @@ "pino": "bin.js" } }, - "node_modules/pino-abstract-transport": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - } - }, - "node_modules/pino-abstract-transport/node_modules/events": { - "version": "3.3.0", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.4.2", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/pino-http": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/pino-http/-/pino-http-10.4.0.tgz", @@ -89615,10 +85754,6 @@ "node": ">=8" } }, - "node_modules/process-warning": { - "version": "2.3.0", - "license": "MIT" - }, "node_modules/progress": { "version": "2.0.3", "license": "MIT", @@ -93272,14 +89407,6 @@ "node": ">=8" } }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", - "dependencies": { - "esprima": "~4.0.0" - } - }, "node_modules/redis": { "version": "2.8.0", "license": "MIT", @@ -95170,10 +91297,6 @@ "node": ">= 4" } }, - "node_modules/request-ip": { - "version": "3.3.0", - "license": "MIT" - }, "node_modules/request/node_modules/form-data": { "version": "2.3.3", "license": "MIT", @@ -96767,6 +92890,7 @@ }, "node_modules/run-async": { "version": "2.4.1", + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -100114,72 +96238,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/starknet": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/starknet/-/starknet-6.24.1.tgz", - "integrity": "sha512-g7tiCt73berhcNi41otlN3T3kxZnIvZhMi8WdC21Y6GC6zoQgbI2z1t7JAZF9c4xZiomlanwVnurcpyfEdyMpg==", - "dependencies": { - "@noble/curves": "1.7.0", - "@noble/hashes": "1.6.0", - "@scure/base": "1.2.1", - "@scure/starknet": "1.1.0", - "abi-wan-kanabi": "^2.2.3", - "fetch-cookie": "~3.0.0", - "isomorphic-fetch": "~3.0.0", - "lossless-json": "^4.0.1", - "pako": "^2.0.4", - "starknet-types-07": "npm:@starknet-io/types-js@^0.7.10", - "ts-mixer": "^6.0.3" - } - }, - "node_modules/starknet-types-07": { - "name": "@starknet-io/types-js", - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/@starknet-io/types-js/-/types-js-0.7.10.tgz", - "integrity": "sha512-1VtCqX4AHWJlRRSYGSn+4X1mqolI1Tdq62IwzoU2vUuEE72S1OlEeGhpvd6XsdqXcfHmVzYfj8k1XtKBQqwo9w==" - }, - "node_modules/starknet/node_modules/@noble/curves": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz", - "integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==", - "dependencies": { - "@noble/hashes": "1.6.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/starknet/node_modules/@noble/hashes": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz", - "integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/starknet/node_modules/@scure/base": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz", - "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/starknet/node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, "node_modules/stat-mode": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", @@ -102593,13 +98651,6 @@ "node": ">=0.8" } }, - "node_modules/thread-stream": { - "version": "2.4.1", - "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - } - }, "node_modules/throat": { "version": "5.0.0", "license": "MIT" @@ -102842,7 +98893,7 @@ }, "node_modules/tmp-promise": { "version": "3.0.3", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "tmp": "^0.2.0" @@ -103166,6 +99217,7 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -103178,6 +99230,7 @@ }, "node_modules/tough-cookie/node_modules/punycode": { "version": "2.3.1", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -103185,6 +99238,7 @@ }, "node_modules/tough-cookie/node_modules/universalify": { "version": "0.2.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 4.0.0" @@ -103502,11 +99556,6 @@ "node": ">=8" } }, - "node_modules/ts-mixer": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz", - "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==" - }, "node_modules/ts-mocha": { "version": "10.0.0", "license": "MIT", @@ -110299,17 +106348,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-errors": { - "version": "1.3.1", - "license": "LGPL-3.0", - "dependencies": { - "web3-types": "^1.10.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6.12.0" - } - }, "node_modules/web3-eth": { "version": "1.8.2", "license": "LGPL-3.0", @@ -111853,5953 +107891,4935 @@ "@types/bn.js": "^5.1.0", "bn.js": "^5.1.2", "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/web3-net/node_modules/web3-utils": { - "version": "1.8.2", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.8.2", - "license": "LGPL-3.0", - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.8.2", - "license": "LGPL-3.0", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.8.2", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/web3-shh": { - "version": "1.8.2", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-net": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-types": { - "version": "1.10.0", - "license": "LGPL-3.0", - "engines": { - "node": ">=14", - "npm": ">=6.12.0" - } - }, - "node_modules/web3-utils": { - "version": "1.3.4", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils/node_modules/eth-lib": { - "version": "0.2.8", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-utils/node_modules/underscore": { - "version": "1.9.1", - "license": "MIT" - }, - "node_modules/web3-validator": { - "version": "2.0.6", - "license": "LGPL-3.0", - "dependencies": { - "ethereum-cryptography": "^2.0.0", - "util": "^0.12.5", - "web3-errors": "^1.2.0", - "web3-types": "^1.6.0", - "zod": "^3.21.4" - }, - "engines": { - "node": ">=14", - "npm": ">=6.12.0" - } - }, - "node_modules/web3/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/web3/node_modules/ethereumjs-util": { - "version": "7.1.5", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/web3/node_modules/web3-utils": { - "version": "1.8.2", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webauthn-p256": { - "version": "0.0.10", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", - "dependencies": { - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0" - } - }, - "node_modules/webauthn-p256/node_modules/@noble/curves": { - "version": "1.6.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.5.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/webauthn-p256/node_modules/@noble/hashes": { - "version": "1.5.0", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/webcrypto-core": { - "version": "1.7.7", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.3.6", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^3.0.1", - "pvtsutils": "^1.3.2", - "tslib": "^2.4.0" - } - }, - "node_modules/webextension-polyfill": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", - "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==", - "license": "MPL-2.0" - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/webpack": { - "version": "5.95.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", - "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "4.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.1", - "@webpack-cli/info": "^1.2.2", - "@webpack-cli/serve": "^1.3.0", - "colorette": "^1.2.1", - "commander": "^7.0.0", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "v8-compile-cache": "^2.2.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/init": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/colorette": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-cli/node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webpack-cli/node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/webpack-cli/node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/webpack-cli/node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/webpack-cli/node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-cli/node_modules/rechoir": { - "version": "0.7.1", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-cli/node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-cli/node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-log": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.1.0", - "log-symbols": "^2.1.0", - "loglevelnext": "^1.0.1", - "uuid": "^3.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-log/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-log/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-log/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/webpack-log/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack-log/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/webpack-log/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-log/node_modules/log-symbols": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-log/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/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, - "license": "MIT" - }, - "node_modules/webpack/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, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", - "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/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/webpack/node_modules/loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack/node_modules/webpack-sources": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", - "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/websocket": { - "version": "1.0.34", - "license": "Apache-2.0", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.19", - "license": "MIT" - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "6.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/whatwg-url-without-unicode": { - "version": "8.0.0-3", - "license": "MIT", - "dependencies": { - "buffer": "^5.4.3", - "punycode": "^2.1.1", - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/whatwg-url-without-unicode/node_modules/buffer": { - "version": "5.7.1", - "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/whatwg-url-without-unicode/node_modules/punycode": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/whatwg-url-without-unicode/node_modules/webidl-conversions": { - "version": "5.0.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/whatwg-url/node_modules/webidl-conversions": { - "version": "4.0.2", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/which": { - "version": "2.0.2", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "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==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "license": "ISC" - }, - "node_modules/which-pm": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8.15" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/why-is-node-running": { - "version": "2.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/widest-line": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "string-width": "^2.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wif": { - "version": "2.0.6", - "license": "MIT", - "dependencies": { - "bs58check": "<3.0.0" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/wkx": { - "version": "0.4.8", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/wonka": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", - "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==", - "license": "MIT" - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "0.0.3", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/workerd": { - "version": "1.20240223.1", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "bin": { - "workerd": "bin/workerd" - }, - "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "@cloudflare/workerd-darwin-64": "1.20240223.1", - "@cloudflare/workerd-darwin-arm64": "1.20240223.1", - "@cloudflare/workerd-linux-64": "1.20240223.1", - "@cloudflare/workerd-linux-arm64": "1.20240223.1", - "@cloudflare/workerd-windows-64": "1.20240223.1" - } - }, - "node_modules/workerd/node_modules/@cloudflare/workerd-darwin-64": { - "version": "1.20240223.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20240223.1.tgz", - "integrity": "sha512-GgHnvkazLFZ7bmR96+dTX0+WS13a+5CHOOP3qNUSR9oEnR4hHzpNIO75MuZsm9RPAXrvtT7nSJmYwiGCZXh6og==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16" - } - }, - "node_modules/workerd/node_modules/@cloudflare/workerd-linux-64": { - "version": "1.20240223.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20240223.1.tgz", - "integrity": "sha512-1kH41ewNTGMmAk2zUX0Xj9VSfidl26GQ0ZrWMdi5kwf6gAHd3oVWNigJN078Jx56SgQxNcqVGX1LunqF949asw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16" - } - }, - "node_modules/workerd/node_modules/@cloudflare/workerd-linux-arm64": { - "version": "1.20240223.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20240223.1.tgz", - "integrity": "sha512-Ro8Og5C4evh890JrRm0B8sHyumRtgL+mUqPeNcEsyG45jAQy5xHpapHnmJAMJV6ah+zDc1cZtQq+en39SojXvQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16" - } - }, - "node_modules/workerd/node_modules/@cloudflare/workerd-windows-64": { - "version": "1.20240223.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20240223.1.tgz", - "integrity": "sha512-eNP5sfaP6WL07DaoigYou5ASPF7jHsFiNzzD2vGOI7yFd5sPlb7sJ4SpIy+BCX0LdqFnjmlUo5Xr+/I6qJ2Nww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=16" - } - }, - "node_modules/workerpool": { - "version": "6.2.1", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/wrangler": { - "version": "3.30.1", - "dev": true, - "license": "MIT OR Apache-2.0", - "dependencies": { - "@cloudflare/kv-asset-handler": "0.3.1", - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", - "blake3-wasm": "^2.1.5", - "chokidar": "^3.5.3", - "esbuild": "0.17.19", - "miniflare": "3.20240223.0", - "nanoid": "^3.3.3", - "path-to-regexp": "^6.2.0", - "resolve": "^1.22.8", - "resolve.exports": "^2.0.2", - "selfsigned": "^2.0.1", - "source-map": "0.6.1", - "xxhash-wasm": "^1.0.1" - }, - "bin": { - "wrangler": "bin/wrangler.js", - "wrangler2": "bin/wrangler.js" - }, - "engines": { - "node": ">=16.17.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@cloudflare/workers-types": "^4.20230914.0" - }, - "peerDependenciesMeta": { - "@cloudflare/workers-types": { - "optional": true - } - } - }, - "node_modules/wrangler/node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/wrangler/node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/wrangler/node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/wrangler/node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/wrangler/node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/wrangler/node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/wrangler/node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/wrangler/node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/wrangler/node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/wrangler/node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, "engines": { - "node": ">=12" + "node": ">=10.0.0" } }, - "node_modules/wrangler/node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/web3-net/node_modules/web3-utils": { + "version": "1.8.2", + "license": "LGPL-3.0", + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, "engines": { - "node": ">=12" + "node": ">=8.0.0" } }, - "node_modules/wrangler/node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/web3-providers-http": { + "version": "1.8.2", + "license": "LGPL-3.0", + "dependencies": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.8.2" + }, "engines": { - "node": ">=12" + "node": ">=8.0.0" } }, - "node_modules/wrangler/node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/web3-providers-ipc": { + "version": "1.8.2", + "license": "LGPL-3.0", + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.8.2" + }, "engines": { - "node": ">=12" + "node": ">=8.0.0" } }, - "node_modules/wrangler/node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/web3-providers-ws": { + "version": "1.8.2", + "license": "LGPL-3.0", + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.8.2", + "websocket": "^1.0.32" + }, "engines": { - "node": ">=12" + "node": ">=8.0.0" } }, - "node_modules/wrangler/node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "node_modules/web3-providers-ws/node_modules/eventemitter3": { + "version": "4.0.4", + "license": "MIT" }, - "node_modules/wrangler/node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/web3-shh": { + "version": "1.8.2", + "hasInstallScript": true, + "license": "LGPL-3.0", + "dependencies": { + "web3-core": "1.8.2", + "web3-core-method": "1.8.2", + "web3-core-subscriptions": "1.8.2", + "web3-net": "1.8.2" + }, "engines": { - "node": ">=12" + "node": ">=8.0.0" } }, - "node_modules/wrangler/node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], + "node_modules/web3-utils": { + "version": "1.3.4", + "license": "LGPL-3.0", + "dependencies": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, "engines": { - "node": ">=12" + "node": ">=8.0.0" } }, - "node_modules/wrangler/node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" + "node_modules/web3-utils/node_modules/eth-lib": { + "version": "0.2.8", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/wrangler/node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" + "node_modules/web3-utils/node_modules/underscore": { + "version": "1.9.1", + "license": "MIT" + }, + "node_modules/web3/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/wrangler/node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], + "node_modules/web3/node_modules/ethereumjs-util": { + "version": "7.1.5", + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, "engines": { - "node": ">=12" + "node": ">=10.0.0" } }, - "node_modules/wrangler/node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], + "node_modules/web3/node_modules/web3-utils": { + "version": "1.8.2", + "license": "LGPL-3.0", + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, "engines": { - "node": ">=12" + "node": ">=8.0.0" } }, - "node_modules/wrangler/node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" + "node_modules/webauthn-p256": { + "version": "0.0.10", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } ], - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0" } }, - "node_modules/wrangler/node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", + "node_modules/webauthn-p256/node_modules/@noble/curves": { + "version": "1.6.0", + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@noble/hashes": "1.5.0" }, "engines": { - "node": ">= 8" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/wrangler/node_modules/binary-extensions": { - "version": "2.3.0", - "dev": true, + "node_modules/webauthn-p256/node_modules/@noble/hashes": { + "version": "1.5.0", "license": "MIT", "engines": { - "node": ">=8" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/wrangler/node_modules/braces": { - "version": "3.0.2", - "dev": true, + "node_modules/webcrypto-core": { + "version": "1.7.7", "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" - }, + "@peculiar/asn1-schema": "^2.3.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/webextension-polyfill": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", + "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==", + "license": "MPL-2.0" + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/wrangler/node_modules/chokidar": { - "version": "3.6.0", + "node_modules/webpack": { + "version": "5.95.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", + "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", "dev": true, "license": "MIT", "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" + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" }, "engines": { - "node": ">= 8.10.0" + "node": ">=10.13.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "node_modules/wrangler/node_modules/esbuild": { - "version": "0.17.19", + "node_modules/webpack-cli": { + "version": "4.5.0", "dev": true, - "hasInstallScript": true, "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.0.1", + "@webpack-cli/info": "^1.2.2", + "@webpack-cli/serve": "^1.3.0", + "colorette": "^1.2.1", + "commander": "^7.0.0", + "enquirer": "^2.3.6", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^5.7.3" + }, "bin": { - "esbuild": "bin/esbuild" + "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=12" + "node": ">=10.13.0" }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/init": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } } }, - "node_modules/wrangler/node_modules/fill-range": { - "version": "7.0.1", + "node_modules/webpack-cli/node_modules/colorette": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-cli/node_modules/cross-spawn": { + "version": "7.0.3", "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/wrangler/node_modules/fsevents": { - "version": "2.3.3", + "node_modules/webpack-cli/node_modules/execa": { + "version": "5.1.1", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/wrangler/node_modules/glob-parent": { - "version": "5.1.2", + "node_modules/webpack-cli/node_modules/get-stream": { + "version": "6.0.1", "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wrangler/node_modules/is-binary-path": { + "node_modules/webpack-cli/node_modules/human-signals": { "version": "2.1.0", "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=10.17.0" } }, - "node_modules/wrangler/node_modules/is-number": { - "version": "7.0.0", + "node_modules/webpack-cli/node_modules/path-key": { + "version": "3.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": ">=8" } }, - "node_modules/wrangler/node_modules/path-to-regexp": { - "version": "6.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/wrangler/node_modules/readdirp": { - "version": "3.6.0", + "node_modules/webpack-cli/node_modules/rechoir": { + "version": "0.7.1", "dev": true, "license": "MIT", "dependencies": { - "picomatch": "^2.2.1" + "resolve": "^1.9.0" }, "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/wrangler/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/wrangler/node_modules/to-regex-range": { - "version": "5.0.1", + "node_modules/webpack-cli/node_modules/shebang-command": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=8.0" + "node": ">=8" } }, - "node_modules/wrap-ansi": { - "version": "6.2.0", + "node_modules/webpack-cli/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", + "node_modules/webpack-log": { + "version": "1.2.0", + "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "loglevelnext": "^1.0.1", + "uuid": "^3.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=6" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/webpack-log/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/webpack-log/node_modules/chalk": { + "version": "2.4.2", + "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/writable-consumable-stream": { - "version": "3.0.1", + "node_modules/webpack-log/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, "license": "MIT", "dependencies": { - "consumable-stream": "^2.0.0" + "color-name": "1.1.3" } }, - "node_modules/write-file-atomic": { - "version": "2.4.3", - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } + "node_modules/webpack-log/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" }, - "node_modules/ws": { - "version": "7.5.10", + "node_modules/webpack-log/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, "license": "MIT", "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "license": "Apache-2.0", - "dependencies": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - }, - "engines": { - "node": ">=10.0.0" + "node": ">=0.8.0" } }, - "node_modules/xcode/node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "node_modules/webpack-log/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "engines": { + "node": ">=4" } }, - "node_modules/xdg-basedir": { - "version": "4.0.0", + "node_modules/webpack-log/node_modules/log-symbols": { + "version": "2.2.0", "dev": true, "license": "MIT", + "dependencies": { + "chalk": "^2.0.1" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/xhr": { - "version": "2.6.0", + "node_modules/webpack-log/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, "license": "MIT", "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/xhr-request": { - "version": "1.1.0", + "node_modules/webpack-merge": { + "version": "5.10.0", + "dev": true, "license": "MIT", "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, "license": "MIT", "dependencies": { - "xhr-request": "^1.1.0" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" } }, - "node_modules/xhr-request/node_modules/decode-uri-component": { - "version": "0.2.2", - "license": "MIT", + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/xhr-request/node_modules/decompress-response": { - "version": "3.3.0", + "node_modules/webpack/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, + "license": "MIT" + }, + "node_modules/webpack/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, "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "node_modules/xhr-request/node_modules/mimic-response": { - "version": "1.0.1", + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", + "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", + "dev": true, "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, "engines": { - "node": ">=4" + "node": ">=10.13.0" } }, - "node_modules/xhr-request/node_modules/query-string": { - "version": "5.1.1", + "node_modules/webpack/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", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.x" } }, - "node_modules/xhr-request/node_modules/simple-get": { - "version": "2.8.2", + "node_modules/webpack/node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "dev": true, "license": "MIT", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/xhr-request/node_modules/strict-uri-encode": { - "version": "1.1.0", + "node_modules/webpack/node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, - "node_modules/xhr2": { - "version": "0.1.4", - "license": "MIT", + "node_modules/websocket": { + "version": "1.0.34", + "license": "Apache-2.0", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, "engines": { - "node": ">= 0.6" + "node": ">=4.0.0" } }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", + "node_modules/websocket/node_modules/debug": { + "version": "2.6.9", "license": "MIT", "dependencies": { - "cookiejar": "^2.1.1" + "ms": "2.0.0" } }, - "node_modules/xml-formatter": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-3.6.7.tgz", - "integrity": "sha512-IsfFYJQuoDqtUlKhm4EzeoBOb+fQwzQVeyxxAQ0sThn/nFnQmyLPTplqq4yRhaOENH/tAyujD2TBfIYzUKB6hg==", + "node_modules/websocket/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "dev": true, "license": "MIT", "dependencies": { - "xml-parser-xo": "^4.1.5" + "iconv-lite": "0.6.3" }, "engines": { - "node": ">= 16" + "node": ">=12" } }, - "node_modules/xml-name-validator": { - "version": "4.0.0", + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/xml-parse-from-string": { - "version": "1.0.1", + "node_modules/whatwg-fetch": { + "version": "3.6.19", "license": "MIT" }, - "node_modules/xml-parser-xo": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-4.1.5.tgz", - "integrity": "sha512-TxyRxk9sTOUg3glxSIY6f0nfuqRll2OEF8TspLgh5mZkLuBgheCn3zClcDSGJ58TvNmiwyCCuat4UajPud/5Og==", + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 16" + "node": ">=12" } }, - "node_modules/xml2js": { - "version": "0.4.23", + "node_modules/whatwg-url": { + "version": "6.5.0", + "dev": true, "license": "MIT", "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, - "node_modules/xml2js/node_modules/xmlbuilder": { - "version": "11.0.1", + "node_modules/whatwg-url-without-unicode": { + "version": "8.0.0-3", "license": "MIT", + "dependencies": { + "buffer": "^5.4.3", + "punycode": "^2.1.1", + "webidl-conversions": "^5.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=10" } }, - "node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "node_modules/whatwg-url-without-unicode/node_modules/buffer": { + "version": "5.7.1", + "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", - "engines": { - "node": ">=8.0" + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/xmlchars": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", + "node_modules/whatwg-url-without-unicode/node_modules/punycode": { + "version": "2.3.1", "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=6" } }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz", - "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==", + "node_modules/whatwg-url-without-unicode/node_modules/webidl-conversions": { + "version": "5.0.0", + "license": "BSD-2-Clause", "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/xstream": { - "version": "11.14.0", - "license": "MIT", + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "4.0.2", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", "dependencies": { - "globalthis": "^1.0.1", - "symbol-observable": "^2.0.3" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/xtend": { - "version": "4.0.2", + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, "engines": { - "node": ">=0.4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/xxhash-wasm": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/y18n": { - "version": "5.0.8", - "license": "ISC", + "node_modules/which-builtin-type": { + "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==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yaeti": { - "version": "0.0.6", + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, "engines": { - "node": ">=0.10.32" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yallist": { - "version": "3.1.1", + "node_modules/which-module": { + "version": "2.0.1", "license": "ISC" }, - "node_modules/yaml": { - "version": "1.10.2", - "license": "ISC", + "node_modules/which-pm": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "load-yaml-file": "^0.2.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">= 6" + "node": ">=8.15" } }, - "node_modules/yamljs": { - "version": "0.3.0", + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "glob": "^7.0.5" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, - "bin": { - "json2yaml": "bin/json2yaml", - "yaml2json": "bin/yaml2json" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yargs": { - "version": "17.7.2", + "node_modules/why-is-node-running": { + "version": "2.2.2", + "dev": true, "license": "MIT", "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" + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/yargs-parser": { - "version": "20.2.9", + "node_modules/wide-align": { + "version": "1.1.5", + "dev": true, "license": "ISC", - "engines": { - "node": ">=10" + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/yargs-unparser": { - "version": "2.0.0", + "node_modules/widest-line": { + "version": "2.0.1", "dev": true, "license": "MIT", "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" + "string-width": "^2.1.1" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "3.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", + "node_modules/widest-line/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "license": "ISC", + "node_modules/widest-line/node_modules/string-width": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/yauzl": { - "version": "2.10.0", + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/yazl": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-3.3.1.tgz", - "integrity": "sha512-BbETDVWG+VcMUle37k5Fqp//7SDOK2/1+T7X8TD96M3D9G8jK5VLUdQVdVjGi8im7FGkazX7kk5hkU8X4L5Bng==", + "node_modules/wif": { + "version": "2.0.6", "license": "MIT", "dependencies": { - "buffer-crc32": "^1.0.0" + "bs58check": "<3.0.0" } }, - "node_modules/yazl/node_modules/buffer-crc32": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", - "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } + "node_modules/wildcard": { + "version": "2.0.1", + "dev": true, + "license": "MIT" }, - "node_modules/yn": { - "version": "3.1.1", + "node_modules/wkx": { + "version": "0.4.8", "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "@types/node": "*" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", + "node_modules/wonka": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", + "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==", + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/yoctocolors-cjs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", - "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", - "dev": true, + "node_modules/wordwrap": { + "version": "0.0.3", + "license": "MIT", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.4.0" } }, - "node_modules/youch": { - "version": "3.3.3", + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, "license": "MIT", "dependencies": { - "cookie": "^0.5.0", - "mustache": "^4.2.0", - "stacktracey": "^2.1.8" + "errno": "~0.1.7" } }, - "node_modules/youch/node_modules/cookie": { - "version": "0.5.0", + "node_modules/workerd": { + "version": "1.20240223.1", "dev": true, - "license": "MIT", + "hasInstallScript": true, + "license": "Apache-2.0", + "bin": { + "workerd": "bin/workerd" + }, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "license": "MIT" - }, - "node_modules/zen-observable-ts": { - "version": "1.2.5", - "license": "MIT", - "dependencies": { - "zen-observable": "0.8.15" + "node": ">=16" + }, + "optionalDependencies": { + "@cloudflare/workerd-darwin-64": "1.20240223.1", + "@cloudflare/workerd-darwin-arm64": "1.20240223.1", + "@cloudflare/workerd-linux-64": "1.20240223.1", + "@cloudflare/workerd-linux-arm64": "1.20240223.1", + "@cloudflare/workerd-windows-64": "1.20240223.1" } }, - "node_modules/zip-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", - "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", - "dependencies": { - "archiver-utils": "^5.0.0", - "compress-commons": "^6.0.2", - "readable-stream": "^4.0.0" - }, + "node_modules/workerd/node_modules/@cloudflare/workerd-darwin-64": { + "version": "1.20240223.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20240223.1.tgz", + "integrity": "sha512-GgHnvkazLFZ7bmR96+dTX0+WS13a+5CHOOP3qNUSR9oEnR4hHzpNIO75MuZsm9RPAXrvtT7nSJmYwiGCZXh6og==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 14" + "node": ">=16" } }, - "node_modules/zip-stream/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/workerd/node_modules/@cloudflare/workerd-linux-64": { + "version": "1.20240223.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20240223.1.tgz", + "integrity": "sha512-1kH41ewNTGMmAk2zUX0Xj9VSfidl26GQ0ZrWMdi5kwf6gAHd3oVWNigJN078Jx56SgQxNcqVGX1LunqF949asw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.8.x" + "node": ">=16" } }, - "node_modules/zip-stream/node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, + "node_modules/workerd/node_modules/@cloudflare/workerd-linux-arm64": { + "version": "1.20240223.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20240223.1.tgz", + "integrity": "sha512-Ro8Og5C4evh890JrRm0B8sHyumRtgL+mUqPeNcEsyG45jAQy5xHpapHnmJAMJV6ah+zDc1cZtQq+en39SojXvQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16" } }, - "node_modules/zod": { - "version": "3.21.4", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" + "node_modules/workerd/node_modules/@cloudflare/workerd-windows-64": { + "version": "1.20240223.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20240223.1.tgz", + "integrity": "sha512-eNP5sfaP6WL07DaoigYou5ASPF7jHsFiNzzD2vGOI7yFd5sPlb7sJ4SpIy+BCX0LdqFnjmlUo5Xr+/I6qJ2Nww==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16" } }, - "node_modules/zod-formik-adapter": { - "version": "1.2.0", - "license": "MIT", - "peerDependencies": { - "formik": "^2.2.9", - "zod": "^3.14.4" - } + "node_modules/workerpool": { + "version": "6.2.1", + "dev": true, + "license": "Apache-2.0" }, - "node_modules/zod-validation-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-2.1.0.tgz", - "integrity": "sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==", - "license": "MIT", - "engines": { - "node": ">=18.0.0" + "node_modules/wrangler": { + "version": "3.30.1", + "dev": true, + "license": "MIT OR Apache-2.0", + "dependencies": { + "@cloudflare/kv-asset-handler": "0.3.1", + "@esbuild-plugins/node-globals-polyfill": "^0.2.3", + "@esbuild-plugins/node-modules-polyfill": "^0.2.2", + "blake3-wasm": "^2.1.5", + "chokidar": "^3.5.3", + "esbuild": "0.17.19", + "miniflare": "3.20240223.0", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.2.0", + "resolve": "^1.22.8", + "resolve.exports": "^2.0.2", + "selfsigned": "^2.0.1", + "source-map": "0.6.1", + "xxhash-wasm": "^1.0.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" }, - "peerDependencies": { - "zod": "^3.18.0" - } - }, - "node_modules/zustand": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.0.tgz", - "integrity": "sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==", - "license": "MIT", "engines": { - "node": ">=12.20.0" + "node": ">=16.17.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" }, "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" + "@cloudflare/workers-types": "^4.20230914.0" }, "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { + "@cloudflare/workers-types": { "optional": true } } }, - "node_modules/zwitch": { - "version": "2.0.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "packages/commands": { - "name": "@audius/commands", - "version": "1.0.31", - "license": "Apache-2.0", - "dependencies": { - "@audius/hedgehog": "3.0.0-alpha.1", - "@audius/sdk": "*", - "@audius/spl": "*", - "@commander-js/extra-typings": "12.1.0", - "@solana/spl-token": "0.3.8", - "@solana/web3.js": "1.98.0", - "bn.js": "^5.2.1", - "chalk": "^5.0.1", - "commander": "^9.4.0", - "esbuild": "^0.24.0" - }, - "bin": { - "audius-cmd": "dist/index.js" - }, - "devDependencies": { - "bats": "^1.8.2", - "bats-assert": "^2.0.0", - "bats-support": "0.3.0" - } - }, - "packages/commands/node_modules/@esbuild/android-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", - "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "node_modules/wrangler/node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "android" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/android-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", - "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "node_modules/wrangler/node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "android" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/android-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", - "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "node_modules/wrangler/node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "android" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/darwin-arm64": { - "version": "0.24.0", + "node_modules/wrangler/node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/darwin-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", - "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "node_modules/wrangler/node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", - "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "node_modules/wrangler/node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/freebsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", - "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "node_modules/wrangler/node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/linux-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", - "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "node_modules/wrangler/node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/linux-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", - "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "node_modules/wrangler/node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/linux-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", - "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "node_modules/wrangler/node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/linux-loong64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", - "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "node_modules/wrangler/node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", "cpu": [ "loong64" ], + "dev": true, "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/linux-mips64el": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", - "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "node_modules/wrangler/node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", "cpu": [ "mips64el" ], + "dev": true, "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/linux-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", - "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "node_modules/wrangler/node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", "cpu": [ "ppc64" ], + "dev": true, "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/linux-riscv64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", - "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "node_modules/wrangler/node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", "cpu": [ "riscv64" ], + "dev": true, "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/linux-s390x": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", - "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "node_modules/wrangler/node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", "cpu": [ "s390x" ], + "dev": true, "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/linux-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", - "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "node_modules/wrangler/node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/netbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", - "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "node_modules/wrangler/node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/openbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", - "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "node_modules/wrangler/node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/sunos-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", - "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "node_modules/wrangler/node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/win32-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", - "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "node_modules/wrangler/node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "win32" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/win32-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", - "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "node_modules/wrangler/node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "win32" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/node_modules/@esbuild/win32-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", - "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "node_modules/wrangler/node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "win32" ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "packages/commands/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" - }, - "packages/commands/node_modules/commander": { - "version": "9.5.0", - "license": "MIT", + "node_modules/wrangler/node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, "engines": { - "node": "^12.20.0 || >=14" + "node": ">= 8" } }, - "packages/commands/node_modules/esbuild": { - "version": "0.24.0", - "hasInstallScript": true, + "node_modules/wrangler/node_modules/binary-extensions": { + "version": "2.3.0", + "dev": true, "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.0", - "@esbuild/android-arm": "0.24.0", - "@esbuild/android-arm64": "0.24.0", - "@esbuild/android-x64": "0.24.0", - "@esbuild/darwin-arm64": "0.24.0", - "@esbuild/darwin-x64": "0.24.0", - "@esbuild/freebsd-arm64": "0.24.0", - "@esbuild/freebsd-x64": "0.24.0", - "@esbuild/linux-arm": "0.24.0", - "@esbuild/linux-arm64": "0.24.0", - "@esbuild/linux-ia32": "0.24.0", - "@esbuild/linux-loong64": "0.24.0", - "@esbuild/linux-mips64el": "0.24.0", - "@esbuild/linux-ppc64": "0.24.0", - "@esbuild/linux-riscv64": "0.24.0", - "@esbuild/linux-s390x": "0.24.0", - "@esbuild/linux-x64": "0.24.0", - "@esbuild/netbsd-x64": "0.24.0", - "@esbuild/openbsd-arm64": "0.24.0", - "@esbuild/openbsd-x64": "0.24.0", - "@esbuild/sunos-x64": "0.24.0", - "@esbuild/win32-arm64": "0.24.0", - "@esbuild/win32-ia32": "0.24.0", - "@esbuild/win32-x64": "0.24.0" - } - }, - "packages/common": { - "name": "@audius/common", - "version": "1.5.78", - "dependencies": { - "@audius/fetch-nft": "0.2.8", - "@audius/fixed-decimal": "*", - "@audius/sdk": "*", - "@fingerprintjs/fingerprintjs-pro": "3.5.6", - "@jup-ag/api": "6.0.48", - "@metaplex-foundation/mpl-token-metadata": "2.5.2", - "@optimizely/optimizely-sdk": "4.0.0", - "@tanstack/react-query": "5.62.7", - "@yornaath/batshit": "0.10.1", - "async-retry": "1.3.3", - "dayjs": "^1.11.19", - "formik": "2.4.6", - "fxa-common-password-list": "0.0.2", - "hashids": "2.2.1", - "immer": "9.0.1", - "lodash": "4.17.21", - "numeral": "2.0.6", - "object-hash": "2.2.0", - "proxy-memoize": "3.0.1", - "query-string": "8.1.0", - "react-redux": "8.0.5", - "react-use": "17.4.0", - "redux": "4.0.5", - "redux-persist": "6.0.0", - "reselect": "4.0.0", - "type-fest": "4.26.1", - "typed-redux-saga": "1.3.1", - "typesafe-actions": "5.1.0", - "ulid": "2.3.0", - "zod": "3.21.4", - "zod-formik-adapter": "1.2.0" - }, - "devDependencies": { - "@reduxjs/toolkit": "1.6.1", - "@stripe/crypto": "0.0.4", - "@types/jest": "29.5.7", - "@types/lodash": "4.14.149", - "@types/numeral": "2.0.2", - "@types/object-hash": "3.0.6", - "@types/react": "19.0.0", - "@types/react-redux": "7.1.7", - "@types/redux-saga": "0.10.5", - "eslint": "8.56.0", - "jest": "29.7.0", - "react": "19.0.0", - "ts-patch": "3.1.1", - "typescript-transform-paths": "3.4.4" + "node": ">=8" }, - "peerDependencies": { - "@reduxjs/toolkit": "1.6.1", - "@solana/spl-token": "0.3.8", - "@solana/web3.js": "1.98.0", - "@stripe/crypto": "0.0.4", - "react": "19.0.0", - "redux-saga": "1.1.3" - } - }, - "packages/common/node_modules/@jup-ag/api": { - "version": "6.0.48", - "resolved": "https://registry.npmjs.org/@jup-ag/api/-/api-6.0.48.tgz", - "integrity": "sha512-H66m/cIqdVIA0qLI2X76UOhuMXkS/+uI6e4KQuU3fn6FSBhCX/9fwt/4IdwES4KWXwGtvqhsg2ExkB9tRtNhyA==", - "license": "MIT" - }, - "packages/common/node_modules/@metaplex-foundation/mpl-token-metadata": { - "version": "2.5.2", - "license": "MIT", - "dependencies": { - "@metaplex-foundation/beet": "^0.7.1", - "@metaplex-foundation/beet-solana": "^0.4.0", - "@metaplex-foundation/cusper": "^0.0.2", - "@solana/spl-token": "^0.3.6", - "@solana/web3.js": "^1.66.2", - "bn.js": "^5.2.0", - "debug": "^4.3.4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/common/node_modules/@metaplex-foundation/mpl-token-metadata/node_modules/bn.js": { - "version": "5.2.1", - "license": "MIT" - }, - "packages/common/node_modules/@types/numeral": { - "version": "2.0.2", + "node_modules/wrangler/node_modules/braces": { + "version": "3.0.2", "dev": true, - "license": "MIT" - }, - "packages/common/node_modules/dayjs": { - "version": "1.11.19", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", - "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", - "license": "MIT" - }, - "packages/common/node_modules/fxa-common-password-list": { - "version": "0.0.2", - "license": "MPL-2.0", - "dependencies": { - "bloomfilter": "0.0.18" - } - }, - "packages/common/node_modules/proxy-compare": { - "version": "3.0.1", - "license": "MIT" - }, - "packages/common/node_modules/proxy-memoize": { - "version": "3.0.1", "license": "MIT", "dependencies": { - "proxy-compare": "^3.0.0" + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "packages/common/node_modules/redux": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", + "node_modules/wrangler/node_modules/chokidar": { + "version": "3.6.0", + "dev": true, "license": "MIT", "dependencies": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } - }, - "packages/common/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "packages/common/node_modules/type-fest": { - "version": "4.26.1", - "license": "(MIT OR CC0-1.0)", + "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": ">=16" + "node": ">= 8.10.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "packages/common/node_modules/typescript-transform-paths": { - "version": "3.4.4", + "node_modules/wrangler/node_modules/esbuild": { + "version": "0.17.19", "dev": true, + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "minimatch": "^3.0.4" + "bin": { + "esbuild": "bin/esbuild" }, - "peerDependencies": { - "typescript": ">=3.6.5" + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" } }, - "packages/compose": { - "name": "@audius/compose", - "version": "1.0.31", - "license": "ISC", + "node_modules/wrangler/node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "@audius/commands": "*", - "@audius/sdk": "*", - "@audius/spl": "*", - "@pedalboard/archiver": "*", - "@pedalboard/solana-relay": "*", - "@pedalboard/staking": "*" + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "packages/create-audius-app": { - "version": "2.1.4", + "node_modules/wrangler/node_modules/fsevents": { + "version": "2.3.3", + "dev": true, "license": "MIT", - "bin": { - "create-audius-app": "dist/index.js" - }, - "devDependencies": { - "@playwright/test": "1.42.1", - "@types/cross-spawn": "6.0.6", - "@types/glob": "7.1.1", - "@types/prompts": "2.4.2", - "@types/tar": "6.1.11", - "@types/validate-npm-package-name": "4.0.2", - "commander": "9.2.0", - "execa": "2.0.3", - "fast-glob": "3.3.1", - "glob": "7.1.6", - "prompts": "2.4.2", - "tar": "6.2.0", - "tsup": "8.0.2", - "validate-npm-package-name": "5.0.0", - "vitest": "0.34.6" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "packages/create-audius-app/node_modules/execa": { - "version": "2.0.3", + "node_modules/wrangler/node_modules/glob-parent": { + "version": "5.1.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "cross-spawn": "^6.0.5", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": "^8.12.0 || >=9.7.0" + "node": ">= 6" } }, - "packages/create-audius-app/node_modules/fast-glob": { - "version": "3.3.1", + "node_modules/wrangler/node_modules/is-binary-path": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=8.6.0" + "node": ">=8" } }, - "packages/create-audius-app/node_modules/glob": { - "version": "7.1.6", + "node_modules/wrangler/node_modules/is-number": { + "version": "7.0.0", "dev": true, - "license": "ISC", - "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" - }, + "license": "MIT", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.12.0" } }, - "packages/create-audius-app/node_modules/glob-parent": { - "version": "5.1.2", + "node_modules/wrangler/node_modules/path-to-regexp": { + "version": "6.2.2", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/wrangler/node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "picomatch": "^2.2.1" }, "engines": { - "node": ">= 6" + "node": ">=8.10.0" } }, - "packages/create-audius-app/node_modules/minipass": { - "version": "5.0.0", + "node_modules/wrangler/node_modules/source-map": { + "version": "0.6.1", "dev": true, - "license": "ISC", + "license": "BSD-3-Clause", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "packages/create-audius-app/node_modules/mkdirp": { - "version": "1.0.4", + "node_modules/wrangler/node_modules/to-regex-range": { + "version": "5.0.1", "dev": true, "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "is-number": "^7.0.0" }, "engines": { - "node": ">=10" + "node": ">=8.0" } }, - "packages/create-audius-app/node_modules/npm-run-path": { - "version": "3.1.0", - "dev": true, + "node_modules/wrap-ansi": { + "version": "6.2.0", "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, - "packages/create-audius-app/node_modules/p-finally": { - "version": "2.0.1", - "dev": true, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "packages/create-audius-app/node_modules/path-key": { - "version": "3.1.1", - "dev": true, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "packages/create-audius-app/node_modules/tar": { - "version": "6.2.0", - "dev": true, - "license": "ISC", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", "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" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "packages/create-audius-app/node_modules/yallist": { - "version": "4.0.0", - "dev": true, + "node_modules/wrappy": { + "version": "1.0.2", "license": "ISC" }, - "packages/ddex-entrypoint": { - "name": "@audius/ddex-entrypoint", - "version": "0.0.0", - "extraneous": true, + "node_modules/writable-consumable-stream": { + "version": "3.0.1", + "license": "MIT", "dependencies": { - "@audius/harmony": "*", - "@audius/sdk": "*", - "@tanstack/react-query": "5.62.7", - "react": "18.3.1", - "react-dom": "18.3.1" - }, - "devDependencies": { - "@esbuild-plugins/node-globals-polyfill": "0.2.3", - "@types/react": "18.3.1", - "@types/react-dom": "18.3.1", - "@typescript-eslint/eslint-plugin": "6.0.0", - "@typescript-eslint/parser": "6.0.0", - "@vitejs/plugin-react": "4.0.3", - "env-cmd": "10.1.0", - "eslint": "8.56.0", - "eslint-plugin-react-hooks": "4.6.0", - "eslint-plugin-react-refresh": "0.4.3", - "typescript": "5.0.2", - "vite": "4.4.5", - "vite-plugin-node-polyfills": "0.17.0", - "wrangler": "3.30.1" + "consumable-stream": "^2.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle": { - "name": "@pedalboard/anti-abuse-oracle", - "version": "0.0.30", + "node_modules/write-file-atomic": { + "version": "2.4.3", + "license": "ISC", "dependencies": { - "@audius/sdk": "*", - "@audius/sdk-legacy": "npm:@audius/sdk@5.0.0", - "@hono/node-server": "^1.13.7", - "@pedalboard/basekit": "*", - "@pedalboard/logger": "*", - "@pedalboard/storage": "*", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "cross-fetch": "4.0.0", - "dotenv": "^16.4.7", - "express": "^4.17.1", - "hono": "^4.6.17", - "morgan": "^1.10.0", - "postgres": "^3.4.5" - }, - "devDependencies": { - "@types/body-parser": "^1.19.0", - "@types/cors": "2.8.10", - "@types/express": "4.17.12", - "@types/jest": "^26.0.22", - "@types/morgan": "^1.9.2", - "@types/node": "^15.12.2", - "@types/supertest": "^2.0.11", - "envalid": "8.0.0", - "esbuild": "^0.14.38", - "esbuild-register": "^3.3.2", - "eslint": "8.56.0", - "eslint-config-custom-server": "*", - "jest": "26.6.3", - "jest-presets": "*", - "nodemon": "^2.0.15", - "supertest": "^6.1.3", - "ts-node": "10.9.2", - "tsconfig": "*", - "typescript": "5.4.5" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@audius/fixed-decimal": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@audius/fixed-decimal/-/fixed-decimal-0.1.0.tgz", - "integrity": "sha512-iwafMiqtRuf3eaE+j/EDqAkRRxtWB8g/QgqukUbw2D1KiYiSZblakWs7Q+tdnTBKml1oB0nrGHSKvVPEBxbSRQ==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@audius/sdk": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@audius/sdk/-/sdk-5.0.0.tgz", - "integrity": "sha512-W8nBFdNIADbwU2YNIDXJL44Qx+wf7RtNZ47Ttv/tI7p1+hLMPpJU8gq7YXK5gZvx9NGgQMWSVAQQ1nCra7HbRw==", - "dependencies": { - "@audius/fixed-decimal": "0.1.0", - "@audius/hedgehog": "3.0.0-alpha.1", - "@audius/spl": "1.0.1", - "@babel/core": "^7.23.7", - "@babel/plugin-proposal-class-static-block": "7.21.0", - "@babel/runtime": "7.18.3", - "@certusone/wormhole-sdk": "0.1.1", - "@ethersproject/solidity": "5.0.5", - "@improbable-eng/grpc-web-node-http-transport": "0.15.0", - "@noble/hashes": "^1.3.0", - "@noble/secp256k1": "1.7.0", - "@project-serum/anchor": "0.24.1", - "@scure/base": "1.1.1", - "@solana/spl-token": "0.3.8", - "@solana/web3.js": "1.93.4", - "abi-decoder": "2.4.0", - "ajv": "6.12.2", - "assert": "2.0.0", - "async-retry": "1.3.1", - "axios": "0.19.2", - "bn.js": "5.2.1", - "borsh": "0.4.0", - "browser-or-node": "^2.1.1", - "bs58": "4.0.1", - "cipher-base": "1.0.4", - "crc-32": "1.2.2", - "cross-fetch": "4.0.0", - "elliptic": "6.5.4", - "esm": "3.2.25", - "eth-sig-util": "2.5.4", - "ethereumjs-tx": "2.1.2", - "ethereumjs-util": "7.1.4", - "ethereumjs-wallet": "1.0.2", - "ethers": "5.4.7", - "file-type": "16.5.3", - "form-data": "3.0.0", - "hashids": "2.2.10", - "interface-blockstore": "2.0.3", - "interface-store": "2.0.2", - "ipfs-unixfs-importer": "9.0.6", - "isomorphic-ws": "5.0.0", - "jsonschema": "1.2.6", - "keccak256": "1.0.2", - "lodash": "4.17.21", - "micro-aes-gcm": "0.4.0", - "multiformats": "9.9.0", - "node-abort-controller": "3.1.1", - "node-localstorage": "1.3.1", - "proper-url-join": "2.1.1", - "rollup-plugin-shim": "1.0.0", - "safe-buffer": "5.2.1", - "secp256k1": "4.0.2", - "semver": "6.3.0", - "snakecase-keys": "5.4.5", - "stream-browserify": "3.0.0", - "strtok3": "6.3.0", - "token-types": "4.2.1", - "ulid": "2.3.0", - "url": "0.11.1", - "web3": "1.8.2", - "xmlhttprequest": "1.8.0", - "zod": "3.21.4" - }, + "node_modules/ws": { + "version": "7.5.10", + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@audius/sdk-legacy": { - "name": "@audius/sdk", - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@audius/sdk/-/sdk-5.0.0.tgz", - "integrity": "sha512-W8nBFdNIADbwU2YNIDXJL44Qx+wf7RtNZ47Ttv/tI7p1+hLMPpJU8gq7YXK5gZvx9NGgQMWSVAQQ1nCra7HbRw==", + "node_modules/xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "license": "Apache-2.0", "dependencies": { - "@audius/fixed-decimal": "0.1.0", - "@audius/hedgehog": "3.0.0-alpha.1", - "@audius/spl": "1.0.1", - "@babel/core": "^7.23.7", - "@babel/plugin-proposal-class-static-block": "7.21.0", - "@babel/runtime": "7.18.3", - "@certusone/wormhole-sdk": "0.1.1", - "@ethersproject/solidity": "5.0.5", - "@improbable-eng/grpc-web-node-http-transport": "0.15.0", - "@noble/hashes": "^1.3.0", - "@noble/secp256k1": "1.7.0", - "@project-serum/anchor": "0.24.1", - "@scure/base": "1.1.1", - "@solana/spl-token": "0.3.8", - "@solana/web3.js": "1.93.4", - "abi-decoder": "2.4.0", - "ajv": "6.12.2", - "assert": "2.0.0", - "async-retry": "1.3.1", - "axios": "0.19.2", - "bn.js": "5.2.1", - "borsh": "0.4.0", - "browser-or-node": "^2.1.1", - "bs58": "4.0.1", - "cipher-base": "1.0.4", - "crc-32": "1.2.2", - "cross-fetch": "4.0.0", - "elliptic": "6.5.4", - "esm": "3.2.25", - "eth-sig-util": "2.5.4", - "ethereumjs-tx": "2.1.2", - "ethereumjs-util": "7.1.4", - "ethereumjs-wallet": "1.0.2", - "ethers": "5.4.7", - "file-type": "16.5.3", - "form-data": "3.0.0", - "hashids": "2.2.10", - "interface-blockstore": "2.0.3", - "interface-store": "2.0.2", - "ipfs-unixfs-importer": "9.0.6", - "isomorphic-ws": "5.0.0", - "jsonschema": "1.2.6", - "keccak256": "1.0.2", - "lodash": "4.17.21", - "micro-aes-gcm": "0.4.0", - "multiformats": "9.9.0", - "node-abort-controller": "3.1.1", - "node-localstorage": "1.3.1", - "proper-url-join": "2.1.1", - "rollup-plugin-shim": "1.0.0", - "safe-buffer": "5.2.1", - "secp256k1": "4.0.2", - "semver": "6.3.0", - "snakecase-keys": "5.4.5", - "stream-browserify": "3.0.0", - "strtok3": "6.3.0", - "token-types": "4.2.1", - "ulid": "2.3.0", - "url": "0.11.1", - "web3": "1.8.2", - "xmlhttprequest": "1.8.0", - "zod": "3.21.4" + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=10.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@audius/spl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@audius/spl/-/spl-1.0.1.tgz", - "integrity": "sha512-vhW1UEzQHPeMuxuYGIiJJoD+a8l7Ui7Fqsne5R1LcFXJek5dlKTAvILY9qWSqWRFeAIVY8Uo/dKmmJ1Y2OteIA==", - "dependencies": { - "@coral-xyz/anchor": "0.29.0", - "@noble/hashes": "1.4.0", - "@solana/buffer-layout": "4.0.1", - "@solana/buffer-layout-utils": "0.2.0", - "@solana/spl-token": "0.3.8", - "@solana/web3.js": "1.93.4" + "node_modules/xcode/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "node_modules/xdg-basedir": { + "version": "4.0.0", "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">= 10.14.2" + "node": ">=8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, + "node_modules/xhr": { + "version": "2.6.0", + "license": "MIT", "dependencies": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">= 10.14.2" + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, + "node_modules/xhr-request": { + "version": "1.1.0", + "license": "MIT", "dependencies": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, + "node_modules/xhr-request-promise": { + "version": "0.1.3", + "license": "MIT", "dependencies": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, + "xhr-request": "^1.1.0" + } + }, + "node_modules/xhr-request/node_modules/decode-uri-component": { + "version": "0.2.2", + "license": "MIT", "engines": { - "node": ">= 10.14.2" + "node": ">=0.10" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, + "node_modules/xhr-request/node_modules/decompress-response": { + "version": "3.3.0", + "license": "MIT", "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" + "mimic-response": "^1.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">=4" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, + "node_modules/xhr-request/node_modules/mimic-response": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/xhr-request/node_modules/query-string": { + "version": "5.1.1", + "license": "MIT", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" }, "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "node-notifier": "^8.0.0" + "node": ">=0.10.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, + "node_modules/xhr-request/node_modules/simple-get": { + "version": "2.8.2", + "license": "MIT", "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/xhr-request/node_modules/strict-uri-encode": { + "version": "1.1.0", + "license": "MIT", "engines": { - "node": ">= 10.14.2" + "node": ">=0.10.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, + "node_modules/xhr2": { + "version": "0.1.4", + "license": "MIT", "engines": { - "node": ">= 10.14.2" + "node": ">= 0.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, + "node_modules/xhr2-cookies": { + "version": "1.1.0", + "license": "MIT", "dependencies": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - }, - "engines": { - "node": ">= 10.14.2" + "cookiejar": "^2.1.1" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, + "node_modules/xml-formatter": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-3.6.7.tgz", + "integrity": "sha512-IsfFYJQuoDqtUlKhm4EzeoBOb+fQwzQVeyxxAQ0sThn/nFnQmyLPTplqq4yRhaOENH/tAyujD2TBfIYzUKB6hg==", + "license": "MIT", "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "xml-parser-xo": "^4.1.5" }, "engines": { - "node": ">= 10.14.2" + "node": ">= 16" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "node_modules/xml-name-validator": { + "version": "4.0.0", "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">= 10.14.2" + "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/xml-parser-xo": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-4.1.5.tgz", + "integrity": "sha512-TxyRxk9sTOUg3glxSIY6f0nfuqRll2OEF8TspLgh5mZkLuBgheCn3zClcDSGJ58TvNmiwyCCuat4UajPud/5Og==", + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.1" + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" }, "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=4.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "license": "MIT", "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=4.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "license": "MIT", "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=8.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "node_modules/xmlchars": { + "version": "2.2.0", "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } + "license": "MIT" }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@solana/web3.js": { - "version": "1.93.4", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.93.4.tgz", - "integrity": "sha512-6hHtSYmkUPwcm3eGeqBanMT3pDAhTprrm2IUoboSjNN4gKCBEkY9uIeS2TZKLpsGY+R6fDub5pRi+e4xFVv55w==", - "dependencies": { - "@babel/runtime": "^7.24.7", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "@solana/buffer-layout": "^4.0.1", - "agentkeepalive": "^4.5.0", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.3", - "fast-stable-stringify": "^1.0.0", - "jayson": "^4.1.0", - "node-fetch": "^2.7.0", - "rpc-websockets": "^9.0.2", - "superstruct": "^1.0.4" + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@solana/web3.js/node_modules/@babel/runtime": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", - "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz", + "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==", "engines": { - "node": ">=6.9.0" + "node": ">=0.4.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@solana/web3.js/node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "node_modules/xstream": { + "version": "11.14.0", + "license": "MIT", "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" + "globalthis": "^1.0.1", + "symbol-observable": "^2.0.3" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", - "dev": true + "node_modules/xtend": { + "version": "4.0.2", + "license": "MIT", + "engines": { + "node": ">=0.4" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/express": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz", - "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==", + "node_modules/xxhash-wasm": { + "version": "1.0.2", "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "license": "ISC", + "engines": { + "node": ">=10" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/jest": { - "version": "26.0.24", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", - "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", - "dev": true, - "dependencies": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" + "node_modules/yaeti": { + "version": "0.0.6", + "license": "MIT", + "engines": { + "node": ">=0.10.32" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==" + "node_modules/yallist": { + "version": "3.1.1", + "license": "ISC" }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" + "node_modules/yaml": { + "version": "1.10.2", + "license": "ISC", + "engines": { + "node": ">= 6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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, + "node_modules/yamljs": { + "version": "0.3.0", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, "bin": { - "acorn": "bin/acorn" + "json2yaml": "bin/json2yaml", + "yaml2json": "bin/yaml2json" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "license": "MIT", + "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": ">=0.4.0" + "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "node_modules/yargs-parser": { + "version": "20.2.9", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", "dev": true, + "license": "MIT", "dependencies": { - "acorn": "^8.11.0" + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=10" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "license": "MIT", + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "license": "ISC", "engines": { - "node": ">= 8" + "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "node_modules/yauzl": { + "version": "2.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/async-retry": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz", - "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==", + "node_modules/yazl": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-3.3.1.tgz", + "integrity": "sha512-BbETDVWG+VcMUle37k5Fqp//7SDOK2/1+T7X8TD96M3D9G8jK5VLUdQVdVjGi8im7FGkazX7kk5hkU8X4L5Bng==", + "license": "MIT", "dependencies": { - "retry": "0.12.0" + "buffer-crc32": "^1.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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/yazl/node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=8.0.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "license": "MIT", + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/borsh": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.4.0.tgz", - "integrity": "sha512-aX6qtLya3K0AkT66CmYWCCDr77qsE9arV05OmdFpmat9qu8Pg9J5tBUPDztAW5fNh/d/MyVG/OYziP52Ndzx1g==", + "node_modules/youch": { + "version": "3.3.3", + "dev": true, + "license": "MIT", "dependencies": { - "@types/bn.js": "^4.11.5", - "bn.js": "^5.0.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" + "cookie": "^0.5.0", + "mustache": "^4.2.0", + "stacktracey": "^2.1.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/borsh/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "node_modules/youch/node_modules/cookie": { + "version": "0.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "license": "MIT" + }, + "node_modules/zen-observable-ts": { + "version": "1.2.5", + "license": "MIT", "dependencies": { - "@types/node": "*" + "zen-observable": "0.8.15" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", "dependencies": { - "fill-range": "^7.1.1" + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/zip-stream/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "engines": { - "node": ">= 0.8" + "node": ">=0.8.x" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" + "node_modules/zip-stream/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/zod": { + "version": "3.21.4", + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/colinhacks" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/zod-formik-adapter": { + "version": "1.2.0", + "license": "MIT", + "peerDependencies": { + "formik": "^2.2.9", + "zod": "^3.14.4" + } + }, + "node_modules/zod-validation-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-2.1.0.tgz", + "integrity": "sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "zod": "^3.18.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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" - }, + "node_modules/zustand": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.0.tgz", + "integrity": "sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==", + "license": "MIT", "engines": { - "node": ">= 8.10.0" + "node": ">=12.20.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "node_modules/zwitch": { + "version": "2.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "packages/commands": { + "name": "@audius/commands", + "version": "1.0.31", + "license": "Apache-2.0", "dependencies": { - "object-assign": "^4", - "vary": "^1" + "@audius/hedgehog": "3.0.0-alpha.1", + "@audius/sdk": "*", + "@audius/spl": "*", + "@commander-js/extra-typings": "12.1.0", + "@solana/spl-token": "0.3.8", + "@solana/web3.js": "1.98.0", + "bn.js": "^5.2.1", + "chalk": "^5.0.1", + "commander": "^9.4.0", + "esbuild": "^0.24.0" }, - "engines": { - "node": ">= 0.10" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", - "dependencies": { - "node-fetch": "^2.6.12" + "bin": { + "audius-cmd": "dist/index.js" + }, + "devDependencies": { + "bats": "^1.8.2", + "bats-assert": "^2.0.0", + "bats-support": "0.3.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "packages/commands/node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "packages/commands/node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 0.8" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "packages/commands/node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, + "packages/commands/node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=0.3.1" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true, + "packages/commands/node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 10.14.2" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/dotenv": { - "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "packages/commands/node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "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" + "packages/commands/node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true, + "packages/commands/node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/envalid": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/envalid/-/envalid-8.0.0.tgz", - "integrity": "sha512-PGeYJnJB5naN0ME6SH8nFcDj9HVbLpYIfg1p5lAyM9T4cH2lwtu2fLbozC/bq+HUUOIFxhX/LP0/GmlqPHT4tQ==", - "dev": true, - "dependencies": { - "tslib": "2.6.2" - }, + "packages/commands/node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8.12" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/esbuild": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", - "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, + "packages/commands/node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/linux-loong64": "0.14.54", - "esbuild-android-64": "0.14.54", - "esbuild-android-arm64": "0.14.54", - "esbuild-darwin-64": "0.14.54", - "esbuild-darwin-arm64": "0.14.54", - "esbuild-freebsd-64": "0.14.54", - "esbuild-freebsd-arm64": "0.14.54", - "esbuild-linux-32": "0.14.54", - "esbuild-linux-64": "0.14.54", - "esbuild-linux-arm": "0.14.54", - "esbuild-linux-arm64": "0.14.54", - "esbuild-linux-mips64le": "0.14.54", - "esbuild-linux-ppc64le": "0.14.54", - "esbuild-linux-riscv64": "0.14.54", - "esbuild-linux-s390x": "0.14.54", - "esbuild-netbsd-64": "0.14.54", - "esbuild-openbsd-64": "0.14.54", - "esbuild-sunos-64": "0.14.54", - "esbuild-windows-32": "0.14.54", - "esbuild-windows-64": "0.14.54", - "esbuild-windows-arm64": "0.14.54" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/eth-sig-util": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz", - "integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==", - "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", - "dependencies": { - "ethereumjs-abi": "0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" + "packages/commands/node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/eth-sig-util/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "packages/commands/node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "packages/commands/node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "deprecated": "This library has been deprecated and usage is discouraged.", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" + "packages/commands/node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-abi/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" + "packages/commands/node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "packages/commands/node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-util": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", - "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, + "packages/commands/node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=10.0.0" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-wallet": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", - "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", - "deprecated": "New package name format for new versions: @ethereumjs/wallet. Please update.", - "dependencies": { - "aes-js": "^3.1.2", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.1.2", - "randombytes": "^2.1.0", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^8.3.2" + "packages/commands/node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, + "packages/commands/node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">= 10.14.2" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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, - "dependencies": { - "to-regex-range": "^5.0.1" - }, + "packages/commands/node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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, + "packages/commands/node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], "optional": true, "os": [ - "darwin" + "win32" ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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" - }, + "packages/commands/node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 6" + "node": ">=18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/hashids": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/hashids/-/hashids-2.2.10.tgz", - "integrity": "sha512-nXnYums7F8B5Y+GSThutLPlKMaamW1yjWNZVt0WModiJfdjaDZHnhYTWblS+h1OoBx3yjwiBwxldPP3nIbFSSA==" + "packages/commands/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" }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, + "packages/commands/node_modules/commander": { + "version": "9.5.0", + "license": "MIT", "engines": { - "node": ">= 0.8" + "node": "^12.20.0 || >=14" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "packages/commands/node_modules/esbuild": { + "version": "0.24.0", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=0.10.0" + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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, + "packages/common": { + "name": "@audius/common", + "version": "1.5.78", "dependencies": { - "binary-extensions": "^2.0.0" + "@audius/fetch-nft": "0.2.8", + "@audius/fixed-decimal": "*", + "@audius/sdk": "*", + "@fingerprintjs/fingerprintjs-pro": "3.5.6", + "@jup-ag/api": "6.0.48", + "@metaplex-foundation/mpl-token-metadata": "2.5.2", + "@optimizely/optimizely-sdk": "4.0.0", + "@tanstack/react-query": "5.62.7", + "@yornaath/batshit": "0.10.1", + "async-retry": "1.3.3", + "dayjs": "^1.11.19", + "formik": "2.4.6", + "fxa-common-password-list": "0.0.2", + "hashids": "2.2.1", + "immer": "9.0.1", + "lodash": "4.17.21", + "numeral": "2.0.6", + "object-hash": "2.2.0", + "proxy-memoize": "3.0.1", + "query-string": "8.1.0", + "react-redux": "8.0.5", + "react-use": "17.4.0", + "redux": "4.0.5", + "redux-persist": "6.0.0", + "reselect": "4.0.0", + "type-fest": "4.26.1", + "typed-redux-saga": "1.3.1", + "typesafe-actions": "5.1.0", + "ulid": "2.3.0", + "zod": "3.21.4", + "zod-formik-adapter": "1.2.0" }, - "engines": { - "node": ">=8" + "devDependencies": { + "@reduxjs/toolkit": "1.6.1", + "@stripe/crypto": "0.0.4", + "@types/jest": "29.5.7", + "@types/lodash": "4.14.149", + "@types/numeral": "2.0.2", + "@types/object-hash": "3.0.6", + "@types/react": "19.0.0", + "@types/react-redux": "7.1.7", + "@types/redux-saga": "0.10.5", + "eslint": "8.56.0", + "jest": "29.7.0", + "react": "19.0.0", + "ts-patch": "3.1.1", + "typescript-transform-paths": "3.4.4" + }, + "peerDependencies": { + "@reduxjs/toolkit": "1.6.1", + "@solana/spl-token": "0.3.8", + "@solana/web3.js": "1.98.0", + "@stripe/crypto": "0.0.4", + "react": "19.0.0", + "redux-saga": "1.1.3" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, + "packages/common/node_modules/@jup-ag/api": { + "version": "6.0.48", + "resolved": "https://registry.npmjs.org/@jup-ag/api/-/api-6.0.48.tgz", + "integrity": "sha512-H66m/cIqdVIA0qLI2X76UOhuMXkS/+uI6e4KQuU3fn6FSBhCX/9fwt/4IdwES4KWXwGtvqhsg2ExkB9tRtNhyA==", + "license": "MIT" + }, + "packages/common/node_modules/@metaplex-foundation/mpl-token-metadata": { + "version": "2.5.2", + "license": "MIT", "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" + "@metaplex-foundation/beet": "^0.7.1", + "@metaplex-foundation/beet-solana": "^0.4.0", + "@metaplex-foundation/cusper": "^0.0.2", + "@solana/spl-token": "^0.3.6", + "@solana/web3.js": "^1.66.2", + "bn.js": "^5.2.0", + "debug": "^4.3.4" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==", + "packages/common/node_modules/@metaplex-foundation/mpl-token-metadata/node_modules/bn.js": { + "version": "5.2.1", + "license": "MIT" + }, + "packages/common/node_modules/@types/numeral": { + "version": "2.0.2", "dev": true, - "engines": { - "node": ">=0.12.0" + "license": "MIT" + }, + "packages/common/node_modules/dayjs": { + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "license": "MIT" + }, + "packages/common/node_modules/fxa-common-password-list": { + "version": "0.0.2", + "license": "MPL-2.0", + "dependencies": { + "bloomfilter": "0.0.18" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, + "packages/common/node_modules/proxy-compare": { + "version": "3.0.1", + "license": "MIT" + }, + "packages/common/node_modules/proxy-memoize": { + "version": "3.0.1", + "license": "MIT", "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, + "proxy-compare": "^3.0.0" + } + }, + "packages/common/node_modules/redux": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", + "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" + } + }, + "packages/common/node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "packages/common/node_modules/type-fest": { + "version": "4.26.1", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/common/node_modules/typescript-transform-paths": { + "version": "3.4.4", "dev": true, + "license": "MIT", "dependencies": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" + "minimatch": "^3.0.4" }, + "peerDependencies": { + "typescript": ">=3.6.5" + } + }, + "packages/compose": { + "name": "@audius/compose", + "version": "1.0.31", + "license": "ISC", + "dependencies": { + "@audius/commands": "*", + "@audius/sdk": "*", + "@audius/spl": "*", + "@pedalboard/archiver": "*", + "@pedalboard/staking": "*" + } + }, + "packages/create-audius-app": { + "version": "2.1.4", + "license": "MIT", "bin": { - "jest": "bin/jest.js" + "create-audius-app": "dist/index.js" }, - "engines": { - "node": ">= 10.14.2" + "devDependencies": { + "@playwright/test": "1.42.1", + "@types/cross-spawn": "6.0.6", + "@types/glob": "7.1.1", + "@types/prompts": "2.4.2", + "@types/tar": "6.1.11", + "@types/validate-npm-package-name": "4.0.2", + "commander": "9.2.0", + "execa": "2.0.3", + "fast-glob": "3.3.1", + "glob": "7.1.6", + "prompts": "2.4.2", + "tar": "6.2.0", + "tsup": "8.0.2", + "validate-npm-package-name": "5.0.0", + "vitest": "0.34.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "packages/create-audius-app/node_modules/execa": { + "version": "2.0.3", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" + "cross-spawn": "^6.0.5", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^8.12.0 || >=9.7.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "packages/create-audius-app/node_modules/fast-glob": { + "version": "3.3.1", "dev": true, + "license": "MIT", "dependencies": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "bin": { - "jest": "bin/jest.js" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">= 10.14.2" + "node": ">=8.6.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "packages/create-audius-app/node_modules/glob": { + "version": "7.1.6", "dev": true, + "license": "ISC", "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" + "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": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" + "node": "*" }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "packages/create-audius-app/node_modules/glob-parent": { + "version": "5.1.2", "dev": true, + "license": "ISC", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": ">= 6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "packages/create-audius-app/node_modules/minipass": { + "version": "5.0.0", "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "packages/create-audius-app/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">= 10.14.2" + "node": ">=10" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "packages/create-audius-app/node_modules/npm-run-path": { + "version": "3.1.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "path-key": "^3.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">=8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "packages/create-audius-app/node_modules/p-finally": { + "version": "2.0.1", "dev": true, + "license": "MIT", "engines": { - "node": ">= 10.14.2" + "node": ">=8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "packages/create-audius-app/node_modules/path-key": { + "version": "3.1.1", "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, + "license": "MIT", "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "fsevents": "^2.1.2" + "node": ">=8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "packages/create-audius-app/node_modules/tar": { + "version": "6.2.0", "dev": true, + "license": "ISC", "dependencies": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "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.14.2" + "node": ">=10" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "packages/create-audius-app/node_modules/yallist": { + "version": "4.0.0", "dev": true, + "license": "ISC" + }, + "packages/ddex-entrypoint": { + "name": "@audius/ddex-entrypoint", + "version": "0.0.0", + "extraneous": true, "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "@audius/harmony": "*", + "@audius/sdk": "*", + "@tanstack/react-query": "5.62.7", + "react": "18.3.1", + "react-dom": "18.3.1" }, - "engines": { - "node": ">= 10.14.2" + "devDependencies": { + "@esbuild-plugins/node-globals-polyfill": "0.2.3", + "@types/react": "18.3.1", + "@types/react-dom": "18.3.1", + "@typescript-eslint/eslint-plugin": "6.0.0", + "@typescript-eslint/parser": "6.0.0", + "@vitejs/plugin-react": "4.0.3", + "env-cmd": "10.1.0", + "eslint": "8.56.0", + "eslint-plugin-react-hooks": "4.6.0", + "eslint-plugin-react-refresh": "0.4.3", + "typescript": "5.0.2", + "vite": "4.4.5", + "vite-plugin-node-polyfills": "0.17.0", + "wrangler": "3.30.1" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle": { + "name": "@pedalboard/anti-abuse-oracle", + "version": "0.0.30", "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" + "@audius/sdk": "*", + "@audius/sdk-legacy": "npm:@audius/sdk@5.0.0", + "@hono/node-server": "^1.13.7", + "@pedalboard/basekit": "*", + "@pedalboard/logger": "*", + "@pedalboard/storage": "*", + "body-parser": "^1.19.0", + "cors": "^2.8.5", + "cross-fetch": "4.0.0", + "dotenv": "^16.4.7", + "express": "^4.17.1", + "hono": "^4.6.17", + "morgan": "^1.10.0", + "postgres": "^3.4.5" }, - "engines": { - "node": ">= 10.14.2" + "devDependencies": { + "@types/body-parser": "^1.19.0", + "@types/cors": "2.8.10", + "@types/express": "4.17.12", + "@types/jest": "^26.0.22", + "@types/morgan": "^1.9.2", + "@types/node": "^15.12.2", + "@types/supertest": "^2.0.11", + "envalid": "8.0.0", + "esbuild": "^0.14.38", + "esbuild-register": "^3.3.2", + "eslint": "8.56.0", + "eslint-config-custom-server": "*", + "jest": "26.6.3", + "jest-presets": "*", + "nodemon": "^2.0.15", + "supertest": "^6.1.3", + "ts-node": "10.9.2", + "tsconfig": "*", + "typescript": "5.4.5" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@audius/fixed-decimal": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@audius/fixed-decimal/-/fixed-decimal-0.1.0.tgz", + "integrity": "sha512-iwafMiqtRuf3eaE+j/EDqAkRRxtWB8g/QgqukUbw2D1KiYiSZblakWs7Q+tdnTBKml1oB0nrGHSKvVPEBxbSRQ==" + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@audius/sdk": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@audius/sdk/-/sdk-5.0.0.tgz", + "integrity": "sha512-W8nBFdNIADbwU2YNIDXJL44Qx+wf7RtNZ47Ttv/tI7p1+hLMPpJU8gq7YXK5gZvx9NGgQMWSVAQQ1nCra7HbRw==", "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*" + "@audius/fixed-decimal": "0.1.0", + "@audius/hedgehog": "3.0.0-alpha.1", + "@audius/spl": "1.0.1", + "@babel/core": "^7.23.7", + "@babel/plugin-proposal-class-static-block": "7.21.0", + "@babel/runtime": "7.18.3", + "@certusone/wormhole-sdk": "0.1.1", + "@ethersproject/solidity": "5.0.5", + "@improbable-eng/grpc-web-node-http-transport": "0.15.0", + "@noble/hashes": "^1.3.0", + "@noble/secp256k1": "1.7.0", + "@project-serum/anchor": "0.24.1", + "@scure/base": "1.1.1", + "@solana/spl-token": "0.3.8", + "@solana/web3.js": "1.93.4", + "abi-decoder": "2.4.0", + "ajv": "6.12.2", + "assert": "2.0.0", + "async-retry": "1.3.1", + "axios": "0.19.2", + "bn.js": "5.2.1", + "borsh": "0.4.0", + "browser-or-node": "^2.1.1", + "bs58": "4.0.1", + "cipher-base": "1.0.4", + "crc-32": "1.2.2", + "cross-fetch": "4.0.0", + "elliptic": "6.5.4", + "esm": "3.2.25", + "eth-sig-util": "2.5.4", + "ethereumjs-tx": "2.1.2", + "ethereumjs-util": "7.1.4", + "ethereumjs-wallet": "1.0.2", + "ethers": "5.4.7", + "file-type": "16.5.3", + "form-data": "3.0.0", + "hashids": "2.2.10", + "interface-blockstore": "2.0.3", + "interface-store": "2.0.2", + "ipfs-unixfs-importer": "9.0.6", + "isomorphic-ws": "5.0.0", + "jsonschema": "1.2.6", + "keccak256": "1.0.2", + "lodash": "4.17.21", + "micro-aes-gcm": "0.4.0", + "multiformats": "9.9.0", + "node-abort-controller": "3.1.1", + "node-localstorage": "1.3.1", + "proper-url-join": "2.1.1", + "rollup-plugin-shim": "1.0.0", + "safe-buffer": "5.2.1", + "secp256k1": "4.0.2", + "semver": "6.3.0", + "snakecase-keys": "5.4.5", + "stream-browserify": "3.0.0", + "strtok3": "6.3.0", + "token-types": "4.2.1", + "ulid": "2.3.0", + "url": "0.11.1", + "web3": "1.8.2", + "xmlhttprequest": "1.8.0", + "zod": "3.21.4" }, "engines": { - "node": ">= 10.14.2" + "node": ">=14.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@audius/sdk-legacy": { + "name": "@audius/sdk", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@audius/sdk/-/sdk-5.0.0.tgz", + "integrity": "sha512-W8nBFdNIADbwU2YNIDXJL44Qx+wf7RtNZ47Ttv/tI7p1+hLMPpJU8gq7YXK5gZvx9NGgQMWSVAQQ1nCra7HbRw==", + "dependencies": { + "@audius/fixed-decimal": "0.1.0", + "@audius/hedgehog": "3.0.0-alpha.1", + "@audius/spl": "1.0.1", + "@babel/core": "^7.23.7", + "@babel/plugin-proposal-class-static-block": "7.21.0", + "@babel/runtime": "7.18.3", + "@certusone/wormhole-sdk": "0.1.1", + "@ethersproject/solidity": "5.0.5", + "@improbable-eng/grpc-web-node-http-transport": "0.15.0", + "@noble/hashes": "^1.3.0", + "@noble/secp256k1": "1.7.0", + "@project-serum/anchor": "0.24.1", + "@scure/base": "1.1.1", + "@solana/spl-token": "0.3.8", + "@solana/web3.js": "1.93.4", + "abi-decoder": "2.4.0", + "ajv": "6.12.2", + "assert": "2.0.0", + "async-retry": "1.3.1", + "axios": "0.19.2", + "bn.js": "5.2.1", + "borsh": "0.4.0", + "browser-or-node": "^2.1.1", + "bs58": "4.0.1", + "cipher-base": "1.0.4", + "crc-32": "1.2.2", + "cross-fetch": "4.0.0", + "elliptic": "6.5.4", + "esm": "3.2.25", + "eth-sig-util": "2.5.4", + "ethereumjs-tx": "2.1.2", + "ethereumjs-util": "7.1.4", + "ethereumjs-wallet": "1.0.2", + "ethers": "5.4.7", + "file-type": "16.5.3", + "form-data": "3.0.0", + "hashids": "2.2.10", + "interface-blockstore": "2.0.3", + "interface-store": "2.0.2", + "ipfs-unixfs-importer": "9.0.6", + "isomorphic-ws": "5.0.0", + "jsonschema": "1.2.6", + "keccak256": "1.0.2", + "lodash": "4.17.21", + "micro-aes-gcm": "0.4.0", + "multiformats": "9.9.0", + "node-abort-controller": "3.1.1", + "node-localstorage": "1.3.1", + "proper-url-join": "2.1.1", + "rollup-plugin-shim": "1.0.0", + "safe-buffer": "5.2.1", + "secp256k1": "4.0.2", + "semver": "6.3.0", + "snakecase-keys": "5.4.5", + "stream-browserify": "3.0.0", + "strtok3": "6.3.0", + "token-types": "4.2.1", + "ulid": "2.3.0", + "url": "0.11.1", + "web3": "1.8.2", + "xmlhttprequest": "1.8.0", + "zod": "3.21.4" + }, "engines": { - "node": ">= 10.14.2" + "node": ">=14.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-resolve": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@audius/spl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@audius/spl/-/spl-1.0.1.tgz", + "integrity": "sha512-vhW1UEzQHPeMuxuYGIiJJoD+a8l7Ui7Fqsne5R1LcFXJek5dlKTAvILY9qWSqWRFeAIVY8Uo/dKmmJ1Y2OteIA==", + "dependencies": { + "@coral-xyz/anchor": "0.29.0", + "@noble/hashes": "1.4.0", + "@solana/buffer-layout": "4.0.1", + "@solana/buffer-layout-utils": "0.2.0", + "@solana/spl-token": "0.3.8", + "@solana/web3.js": "1.93.4" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/console": { "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", "dev": true, "dependencies": { "@jest/types": "^26.6.2", + "@types/node": "*", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", + "jest-message-util": "^26.6.2", "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", "slash": "^3.0.0" }, "engines": { "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-runner": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/core": { "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", "dev": true, "dependencies": { "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", + "@jest/reporters": "^26.6.2", "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", "@jest/types": "^26.6.2", "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.7.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", "dev": true, "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", "jest-message-util": "^26.6.2", "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" + "jest-util": "^26.6.2" }, - "bin": { - "jest-runtime": "bin/jest-runtime.js" + "engines": { + "node": ">= 10.14.2" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" }, "engines": { "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-serializer": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/reporters": { "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", "dev": true, "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" }, "engines": { "node": ">= 10.14.2" + }, + "optionalDependencies": { + "node-notifier": "^8.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-snapshot": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/source-map": { "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", "dev": true, "dependencies": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", + "callsites": "^3.0.0", "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" + "source-map": "^0.6.0" }, "engines": { "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-snapshot/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", + "@jest/test-result": "^26.6.2", "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" }, "engines": { "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-validate": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/transform": { "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", "dev": true, "dependencies": { + "@babel/core": "^7.1.0", "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", + "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" }, "engines": { "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-watcher": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@jest/types": { "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "dev": true, "dependencies": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" }, "engines": { "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "@noble/hashes": "1.7.1" }, "engines": { - "node": ">= 10.13.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jsonschema": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.6.tgz", - "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "engines": { - "node": "*" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": ">= 16" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", "dev": true, "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" + "@sinonjs/commons": "^1.7.0" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@solana/web3.js": { + "version": "1.93.4", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.93.4.tgz", + "integrity": "sha512-6hHtSYmkUPwcm3eGeqBanMT3pDAhTprrm2IUoboSjNN4gKCBEkY9uIeS2TZKLpsGY+R6fDub5pRi+e4xFVv55w==", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^4.1.0", + "node-fetch": "^2.7.0", + "rpc-websockets": "^9.0.2", + "superstruct": "^1.0.4" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@solana/web3.js/node_modules/@babel/runtime": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", + "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" + "node": ">=6.9.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@solana/web3.js/node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/cors": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", + "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", + "dev": true + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/express": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz", + "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/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==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/jest": { + "version": "26.0.24", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", + "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/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 + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==" }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/@types/yargs": { + "version": "15.0.19", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", + "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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": { - "semver": "bin/semver" + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/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==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "acorn": "^8.11.0" }, "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ee-first": "1.1.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">= 10" + "node": ">= 8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/async-retry": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz", + "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==", "dependencies": { - "side-channel": "^1.0.6" - }, + "retry": "0.12.0" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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": ">=0.6" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", "unpipe": "1.0.0" }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/borsh": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.4.0.tgz", + "integrity": "sha512-aX6qtLya3K0AkT66CmYWCCDr77qsE9arV05OmdFpmat9qu8Pg9J5tBUPDztAW5fNh/d/MyVG/OYziP52Ndzx1g==", + "dependencies": { + "@types/bn.js": "^4.11.5", + "bn.js": "^5.0.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/borsh/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/readdirp": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/chokidar": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "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" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "dev": true + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, "engines": { - "node": ">= 4" + "node": ">= 0.10" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dependencies": { + "node-fetch": "^2.6.12" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dev": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "semver": "~7.0.0" - }, + "ms": "2.0.0" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "engines": { - "node": ">=8.10.0" + "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.3.1" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "engines": { - "node": ">= 0.8" + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/supertest": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", - "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", - "dev": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dependencies": { - "methods": "^1.1.2", - "superagent": "^8.1.2" - }, - "engines": { - "node": ">=6.4.0" + "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" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/envalid": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/envalid/-/envalid-8.0.0.tgz", + "integrity": "sha512-PGeYJnJB5naN0ME6SH8nFcDj9HVbLpYIfg1p5lAyM9T4cH2lwtu2fLbozC/bq+HUUOIFxhX/LP0/GmlqPHT4tQ==", "dev": true, "dependencies": { - "is-number": "^7.0.0" + "tslib": "2.6.2" }, "engines": { - "node": ">=8.0" + "node": ">=8.12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, + "hasInstallScript": true, "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "esbuild": "bin/esbuild" }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "engines": { + "node": ">=12" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "optionalDependencies": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/eth-sig-util": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz", + "integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==", + "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", + "dependencies": { + "ethereumjs-abi": "0.6.8", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.0" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/eth-sig-util/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dev": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "deprecated": "This library has been deprecated and usage is discouraged.", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.10.0" + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-abi/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-util": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", + "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ethereumjs-wallet": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", + "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", + "deprecated": "New package name format for new versions: @ethereumjs/wallet. Please update.", + "dependencies": { + "aes-js": "^3.1.2", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^7.1.2", + "randombytes": "^2.1.0", + "scrypt-js": "^3.0.1", + "utf8": "^3.0.0", + "uuid": "^8.3.2" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" }, "engines": { - "node": ">=8" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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, "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/app-template": { - "name": "@pedalboard/app-template", - "version": "0.0.30", - "extraneous": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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": { - "@pedalboard/basekit": "*", - "@pedalboard/logger": "*", - "@pedalboard/storage": "*", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "express": "^4.17.1", - "morgan": "^1.10.0" + "is-glob": "^4.0.1" }, - "devDependencies": { - "@types/body-parser": "^1.19.0", - "@types/cors": "^2.8.10", - "@types/express": "^4.17.12", - "@types/jest": "^26.0.22", - "@types/morgan": "^1.9.2", - "@types/node": "^15.12.2", - "@types/supertest": "^2.0.11", - "esbuild": "^0.14.38", - "esbuild-register": "^3.3.2", - "eslint": "8.56.0", - "eslint-config-custom-server": "*", - "jest": "^26.6.3", - "jest-presets": "*", - "nodemon": "^2.0.15", - "supertest": "^6.1.3", - "tsconfig": "*", - "typescript": "^4.5.3" + "engines": { + "node": ">= 6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver": { - "name": "@pedalboard/archiver", - "version": "0.0.1", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/hashids": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/hashids/-/hashids-2.2.10.tgz", + "integrity": "sha512-nXnYums7F8B5Y+GSThutLPlKMaamW1yjWNZVt0WModiJfdjaDZHnhYTWblS+h1OoBx3yjwiBwxldPP3nIbFSSA==" + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { - "@audius/sdk": "*", - "@pedalboard/basekit": "*", - "@pedalboard/logger": "*", - "@pedalboard/storage": "*", - "archiver": "7.0.1", - "async-mutex": "0.5.0", - "bullmq": "5.41.7", - "cors": "2.8.5", - "envalid": "8.0.0", - "express": "4.17.1", - "node-fetch": "2.7.0", - "pino-http": "10.4.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, - "devDependencies": { - "@types/archiver": "6.0.3", - "@types/cors": "2.8.10", - "@types/express": "4.17.12", - "@types/node": "18.19.79", - "@types/node-fetch": "2.6.4", - "esbuild": "0.14.38", - "esbuild-register": "3.3.2", - "eslint": "8.56.0", - "eslint-config-custom-server": "*", - "ts-node": "10.9.2", - "tsconfig": "*", - "typescript": "5.4.5", - "vitest": "0.34.6" + "engines": { + "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "dev": true, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==", "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", - "dev": true - }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/express": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz", - "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/node": { - "version": "18.19.79", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.79.tgz", - "integrity": "sha512-90K8Oayimbctc5zTPHPfZloc/lGVs7f3phUAAMcTgEPtg8kKquGZDERC8K4vkBYkQQh48msiYUslYtxTWvqcAg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/node-fetch": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", - "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", "dev": true, + "dependencies": { + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + }, "bin": { - "acorn": "bin/acorn" + "jest": "bin/jest.js" }, "engines": { - "node": ">=0.4.0" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", "dev": true, "dependencies": { - "acorn": "^8.11.0" + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "dependencies": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/async-mutex": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", - "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "dev": true, "dependencies": { - "tslib": "^2.4.0" + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" }, "engines": { - "node": ">= 0.8" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "dev": true, "dependencies": { - "safe-buffer": "5.1.2" + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" }, "engines": { - "node": ">= 0.6" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, "dependencies": { - "object-assign": "^4", - "vary": "^1" + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "fsevents": "^2.1.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dev": true, "dependencies": { - "ms": "2.0.0" + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, "engines": { - "node": ">=0.3.1" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/envalid": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/envalid/-/envalid-8.0.0.tgz", - "integrity": "sha512-PGeYJnJB5naN0ME6SH8nFcDj9HVbLpYIfg1p5lAyM9T4cH2lwtu2fLbozC/bq+HUUOIFxhX/LP0/GmlqPHT4tQ==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dev": true, "dependencies": { - "tslib": "2.6.2" + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" }, "engines": { - "node": ">=8.12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.38.tgz", - "integrity": "sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*" }, "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "esbuild-android-64": "0.14.38", - "esbuild-android-arm64": "0.14.38", - "esbuild-darwin-64": "0.14.38", - "esbuild-darwin-arm64": "0.14.38", - "esbuild-freebsd-64": "0.14.38", - "esbuild-freebsd-arm64": "0.14.38", - "esbuild-linux-32": "0.14.38", - "esbuild-linux-64": "0.14.38", - "esbuild-linux-arm": "0.14.38", - "esbuild-linux-arm64": "0.14.38", - "esbuild-linux-mips64le": "0.14.38", - "esbuild-linux-ppc64le": "0.14.38", - "esbuild-linux-riscv64": "0.14.38", - "esbuild-linux-s390x": "0.14.38", - "esbuild-netbsd-64": "0.14.38", - "esbuild-openbsd-64": "0.14.38", - "esbuild-sunos-64": "0.14.38", - "esbuild-windows-32": "0.14.38", - "esbuild-windows-64": "0.14.38", - "esbuild-windows-arm64": "0.14.38" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-android-64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.38.tgz", - "integrity": "sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==", - "cpu": [ - "x64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", "dev": true, - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-android-arm64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.38.tgz", - "integrity": "sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==", - "cpu": [ - "arm64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + }, "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-darwin-64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.38.tgz", - "integrity": "sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==", - "cpu": [ - "x64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + }, "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-darwin-arm64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.38.tgz", - "integrity": "sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==", - "cpu": [ - "arm64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-freebsd-64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.38.tgz", - "integrity": "sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==", - "cpu": [ - "x64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "bin": { + "jest-runtime": "bin/jest-runtime.js" + }, "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-freebsd-arm64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.38.tgz", - "integrity": "sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==", - "cpu": [ - "arm64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-32": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.38.tgz", - "integrity": "sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==", - "cpu": [ - "ia32" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.38.tgz", - "integrity": "sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==", - "cpu": [ - "x64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-arm": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.38.tgz", - "integrity": "sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==", - "cpu": [ - "arm" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-arm64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.38.tgz", - "integrity": "sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==", - "cpu": [ - "arm64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-mips64le": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.38.tgz", - "integrity": "sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==", - "cpu": [ - "mips64el" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, "engines": { - "node": ">=12" + "node": ">= 10.14.2" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-ppc64le": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.38.tgz", - "integrity": "sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==", - "cpu": [ - "ppc64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, "engines": { - "node": ">=12" + "node": ">= 10.13.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-riscv64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.38.tgz", - "integrity": "sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/jsonschema": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.6.tgz", + "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==", "engines": { - "node": ">=12" + "node": "*" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-s390x": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.38.tgz", - "integrity": "sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { - "node": ">=12" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-netbsd-64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.38.tgz", - "integrity": "sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==", - "cpu": [ - "x64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, "engines": { - "node": ">=12" + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-openbsd-64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.38.tgz", - "integrity": "sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==", - "cpu": [ - "x64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "ms": "^2.1.1" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-register": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.3.2.tgz", - "integrity": "sha512-jceAtTO6zxPmCfSD5cBb3rgIK1vmuqCKYwgylHiS1BF4pq0jJiJb4K2QMuqF4BEw7XDBRatYzip0upyTzfkgsQ==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "peerDependencies": { - "esbuild": ">=0.12 <1" + "engines": { + "node": ">=4" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-sunos-64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.38.tgz", - "integrity": "sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==", - "cpu": [ - "x64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/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 + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" + "bin": { + "semver": "bin/semver" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-windows-32": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.38.tgz", - "integrity": "sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==", - "cpu": [ - "ia32" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { - "node": ">=12" + "node": ">=4" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-windows-64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.38.tgz", - "integrity": "sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, "engines": { - "node": ">=12" + "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-windows-arm64": { - "version": "0.14.38", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.38.tgz", - "integrity": "sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==", - "cpu": [ - "arm64" - ], + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, "engines": { - "node": ">=12" + "node": ">= 10" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "side-channel": "^1.0.6" }, "engines": { - "node": ">= 0.10.0" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "picomatch": "^2.2.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8.10.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "engines": { - "node": ">=0.10.0" + "node": ">= 4" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "dependencies": { + "semver": "~7.0.0" }, "engines": { - "node": ">=4" + "node": ">=8.10.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/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==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "engines": { - "node": ">=0.6" + "node": ">=0.10.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/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==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "methods": "^1.1.2", + "superagent": "^8.1.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6.4.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.8.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, "engines": { - "node": ">=0.6" + "node": ">=8.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/tr46": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/ts-node": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", @@ -117842,12 +112862,13 @@ } } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/tslib": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/typescript": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/typescript": { "version": "5.4.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", @@ -117860,12 +112881,43 @@ "node": ">=14.17" } }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/webidl-conversions": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/v8-to-istanbul": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", + "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==" }, - "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/whatwg-url": { + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/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==", @@ -117874,24 +112926,80 @@ "webidl-conversions": "^3.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/sla-auditor": { - "name": "@pedalboard/sla-auditor", + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle/node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/app-template": { + "name": "@pedalboard/app-template", "version": "0.0.30", "extraneous": true, "dependencies": { - "@audius/sdk-legacy": "*", "@pedalboard/basekit": "*", "@pedalboard/logger": "*", "@pedalboard/storage": "*", - "@truffle/hdwallet-provider": "^1.7.0", "body-parser": "^1.19.0", "cors": "^2.8.5", - "dotenv": "^16.1.4", "express": "^4.17.1", - "knex": "^2.4.2", - "morgan": "^1.10.0", - "semver": "^7.5.3", - "ts-results": "^3.3.0" + "morgan": "^1.10.0" }, "devDependencies": { "@types/body-parser": "^1.19.0", @@ -117900,7 +113008,6 @@ "@types/jest": "^26.0.22", "@types/morgan": "^1.9.2", "@types/node": "^15.12.2", - "@types/semver": "^7.5.0", "@types/supertest": "^2.0.11", "esbuild": "^0.14.38", "esbuild-register": "^3.3.2", @@ -117911,232 +113018,63 @@ "nodemon": "^2.0.15", "supertest": "^6.1.3", "tsconfig": "*", - "typescript": "5.0.4" + "typescript": "^4.5.3" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay": { - "name": "@pedalboard/solana-relay", - "version": "0.0.23", + "packages/discovery-provider/plugins/pedalboard/apps/archiver": { + "name": "@pedalboard/archiver", + "version": "0.0.1", "dependencies": { - "@audius/spl": "*", - "@jup-ag/api": "6.0.48", - "@metaplex-foundation/umi": "1.2.0", - "@metaplex-foundation/umi-bundle-defaults": "1.2.0", - "@metaplex-foundation/umi-uploader-irys": "1.2.0", - "@meteora-ag/cp-amm-sdk": "1.1.7", - "@meteora-ag/dynamic-bonding-curve-sdk": "1.3.8", - "@meteora-ag/met-lock-sdk": "1.0.1", - "@noble/curves": "1.4.2", + "@audius/sdk": "*", "@pedalboard/basekit": "*", "@pedalboard/logger": "*", "@pedalboard/storage": "*", - "@solana/web3.js": "1.98.0", - "axios": "1.6.8", - "body-parser": "1.19.0", - "borsh": "0.3.1", - "bs58": "4.0.1", - "buffer": "6.0.3", + "archiver": "7.0.1", + "async-mutex": "0.5.0", + "bullmq": "5.41.7", "cors": "2.8.5", - "cross-fetch": "3.1.8", - "dotenv": "16.4.5", "envalid": "8.0.0", - "eth-sig-util": "3.0.1", "express": "4.17.1", - "keccak256": "1.0.6", - "morgan": "1.10.0", - "multer": "2.0.2", - "pino": "8.16.1", - "redis": "4.6.11", - "request-ip": "3.3.0", - "secp256k1": "5.0.0", - "sharp": "0.33.4", - "uuid": "8.3.2", - "web3-eth-accounts": "4.1.2", - "web3-utils": "4.2.3" + "node-fetch": "2.7.0", + "pino-http": "10.4.0" }, "devDependencies": { - "@audius/sdk": "*", - "@types/bn.js": "5.1.0", - "@types/body-parser": "1.19.0", + "@types/archiver": "6.0.3", "@types/cors": "2.8.10", "@types/express": "4.17.12", - "@types/morgan": "1.9.2", - "@types/multer": "1.4.7", - "@types/node": "15.12.2", - "@types/request-ip": "0.0.41", - "@types/supertest": "2.0.11", - "@types/uuid": "9.0.8", + "@types/node": "18.19.79", + "@types/node-fetch": "2.6.4", "esbuild": "0.14.38", "esbuild-register": "3.3.2", "eslint": "8.56.0", "eslint-config-custom-server": "*", + "ts-node": "10.9.2", "tsconfig": "*", - "tsx": "4.19.2", - "typescript": "5.0.4", + "typescript": "5.4.5", "vitest": "0.34.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@jup-ag/api": { - "version": "6.0.48", - "resolved": "https://registry.npmjs.org/@jup-ag/api/-/api-6.0.48.tgz", - "integrity": "sha512-H66m/cIqdVIA0qLI2X76UOhuMXkS/+uI6e4KQuU3fn6FSBhCX/9fwt/4IdwES4KWXwGtvqhsg2ExkB9tRtNhyA==", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@metaplex-foundation/umi-bundle-defaults": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-bundle-defaults/-/umi-bundle-defaults-1.2.0.tgz", - "integrity": "sha512-xbBxnvsADoC/L40HOvWWnrfE1q+7FCSwZ+LsYi3dWn8A93FhcI2gpxZ+Uqy+LzHDmGmuipdECbTRFdSBLMulBA==", - "dependencies": { - "@metaplex-foundation/umi-downloader-http": "^1.2.0", - "@metaplex-foundation/umi-eddsa-web3js": "^1.0.1", - "@metaplex-foundation/umi-http-fetch": "^1.2.0", - "@metaplex-foundation/umi-program-repository": "^1.2.0", - "@metaplex-foundation/umi-rpc-chunk-get-accounts": "^1.2.0", - "@metaplex-foundation/umi-rpc-web3js": "^1.2.0", - "@metaplex-foundation/umi-serializer-data-view": "^1.2.0", - "@metaplex-foundation/umi-transaction-factory-web3js": "^1.2.0" - }, - "peerDependencies": { - "@metaplex-foundation/umi": "^1.2.0", - "@solana/web3.js": "^1.72.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@metaplex-foundation/umi-downloader-http": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-downloader-http/-/umi-downloader-http-1.2.0.tgz", - "integrity": "sha512-voEu9BFePmPGkucZCIVDOGkkvBMuzkeHjkvmSP3E2i0YT5299HryR8sr7i9G4uNwKF/FIVdTw1qQnW61cpS2qQ==", - "peerDependencies": { - "@metaplex-foundation/umi": "^1.2.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@metaplex-foundation/umi-eddsa-web3js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-eddsa-web3js/-/umi-eddsa-web3js-1.1.1.tgz", - "integrity": "sha512-rL22HATY7W02DqJLdBKZ8jedhMtd7iKReIFNPXLGnVeUpDwxXaqWPySZxZ+2TjY6f+Idoq2g2TpPCUGND/iOeA==", - "dependencies": { - "@metaplex-foundation/umi-web3js-adapters": "1.1.1", - "@noble/curves": "^1.0.0", - "yaml": "^2.7.0" - }, - "peerDependencies": { - "@metaplex-foundation/umi": "1.1.1", - "@solana/web3.js": "^1.72.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@metaplex-foundation/umi-program-repository": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-program-repository/-/umi-program-repository-1.2.0.tgz", - "integrity": "sha512-mbsE0BPmqv3cMfk/jn+EKoUDJHbUieFcp8o2eRSkVBJhjXqkfLJgJ8s3koBn8vv5mcmavEBDqPYNqJQs93je0g==", - "peerDependencies": { - "@metaplex-foundation/umi": "^1.2.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@metaplex-foundation/umi-web3js-adapters": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/umi-web3js-adapters/-/umi-web3js-adapters-1.1.1.tgz", - "integrity": "sha512-UXP2aY3ce59nSxsVJ4sFLtGCHpesqLTxTag2yI6grCXe0dEz+1kONMn0XFRLcYgiSKOcptJSoJWbILlHnUsWDg==", - "dependencies": { - "buffer": "^6.0.3" - }, - "peerDependencies": { - "@metaplex-foundation/umi": "1.1.1", - "@solana/web3.js": "^1.72.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@meteora-ag/dynamic-bonding-curve-sdk/node_modules/bn.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", - "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", - "extraneous": true - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@noble/curves": { - "version": "1.4.2", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.4.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.4.0", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@noble/hashes": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@scure/base": { - "version": "1.1.6", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@scure/bip32": { - "version": "1.3.3", - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.3.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.3.3" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@scure/bip39": { - "version": "1.2.2", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@types/body-parser": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/body-parser": { "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@types/cors": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/cors": { "version": "2.8.10", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", + "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", + "dev": true }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@types/express": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/express": { "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz", + "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==", "dev": true, - "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -118144,48 +113082,67 @@ "@types/serve-static": "*" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@types/morgan": { - "version": "1.9.2", + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/node": { + "version": "18.19.79", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.79.tgz", + "integrity": "sha512-90K8Oayimbctc5zTPHPfZloc/lGVs7f3phUAAMcTgEPtg8kKquGZDERC8K4vkBYkQQh48msiYUslYtxTWvqcAg==", "dev": true, - "license": "MIT", "dependencies": { - "@types/node": "*" + "undici-types": "~5.26.4" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@types/node": { - "version": "15.12.2", - "dev": true, - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@types/supertest": { - "version": "2.0.11", + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/@types/node-fetch": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", + "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", "dev": true, - "license": "MIT", "dependencies": { - "@types/superagent": "*" + "@types/node": "*", + "form-data": "^3.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/@types/uuid": { - "version": "9.0.8", + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, - "license": "MIT" + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/axios": { - "version": "1.6.8", - "license": "MIT", + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "dependencies": { + "tslib": "^2.4.0" + } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/body-parser": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/body-parser": { "version": "1.19.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "dependencies": { "bytes": "3.1.0", "content-type": "~1.0.4", @@ -118196,71 +113153,24 @@ "on-finished": "~2.3.0", "qs": "6.7.0", "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/bytes": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" + "type-is": "~1.6.17" }, "engines": { - "node": ">=12.5.0" + "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/content-disposition": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/content-disposition": { "version": "0.5.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", "dependencies": { "safe-buffer": "5.1.2" }, @@ -118268,16 +113178,18 @@ "node": ">= 0.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/cookie": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/cookie": { "version": "0.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", "engines": { "node": ">= 0.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/cors": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/cors": { "version": "2.8.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dependencies": { "object-assign": "^4", "vary": "^1" @@ -118286,16 +113198,27 @@ "node": ">= 0.10" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/cross-fetch": { - "version": "3.1.8", - "license": "MIT", + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "node-fetch": "^2.6.12" + "ms": "2.0.0" + } + }, + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/envalid": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/envalid": { "version": "8.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/envalid/-/envalid-8.0.0.tgz", + "integrity": "sha512-PGeYJnJB5naN0ME6SH8nFcDj9HVbLpYIfg1p5lAyM9T4cH2lwtu2fLbozC/bq+HUUOIFxhX/LP0/GmlqPHT4tQ==", "dependencies": { "tslib": "2.6.2" }, @@ -118303,11 +113226,12 @@ "node": ">=8.12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild": { "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.38.tgz", + "integrity": "sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -118337,7 +113261,7 @@ "esbuild-windows-arm64": "0.14.38" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-android-64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-android-64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.38.tgz", "integrity": "sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==", @@ -118353,7 +113277,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-android-arm64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-android-arm64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.38.tgz", "integrity": "sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==", @@ -118369,7 +113293,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-darwin-64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-darwin-64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.38.tgz", "integrity": "sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==", @@ -118385,13 +113309,14 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-darwin-arm64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-darwin-arm64": { "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.38.tgz", + "integrity": "sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -118400,7 +113325,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-freebsd-64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-freebsd-64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.38.tgz", "integrity": "sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==", @@ -118416,7 +113341,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-freebsd-arm64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-freebsd-arm64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.38.tgz", "integrity": "sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==", @@ -118432,7 +113357,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-linux-32": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-32": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.38.tgz", "integrity": "sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==", @@ -118448,7 +113373,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-linux-64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.38.tgz", "integrity": "sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==", @@ -118464,7 +113389,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-linux-arm": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-arm": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.38.tgz", "integrity": "sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==", @@ -118480,7 +113405,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-linux-arm64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-arm64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.38.tgz", "integrity": "sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==", @@ -118496,7 +113421,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-linux-mips64le": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-mips64le": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.38.tgz", "integrity": "sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==", @@ -118512,7 +113437,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-linux-ppc64le": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-ppc64le": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.38.tgz", "integrity": "sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==", @@ -118528,7 +113453,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-linux-riscv64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-riscv64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.38.tgz", "integrity": "sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==", @@ -118544,7 +113469,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-linux-s390x": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-linux-s390x": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.38.tgz", "integrity": "sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==", @@ -118560,7 +113485,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-netbsd-64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-netbsd-64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.38.tgz", "integrity": "sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==", @@ -118576,7 +113501,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-openbsd-64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-openbsd-64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.38.tgz", "integrity": "sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==", @@ -118592,15 +113517,16 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-register": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-register": { "version": "3.3.2", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.3.2.tgz", + "integrity": "sha512-jceAtTO6zxPmCfSD5cBb3rgIK1vmuqCKYwgylHiS1BF4pq0jJiJb4K2QMuqF4BEw7XDBRatYzip0upyTzfkgsQ==", "dev": true, - "license": "MIT", "peerDependencies": { "esbuild": ">=0.12 <1" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-sunos-64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-sunos-64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.38.tgz", "integrity": "sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==", @@ -118616,7 +113542,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-windows-32": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-windows-32": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.38.tgz", "integrity": "sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==", @@ -118632,7 +113558,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-windows-64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-windows-64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.38.tgz", "integrity": "sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==", @@ -118648,7 +113574,7 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/esbuild-windows-arm64": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/esbuild-windows-arm64": { "version": "0.14.38", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.38.tgz", "integrity": "sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==", @@ -118664,82 +113590,10 @@ "node": ">=12" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/eth-sig-util": { - "version": "3.0.1", - "license": "ISC", - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/ethereum-cryptography/node_modules/node-addon-api": { - "version": "2.0.2", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/ethereum-cryptography/node_modules/secp256k1": { - "version": "4.0.3", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/ethereumjs-abi": { - "version": "0.6.8", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/eventemitter3": { - "version": "5.0.1", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/express": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/express": { "version": "4.17.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "dependencies": { "accepts": "~1.3.7", "array-flatten": "1.1.1", @@ -118776,20 +113630,10 @@ "node": ">= 0.10.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/finalhandler": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/finalhandler": { "version": "1.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -118803,50 +113647,10 @@ "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/follow-redirects": { - "version": "1.15.6", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/form-data": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/http-errors": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/http-errors": { "version": "1.7.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -118858,9 +113662,10 @@ "node": ">= 0.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/iconv-lite": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/iconv-lite": { "version": "0.4.24", - "license": "MIT", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -118868,26 +113673,15 @@ "node": ">=0.10.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/inherits": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/inherits": { "version": "2.0.3", - "license": "ISC" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/keccak256": { - "version": "1.0.6", - "license": "MIT", - "dependencies": { - "bn.js": "^5.2.0", - "buffer": "^6.0.3", - "keccak": "^3.0.2" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/keccak256/node_modules/bn.js": { - "version": "5.2.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/mime": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/mime": { "version": "1.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "bin": { "mime": "cli.js" }, @@ -118895,30 +113689,15 @@ "node": ">=4" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/multer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz", - "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^1.6.0", - "concat-stream": "^2.0.0", - "mkdirp": "^0.5.6", - "object-assign": "^4.1.1", - "type-is": "^1.6.18", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">= 10.16.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/node-addon-api": { - "version": "5.1.0", - "license": "MIT" + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/node-fetch": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/node-fetch": { "version": "2.7.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -118934,44 +113713,23 @@ } } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/path-to-regexp": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/path-to-regexp": { "version": "0.1.7", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/pino": { - "version": "8.16.1", - "license": "MIT", - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.1.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/pino-std-serializers": { - "version": "6.2.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/qs": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/qs": { "version": "6.7.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "engines": { "node": ">=0.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/raw-body": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/raw-body": { "version": "2.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dependencies": { "bytes": "3.1.0", "http-errors": "1.7.2", @@ -118982,51 +113740,15 @@ "node": ">= 0.8" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/redis": { - "version": "4.6.11", - "resolved": "https://registry.npmjs.org/redis/-/redis-4.6.11.tgz", - "integrity": "sha512-kg1Lt4NZLYkAjPOj/WcyIGWfZfnyfKo1Wg9YKVSlzhFwxpFIl3LYI8BWy1Ab963LLDsTz2+OwdsesHKljB3WMQ==", - "dependencies": { - "@redis/bloom": "1.2.0", - "@redis/client": "1.5.12", - "@redis/graph": "1.1.1", - "@redis/json": "1.0.6", - "@redis/search": "1.1.6", - "@redis/time-series": "1.0.5" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/safe-buffer": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/safe-buffer": { "version": "5.1.2", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/secp256k1": { - "version": "5.0.0", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/send": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/send": { "version": "0.17.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "dependencies": { "debug": "2.6.9", "depd": "~1.1.2", @@ -119046,24 +113768,15 @@ "node": ">= 0.8.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/send/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/send/node_modules/ms": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/send/node_modules/ms": { "version": "2.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/serve-static": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/serve-static": { "version": "1.14.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -119074,189 +113787,145 @@ "node": ">= 0.8.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/setprototypeof": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/setprototypeof": { "version": "1.1.1", - "license": "ISC" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/sharp": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.4.tgz", - "integrity": "sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.6.0" - }, - "engines": { - "libvips": ">=8.15.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.33.4", - "@img/sharp-darwin-x64": "0.33.4", - "@img/sharp-libvips-darwin-arm64": "1.0.2", - "@img/sharp-libvips-darwin-x64": "1.0.2", - "@img/sharp-libvips-linux-arm": "1.0.2", - "@img/sharp-libvips-linux-arm64": "1.0.2", - "@img/sharp-libvips-linux-s390x": "1.0.2", - "@img/sharp-libvips-linux-x64": "1.0.2", - "@img/sharp-libvips-linuxmusl-arm64": "1.0.2", - "@img/sharp-libvips-linuxmusl-x64": "1.0.2", - "@img/sharp-linux-arm": "0.33.4", - "@img/sharp-linux-arm64": "0.33.4", - "@img/sharp-linux-s390x": "0.33.4", - "@img/sharp-linux-x64": "0.33.4", - "@img/sharp-linuxmusl-arm64": "0.33.4", - "@img/sharp-linuxmusl-x64": "0.33.4", - "@img/sharp-wasm32": "0.33.4", - "@img/sharp-win32-ia32": "0.33.4", - "@img/sharp-win32-x64": "0.33.4" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/sonic-boom": { - "version": "3.7.0", - "license": "MIT", - "dependencies": { - "atomic-sleep": "^1.0.0" - } + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/statuses": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/statuses": { "version": "1.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "engines": { "node": ">= 0.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/toidentifier": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/toidentifier": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "engines": { "node": ">=0.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/tr46": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/tr46": { "version": "0.0.3", - "license": "MIT" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/web3-eth-accounts": { - "version": "4.1.2", - "license": "LGPL-3.0", + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, "dependencies": { - "@ethereumjs/rlp": "^4.0.1", - "crc-32": "^1.2.2", - "ethereum-cryptography": "^2.0.0", - "web3-errors": "^1.1.4", - "web3-types": "^1.6.0", - "web3-utils": "^4.2.3", - "web3-validator": "^2.0.5" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, - "engines": { - "node": ">=14", - "npm": ">=6.12.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/web3-eth-accounts/node_modules/@noble/curves": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.3.3" + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/web3-eth-accounts/node_modules/ethereum-cryptography": { - "version": "2.1.3", - "license": "MIT", - "dependencies": { - "@noble/curves": "1.3.0", - "@noble/hashes": "1.3.3", - "@scure/bip32": "1.3.3", - "@scure/bip39": "1.2.2" - } + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/web3-utils": { - "version": "4.2.3", - "license": "LGPL-3.0", - "dependencies": { - "ethereum-cryptography": "^2.0.0", - "eventemitter3": "^5.0.1", - "web3-errors": "^1.1.4", - "web3-types": "^1.6.0", - "web3-validator": "^2.0.5" + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=14", - "npm": ">=6.12.0" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/web3-utils/node_modules/@noble/curves": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.3.3" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/web3-utils/node_modules/ethereum-cryptography": { - "version": "2.1.3", - "license": "MIT", - "dependencies": { - "@noble/curves": "1.3.0", - "@noble/hashes": "1.3.3", - "@scure/bip32": "1.3.3", - "@scure/bip39": "1.2.2" + "node": ">=14.17" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/webidl-conversions": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/webidl-conversions": { "version": "3.0.1", - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/whatwg-url": { + "packages/discovery-provider/plugins/pedalboard/apps/archiver/node_modules/whatwg-url": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "bin": { - "yaml": "bin.mjs" + "packages/discovery-provider/plugins/pedalboard/apps/sla-auditor": { + "name": "@pedalboard/sla-auditor", + "version": "0.0.30", + "extraneous": true, + "dependencies": { + "@audius/sdk-legacy": "*", + "@pedalboard/basekit": "*", + "@pedalboard/logger": "*", + "@pedalboard/storage": "*", + "@truffle/hdwallet-provider": "^1.7.0", + "body-parser": "^1.19.0", + "cors": "^2.8.5", + "dotenv": "^16.1.4", + "express": "^4.17.1", + "knex": "^2.4.2", + "morgan": "^1.10.0", + "semver": "^7.5.3", + "ts-results": "^3.3.0" }, - "engines": { - "node": ">= 14.6" + "devDependencies": { + "@types/body-parser": "^1.19.0", + "@types/cors": "^2.8.10", + "@types/express": "^4.17.12", + "@types/jest": "^26.0.22", + "@types/morgan": "^1.9.2", + "@types/node": "^15.12.2", + "@types/semver": "^7.5.0", + "@types/supertest": "^2.0.11", + "esbuild": "^0.14.38", + "esbuild-register": "^3.3.2", + "eslint": "8.56.0", + "eslint-config-custom-server": "*", + "jest": "^26.6.3", + "jest-presets": "*", + "nodemon": "^2.0.15", + "supertest": "^6.1.3", + "tsconfig": "*", + "typescript": "5.0.4" } }, "packages/discovery-provider/plugins/pedalboard/apps/staking": { diff --git a/packages/compose/package.json b/packages/compose/package.json index 5eb65ee159f..fc7d96a57eb 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -9,7 +9,6 @@ "@audius/commands": "*", "@audius/sdk": "*", "@audius/spl": "*", - "@pedalboard/solana-relay": "*", "@pedalboard/staking": "*", "@pedalboard/archiver": "*" }, diff --git a/packages/discovery-provider/nginx_conf/nginx_container.conf b/packages/discovery-provider/nginx_conf/nginx_container.conf index fac26137af4..e4e65d1c1b6 100644 --- a/packages/discovery-provider/nginx_conf/nginx_container.conf +++ b/packages/discovery-provider/nginx_conf/nginx_container.conf @@ -117,13 +117,6 @@ http { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } - location ~ ^/solana(/.*)?$ { - resolver 127.0.0.11 valid=30s; - proxy_pass http://solana-relay:6002/solana$1$is_args$args; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - location ~ ^/attestation(/.*)?$ { resolver 127.0.0.11 valid=30s; proxy_pass http://anti-abuse:6003$request_uri; diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/.eslintrc.js b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/.eslintrc.js deleted file mode 100644 index 6ccd65829a4..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: ['audius'] -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/README.md b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/README.md deleted file mode 100644 index 278b7bcf18d..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Solana Relay Plugin - -Plugin to facilitate sending Audius-related Solana transactions - -## Dev - -Create a file `dev.env` and add the following - -``` -audius_discprov_env -audius_discprov_url -audius_db_url -audius_redis_url -audius_solana_endpoint -audius_solana_listen_rpc_url -audius_solana_track_listen_count_address -audius_solana_waudio_mint -audius_solana_usdc_mint -audius_solana_bonk_mint -audius_solana_user_bank_program_address -audius_solana_payment_router_program_address -audius_solana_rewards_manager_program_address -audius_solana_rewards_manager_account -audius_solana_fee_payer_wallets -audius_delegate_private_key -audius_ipdata_api_key -audius_solana_eth_registry_program -audius_solana_listens_valid_signer -audius_solana_signer_private_key -audius_identity_relayer_public_key -audius_solana_listens_ip_hourly_rate_limit -audius_solana_listens_ip_daily_rate_limit -audius_solana_listens_ip_weekly_rate_limit -audius_solana_listens_track_hourly_rate_limit -audius_solana_listens_track_daily_rate_limit -audius_solana_listens_track_weekly_rate_limit -audius_anti_abuse_oracle -``` - -Then - -``` -npm run dev -``` - -If using with the web app, updat the `SOLANA_RELAY_ENDPOINT` value in `packages/web/src/services/env/env..ts` to point to the localhost port that the relay server is running on (i.e. localhost:6002) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/package.json b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/package.json deleted file mode 100644 index c386d1e50f6..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "@pedalboard/solana-relay", - "version": "0.0.23", - "private": true, - "scripts": { - "start": "npx tsx@4.16.0 ./src/index.ts", - "dev": "npx tsx@4.16.0 watch ./src/index.ts", - "test": "vitest", - "lint": "tsc --noEmit && eslint \"src/**/*.ts*\"" - }, - "jest": { - "preset": "jest-presets/jest/node" - }, - "dependencies": { - "@audius/spl": "*", - "@jup-ag/api": "6.0.48", - "@metaplex-foundation/umi": "1.2.0", - "@metaplex-foundation/umi-bundle-defaults": "1.2.0", - "@metaplex-foundation/umi-uploader-irys": "1.2.0", - "@meteora-ag/cp-amm-sdk": "1.1.7", - "@meteora-ag/dynamic-bonding-curve-sdk": "1.3.8", - "@meteora-ag/met-lock-sdk": "1.0.1", - "@noble/curves": "1.4.2", - "@pedalboard/basekit": "*", - "@pedalboard/logger": "*", - "@pedalboard/storage": "*", - "@solana/web3.js": "1.98.0", - "axios": "1.6.8", - "body-parser": "1.19.0", - "borsh": "0.3.1", - "bs58": "4.0.1", - "buffer": "6.0.3", - "cors": "2.8.5", - "cross-fetch": "3.1.8", - "dotenv": "16.4.5", - "envalid": "8.0.0", - "eth-sig-util": "3.0.1", - "express": "4.17.1", - "keccak256": "1.0.6", - "morgan": "1.10.0", - "multer": "2.0.2", - "pino": "8.16.1", - "redis": "4.6.11", - "request-ip": "3.3.0", - "secp256k1": "5.0.0", - "sharp": "0.33.4", - "uuid": "8.3.2", - "web3-eth-accounts": "4.1.2", - "web3-utils": "4.2.3" - }, - "devDependencies": { - "@audius/sdk": "*", - "@types/bn.js": "5.1.0", - "@types/body-parser": "1.19.0", - "@types/cors": "2.8.10", - "@types/express": "4.17.12", - "@types/morgan": "1.9.2", - "@types/multer": "1.4.7", - "@types/node": "15.12.2", - "@types/request-ip": "0.0.41", - "@types/supertest": "2.0.11", - "@types/uuid": "9.0.8", - "esbuild": "0.14.38", - "esbuild-register": "3.3.2", - "eslint": "8.56.0", - "eslint-config-custom-server": "*", - "tsconfig": "*", - "tsx": "4.19.2", - "typescript": "5.0.4", - "vitest": "0.34.6" - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/config.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/config.ts deleted file mode 100644 index 4cc40abf41a..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/config.ts +++ /dev/null @@ -1,223 +0,0 @@ -import { Keypair, PublicKey } from '@solana/web3.js' -import dotenv from 'dotenv' -import { cleanEnv, str, num, json } from 'envalid' - -import { logger } from './logger' - -export const LISTENS_RATE_LIMIT_IP_PREFIX = 'listens-rate-limit-ip' -export const LISTENS_RATE_LIMIT_TRACK_PREFIX = 'listens-rate-limit-track' - -export const ClockProgram = new PublicKey( - 'SysvarC1ock11111111111111111111111111111111' -) -export const InstructionsProgram = new PublicKey( - 'Sysvar1nstructions1111111111111111111111111' -) - -// reads .env file based on environment -const readDotEnv = () => { - const environment = process.env.audius_discprov_env || 'dev' - const dotenvConfig = (filename: string) => - dotenv.config({ path: `${filename}.env` }) - logger.info(`running on ${environment} network`) - dotenvConfig(environment) -} - -type FeePayerWallet = { - privateKey: number[] -} - -type Config = { - environment: string - endpoint: string - discoveryDbConnectionString: string - redisUrl: string - serverHost: string - serverPort: number - solanaEndpoints: string[] - listenRpcUrl: string - rewardsManagerProgramId: string - rewardsManagerAccountAddress: string - claimableTokenProgramId: string - paymentRouterProgramId: string - trackListenCountProgramId: string - ethRegistryProgramId: string - usdcMintAddress: string - waudioMintAddress: string - bonkMintAddress: string - solanaFeePayerWallets: Keypair[] - delegatePrivateKey: Buffer - listensValidSigner: string - solanaSignerPrivateKey: string - identityRelayerPublicKey: string - listensIpHourlyRateLimit: number - listensIpDailyRateLimit: number - listensIpWeeklyRateLimit: number - listensTrackHourlyRateLimit: number - listensTrackDailyRateLimit: number - listensTrackWeeklyRateLimit: number - antiAbuseOracle: string - // The public key for the launchpad config partner (Squads multisig) - launchpadPartnerPublicKey: string - // The private key for a signer of the launchpad config partner (AKA the authority) - // Signs the tx and is used to collect all launches for external pages, e.g. jup launchpad - launchpadPartnerSignerPrivateKey: string - // Secret used to deterministically derive - // - ephemeral launchpad keys (HKDF seed) - // - reward pool authorities - launchpadDeterministicSecret: string -} - -let cachedConfig: Config | null = null - -const readConfig = (): Config => { - if (cachedConfig !== null) return cachedConfig - readDotEnv() - - // validate env - const env = cleanEnv(process.env, { - audius_discprov_env: str({ - default: 'dev' - }), - audius_discprov_url: str({ - default: 'http://audius-discovery-provider-1' - }), - audius_db_url: str({ - default: - 'postgresql+psycopg2://postgres:postgres@db:5432/discovery_provider_1' - }), - audius_redis_url: str({ - default: 'redis://audius-discovery-redis-1:6379/00' - }), - audius_solana_endpoint: str({ - default: 'http://solana-test-validator:8899' - }), - audius_solana_listen_rpc_url: str({ - default: 'http://solana-test-validator:8899' - }), - audius_solana_track_listen_count_address: str({ - default: 'testEjzEibm3nq77VQcqCCmSMx6m3KdJHuepBH1rnue' - }), - audius_solana_waudio_mint: str({ - default: '37RCjhgV1qGV2Q54EHFScdxZ22ydRMdKMtVgod47fDP3' - }), - audius_solana_usdc_mint: str({ - default: '26Q7gP8UfkDzi7GMFEQxTJaNJ8D2ybCUjex58M5MLu8y' - }), - audius_solana_bonk_mint: str({ - default: 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263' - }), - audius_solana_user_bank_program_address: str({ - default: 'testHKV1B56fbvop4w6f2cTGEub9dRQ2Euta5VmqdX9' - }), - audius_solana_payment_router_program_address: str({ - default: 'apaySbqV1XAmuiGszeN4NyWrXkkMrnuJVoNhzmS1AMa' - }), - audius_solana_rewards_manager_program_address: str({ - default: 'testLsJKtyABc9UXJF8JWFKf1YH4LmqCWBC42c6akPb' - }), - audius_solana_rewards_manager_account: str({ - default: 'DJPzVothq58SmkpRb1ATn5ddN2Rpv1j2TcGvM3XsHf1c' - }), - audius_solana_fee_payer_wallets: json({ - default: [ - { - privateKey: [ - 170, 161, 84, 122, 118, 210, 128, 213, 96, 185, 143, 218, 54, 254, - 217, 204, 157, 175, 137, 71, 202, 108, 51, 242, 21, 50, 56, 77, 54, - 116, 103, 56, 251, 64, 77, 100, 199, 88, 103, 189, 42, 163, 67, 251, - 101, 204, 7, 59, 70, 109, 113, 50, 209, 154, 55, 164, 227, 108, 203, - 146, 121, 148, 85, 119 - ] - } - ] - }), - solana_relay_server_host: str({ default: '0.0.0.0' }), - solana_relay_server_port: num({ default: 6002 }), - audius_delegate_private_key: str({ default: '' }), - audius_solana_eth_registry_program: str({ - default: 'testBgRfFcage1hN7zmTsktdQCJZkHEhM1eguYPaeKg' - }), - audius_solana_listens_valid_signer: str({ - default: 'yM9adjwKaRbYxQzLPF6zvZMSAfKUNte5xvK4B3iGbkL' - }), - audius_solana_signer_private_key: str({ - default: - 'd242765e718801781440d77572b9dafcdc9baadf0269eff24cf61510ddbf1003' - }), - audius_identity_relayer_public_key: str({ - default: '0xaaaa90Fc2bfa70028D6b444BB9754066d9E2703b' - }), - audius_solana_listens_ip_hourly_rate_limit: num({ default: 120 }), - audius_solana_listens_ip_daily_rate_limit: num({ default: 50000 }), - audius_solana_listens_ip_weekly_rate_limit: num({ default: 50000000 }), - audius_solana_listens_track_hourly_rate_limit: num({ default: 120 }), - audius_solana_listens_track_daily_rate_limit: num({ default: 50000 }), - audius_solana_listens_track_weekly_rate_limit: num({ default: 50000000 }), - audius_anti_abuse_oracle: str({ - default: 'http://audius-anti-abuse-oracle-1:8000' - }), - audius_launchpad_partner_public_key: str({ - default: '' - }), - audius_launchpad_partner_signer_private_key: str({ - default: '' - }), - audius_launchpad_deterministic_secret: str({ - default: '' - }) - }) - const solanaFeePayerWalletsParsed = env.audius_solana_fee_payer_wallets - let solanaFeePayerWallets: Keypair[] = [] - if (Array.isArray(solanaFeePayerWalletsParsed)) { - solanaFeePayerWallets = solanaFeePayerWalletsParsed.map((wallet) => - Keypair.fromSecretKey(Uint8Array.from(wallet.privateKey)) - ) - } - const delegatePrivateKey: Buffer = env.audius_delegate_private_key - ? Buffer.from(env.audius_delegate_private_key, 'hex') - : Buffer.from([]) - logger.level = env.audius_discprov_env !== 'prod' ? 'debug' : 'info' - - cachedConfig = { - environment: env.audius_discprov_env, - endpoint: env.audius_discprov_url, - discoveryDbConnectionString: env.audius_db_url, - redisUrl: env.audius_redis_url, - serverHost: env.solana_relay_server_host, - serverPort: env.solana_relay_server_port, - solanaEndpoints: env.audius_solana_endpoint.split(','), - listenRpcUrl: env.audius_solana_listen_rpc_url, - rewardsManagerProgramId: env.audius_solana_rewards_manager_program_address, - rewardsManagerAccountAddress: env.audius_solana_rewards_manager_account, - claimableTokenProgramId: env.audius_solana_user_bank_program_address, - paymentRouterProgramId: env.audius_solana_payment_router_program_address, - trackListenCountProgramId: env.audius_solana_track_listen_count_address, - usdcMintAddress: env.audius_solana_usdc_mint, - waudioMintAddress: env.audius_solana_waudio_mint, - bonkMintAddress: env.audius_solana_bonk_mint, - solanaFeePayerWallets, - delegatePrivateKey, - listensValidSigner: env.audius_solana_listens_valid_signer, - ethRegistryProgramId: env.audius_solana_eth_registry_program, - solanaSignerPrivateKey: env.audius_solana_signer_private_key, - identityRelayerPublicKey: env.audius_identity_relayer_public_key, - listensIpHourlyRateLimit: env.audius_solana_listens_ip_hourly_rate_limit, - listensIpDailyRateLimit: env.audius_solana_listens_ip_daily_rate_limit, - listensIpWeeklyRateLimit: env.audius_solana_listens_ip_weekly_rate_limit, - listensTrackHourlyRateLimit: - env.audius_solana_listens_track_hourly_rate_limit, - listensTrackDailyRateLimit: - env.audius_solana_listens_track_daily_rate_limit, - listensTrackWeeklyRateLimit: - env.audius_solana_listens_track_weekly_rate_limit, - antiAbuseOracle: env.audius_anti_abuse_oracle, - launchpadPartnerPublicKey: env.audius_launchpad_partner_public_key, - launchpadPartnerSignerPrivateKey: - env.audius_launchpad_partner_signer_private_key, - launchpadDeterministicSecret: env.audius_launchpad_deterministic_secret - } - return readConfig() -} - -export const config = readConfig() diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/db.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/db.ts deleted file mode 100644 index e8cbb291970..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/db.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { initializeDiscoveryDb } from '@pedalboard/basekit' - -import { config } from './config' - -/** - * Single shared Knex connection pool for the solana-relay service. - * - * Previously each route module called initializeDiscoveryDb() independently, - * creating up to 9 separate pools (each with a default max of 10 connections) - * and exhausting the Postgres connection limit under load. - */ -export const db = initializeDiscoveryDb(config.discoveryDbConnectionString) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/errors.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/errors.ts deleted file mode 100644 index 45eb15df4b7..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/errors.ts +++ /dev/null @@ -1,23 +0,0 @@ -export class ResponseError extends Error { - status = 500 -} - -export class InternalServerError extends ResponseError { - name = 'Internal Server Error' - status = 500 -} - -export class BadRequestError extends ResponseError { - name = 'Bad Request' - status = 400 -} - -export class UnauthorizedError extends ResponseError { - name = 'Unauthorized' - status = 401 -} - -export class ForbiddenError extends ResponseError { - name = 'Forbidden' - status = 403 -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/index.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/index.ts deleted file mode 100644 index 960a6f77210..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/index.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { json } from 'body-parser' -import cors from 'cors' -import express from 'express' -import multer from 'multer' - -import { config } from './config' -import { logger } from './logger' -import { errorHandlerMiddleware } from './middleware/errorHandler' -import { - incomingRequestLogger, - outgoingRequestLogger -} from './middleware/logging' -import { - userSignerRecoveryMiddleware, - discoveryNodeSignerRecoveryMiddleware -} from './middleware/signerRecovery' -import { cache } from './routes/cache' -import { feePayer } from './routes/feePayer' -import { health } from './routes/health/health' -import { location } from './routes/instruction/location' -import { claimFees } from './routes/launchpad/claim_fees' -import { claimVestedCoins } from './routes/launchpad/claim_vested_coins' -import { - firstBuyQuote, - getLaunchpadConfigRoute -} from './routes/launchpad/first_buy_quote' -import { confirmLaunchCoin, launchCoin } from './routes/launchpad/launch_coin' -import { listen } from './routes/listen/listen' -import { swapCoin } from './routes/meteora/swap_coin' -import { swapCoinQuote } from './routes/meteora/swap_coin_quote' -import { relay } from './routes/relay/relay' - -process.on('unhandledRejection', (reason, promise) => { - logger.error('Unhandled promise rejection', { promise, reason }) -}) - -const main = async () => { - const { serverHost, serverPort } = config - const app = express() - app.use(json()) - app.use(cors()) - app.use(incomingRequestLogger) - app.get('/solana/health_check', health) - app.post('/solana/tracks/:trackId/listen', listen) - - const upload = multer({ - storage: multer.memoryStorage(), - limits: { fileSize: 15 * 1024 * 1024 } // 15MB limit - }) - // launchpad endpoints don't need user/discovery validation, so register them before middleware - app.post('/solana/launchpad/launch_coin', upload.single('image'), launchCoin) - app.get('/solana/launchpad/claim_fees', claimFees) - app.get('/solana/launchpad/claim_vested_coins', claimVestedCoins) - app.get('/solana/launchpad/first_buy_quote', firstBuyQuote) - app.get('/solana/meteora/swap_coin_quote', swapCoinQuote) - app.get('/solana/meteora/swap_coin', swapCoin) - app.get('/solana/launchpad/config', getLaunchpadConfigRoute) - - // Apply middleware for routes that need user/discovery validation - app.use(userSignerRecoveryMiddleware) - app.use(discoveryNodeSignerRecoveryMiddleware) - app.post('/solana/launchpad/confirm_launch_coin', confirmLaunchCoin) - app.post('/solana/relay', relay) - app.post('/solana/cache', cache) - app.get('/solana/feePayer', feePayer) - app.get('/solana/instruction/location', location) - app.use(outgoingRequestLogger) - app.use(errorHandlerMiddleware) - - const server = app.listen(serverPort, serverHost, () => { - logger.info({ serverHost, serverPort }, 'server initialized') - }) - - // Set server timeout to 3 minutes to accommodate long-running requests (like launch_coin) - server.timeout = 3 * 60 * 1000 -} - -main().catch((e) => logger.error({ error: e }, 'Fatal error in main!')) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/logger.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/logger.ts deleted file mode 100644 index 5cb637106ec..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/logger.ts +++ /dev/null @@ -1,16 +0,0 @@ -import pino, { stdTimeFunctions } from 'pino' - -const formatters = { - level(label: string) { - // Set level to string format - return { level: label.toUpperCase() } - } -} - -// set config for logger here -export const logger = pino({ - name: `solana-relay`, - base: undefined, - timestamp: stdTimeFunctions.isoTime, - formatters -}) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/assertRateLimiter.test.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/assertRateLimiter.test.ts deleted file mode 100644 index 6c71d2b6e86..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/assertRateLimiter.test.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { beforeEach, describe, expect, it } from 'vitest' - -import { config } from '../config' -import { getRedisConnection } from '../redis' - -import { RateLimiter } from './rateLimiter' - -beforeEach(async () => { - // run with npm run test with audius-compose up - config.redisUrl = 'redis://audius-discovery-provider-redis-1/00' - const redis = await getRedisConnection() - for await (const key of redis.scanIterator()) { - if (key.startsWith('listens-rate-limit')) { - await redis.del(key) - } - } -}) - -describe('Rate Limiter', function () { - describe('Rate Limiter Rate Limits', function () { - it('disallows when one limit is reached', async function () { - const userIP = '1.2.3.4' - - const hourLimitLimiter = new RateLimiter({ - prefix: 'listens-rate-limit-hour', - hourlyLimit: 1, - dailyLimit: 2, - weeklyLimit: 2 - }) - await hourLimitLimiter.checkLimit(userIP) - const checkHour = await hourLimitLimiter.checkLimit(userIP) - expect(checkHour.allowed).toBe(false) - expect(checkHour.hourLimitReached).toBe(true) - expect(checkHour.dayLimitReached).toBe(false) - expect(checkHour.weekLimitReached).toBe(false) - - const dayLimitLimiter = new RateLimiter({ - prefix: 'listens-rate-limit-day', - hourlyLimit: 2, - dailyLimit: 1, - weeklyLimit: 2 - }) - await dayLimitLimiter.checkLimit(userIP) - const checkDay = await dayLimitLimiter.checkLimit(userIP) - expect(checkDay.allowed).toBe(false) - expect(checkDay.hourLimitReached).toBe(false) - expect(checkDay.dayLimitReached).toBe(true) - expect(checkDay.weekLimitReached).toBe(false) - - const weekLimitLimiter = new RateLimiter({ - prefix: 'listens-rate-limit-week', - hourlyLimit: 2, - dailyLimit: 2, - weeklyLimit: 1 - }) - await weekLimitLimiter.checkLimit(userIP) - const checkWeek = await weekLimitLimiter.checkLimit(userIP) - expect(checkWeek.allowed).toBe(false) - expect(checkWeek.hourLimitReached).toBe(false) - expect(checkWeek.dayLimitReached).toBe(false) - expect(checkWeek.weekLimitReached).toBe(true) - - const allowedRateLimiter = new RateLimiter({ - prefix: 'listens-rate-limit-allowed', - hourlyLimit: 2, - dailyLimit: 2, - weeklyLimit: 2 - }) - const checkAllowed = await allowedRateLimiter.checkLimit(userIP) - expect(checkAllowed.allowed).toBe(true) - expect(checkAllowed.hourLimitReached).toBe(false) - expect(checkAllowed.dayLimitReached).toBe(false) - expect(checkAllowed.weekLimitReached).toBe(false) - }) - it('allows one user through while another is blocked', async function () { - const userIP1 = '1.2.3.4' - const userIP2 = '9.8.7.6' - - const hourLimitLimiter = new RateLimiter({ - prefix: 'listens-rate-limit-hour', - hourlyLimit: 3, - dailyLimit: 5, - weeklyLimit: 10 - }) - // reach hourly limit for user 1 - await hourLimitLimiter.checkLimit(userIP1) - await hourLimitLimiter.checkLimit(userIP1) - await hourLimitLimiter.checkLimit(userIP1) - const user1check = await hourLimitLimiter.checkLimit(userIP1) - expect(user1check.allowed).toBe(false) - - await hourLimitLimiter.checkLimit(userIP2) - const user2check = await hourLimitLimiter.checkLimit(userIP2) - expect(user2check.allowed).toBe(true) - }) - }) -}) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/errorHandler.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/errorHandler.ts deleted file mode 100644 index 9972c4aafff..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/errorHandler.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { NextFunction, Request, Response } from 'express' - -import { ResponseError } from '../errors' -import { logger as rootLogger } from '../logger' - -export const errorHandlerMiddleware = ( - error: unknown, - _req: Request, - res: Response, - _next: NextFunction -) => { - const status = error instanceof ResponseError ? error.status : 500 - const meta = error instanceof Error ? { ...error } : {} - if (!res.headersSent) { - res - .status(status) - .set('X-Request-ID', res.locals.requestId) - .set('Access-Control-Expose-Headers', 'X-Request-ID') - .send({ error: (error as any).toString(), ...meta }) - } - // in milliseconds - const responseTime = new Date().getTime() - res.locals.requestStartTime - const statusCode = res.statusCode - const logger = (res.locals.logger ?? rootLogger).child({ - responseTime, - statusCode - }) - logger.error(error, 'request completed') -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/locals.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/locals.ts deleted file mode 100644 index 1b68f1bbdd6..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/locals.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-disable @typescript-eslint/no-namespace */ -import { Users } from '@pedalboard/storage' -import { Logger } from 'pino' - -declare global { - namespace Express { - interface Locals { - requestId: string - signerUser?: Users - isSignedByDiscovery?: boolean - logger: Logger - requestStartTime: number - [k: string]: never - } - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/logging.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/logging.ts deleted file mode 100644 index 036239c2e7b..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/logging.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { NextFunction, Request, Response } from 'express' -import { v4 as uuidv4 } from 'uuid' - -import { logger } from '../logger' - -export const incomingRequestLogger = ( - request: Request, - response: Response, - next: NextFunction -) => { - const startTime = new Date().getTime() - response.locals.requestStartTime = startTime - const requestId = uuidv4() - const { path, method } = request - response.locals.requestId = requestId - response.locals.logger = logger.child({ - requestId, - path, - method - }) - response.locals.logger.info( - { startTime: new Date(startTime), body: request.body }, - 'incoming request' - ) - next() -} - -export const outgoingLog = (_request: Request, response: Response) => { - // in milliseconds - const requestTime = new Date().getTime() - response.locals.requestStartTime - const statusCode = response.statusCode - response.locals.logger.info({ requestTime, statusCode }, 'request completed') -} - -export const outgoingRequestLogger = ( - request: Request, - response: Response, - next: NextFunction -) => { - outgoingLog(request, response) - next() -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/rateLimiter.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/rateLimiter.ts deleted file mode 100644 index 831e8161bf0..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/rateLimiter.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { getRedisConnection } from '../redis' - -export class RateLimiter { - private hourlyLimit: number - private dailyLimit: number - private weeklyLimit: number - private prefix: string - - constructor(params: { - prefix: string - hourlyLimit: number - dailyLimit: number - weeklyLimit: number - }) { - const { prefix, hourlyLimit, dailyLimit, weeklyLimit } = params - this.prefix = prefix - this.hourlyLimit = hourlyLimit - this.dailyLimit = dailyLimit - this.weeklyLimit = weeklyLimit - } - - private getRedisKey(entityKey: string, period: string): string { - return `${this.prefix}:${entityKey}:${period}` - } - - private async consume( - entityKey: string, - period: string, - limit: number, - expiry: number - ): Promise { - const key = this.getRedisKey(entityKey, period) - const redis = await getRedisConnection() - const currentCount = await redis.incr(key) - if (currentCount === 1) { - await redis.expire(key, expiry) - } - return currentCount > limit - } - - public async checkLimit(entityKey: string): Promise<{ - hourLimitReached: boolean - dayLimitReached: boolean - weekLimitReached: boolean - allowed: boolean - }> { - const promises = [ - this.consume(entityKey, 'hour', this.hourlyLimit, 3600), - this.consume(entityKey, 'day', this.dailyLimit, 86400), - this.consume(entityKey, 'week', this.weeklyLimit, 604800) - ] - - const [hourLimitReached, dayLimitReached, weekLimitReached] = - await Promise.all(promises) - - const allowed = !(hourLimitReached || dayLimitReached || weekLimitReached) - - return { allowed, hourLimitReached, dayLimitReached, weekLimitReached } - } - - // set limits after instantiation, primarily for tests - public setLimits(limits: { - hourlyLimit?: number - dailyLimit?: number - weeklyLimit?: number - }) { - const { hourlyLimit, dailyLimit, weeklyLimit } = limits - - if (hourlyLimit !== undefined) { - this.hourlyLimit = hourlyLimit - } - - if (dailyLimit !== undefined) { - this.dailyLimit = dailyLimit - } - - if (weeklyLimit !== undefined) { - this.weeklyLimit = weeklyLimit - } - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/signerRecovery.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/signerRecovery.ts deleted file mode 100644 index 4a43b4c6d87..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/middleware/signerRecovery.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Table, Users } from '@pedalboard/storage' -import { recoverPersonalSignature } from 'eth-sig-util' -import { NextFunction, Request, Response } from 'express' - -import { db as discoveryDb } from '../db' -import { getCachedDiscoveryNodes } from '../redis' - -export const userSignerRecoveryMiddleware = async ( - req: Request, - res: Response, - next: NextFunction -) => { - try { - const data = req.get('Encoded-Data-Message') - const sig = req.get('Encoded-Data-Signature') - - if (!sig || !data) { - return next() - } - const walletAddress = recoverPersonalSignature({ data, sig }) - const user = await discoveryDb(Table.Users) - .where('wallet', '=', walletAddress) - .first() - res.locals.signerUser = user - if (!user) { - res.locals.logger.warn( - { walletAddress }, - 'No user found matching signature' - ) - } - next() - } catch (e) { - next(e) - } -} - -export const discoveryNodeSignerRecoveryMiddleware = async ( - req: Request, - res: Response, - next: NextFunction -) => { - try { - const data = JSON.stringify(req.body) - const sig = req.get('Discovery-Signature') - if (!sig) { - res.locals.isSignedByDiscovery = false - return next() - } - const walletAddress = recoverPersonalSignature({ data, sig }) - const discoveryWallets = await getCachedDiscoveryNodes() - const isSignedByDiscovery = discoveryWallets - .map(({ delegateOwnerWallet }) => delegateOwnerWallet.toLowerCase()) - .includes(walletAddress) - res.locals.isSignedByDiscovery = isSignedByDiscovery - if (!isSignedByDiscovery) { - res.locals.logger.warn( - { walletAddress, discoveryWallets }, - 'Bad Discovery Signature' - ) - } - next() - } catch (e) { - next(e) - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/redis.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/redis.ts deleted file mode 100644 index a2cb5bb9d4d..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/redis.ts +++ /dev/null @@ -1,162 +0,0 @@ -import { createClient, RedisClientType } from 'redis' - -import { config } from './config' -import { logger } from './logger' - -let redisClient: RedisClientType -let isReady: boolean - -const TWO_DAYS_IN_SECONDS = 60 * 60 * 24 * 2 - -export const getRedisConnection = async () => { - if (!isReady) { - redisClient = createClient({ url: config.redisUrl }) - redisClient.on('ready', () => { - isReady = true - }) - await redisClient.connect() - } - return redisClient -} - -const parseArray = (json: string | null) => { - try { - const parsed = JSON.parse(json ?? '[]') - if (!Array.isArray(parsed)) { - return [] - } - return parsed - } catch { - return [] - } -} - -export const cacheTransaction = async ( - signature: string, - transaction: string -) => { - const redis = await getRedisConnection() - const key = `solana:transaction:${signature}` - await redis.set(key, transaction, { EX: 60 }) -} - -type DiscoveryNode = { - delegateOwnerWallet: string - endpoint: string -} - -export const getCachedDiscoveryNodes = async () => { - const redis = await getRedisConnection() - const key = 'all-discovery-nodes-with-wallets' - const json = await redis.get(key) - return parseArray(json).filter( - (p): p is DiscoveryNode => - 'delegateOwnerWallet' in p && - 'endpoint' in p && - typeof p.delegateOwnerWallet === 'string' && - typeof p.endpoint === 'string' - ) -} - -type ContentNode = { - delegateOwnerWallet: string - endpoint: string -} - -export const getCachedContentNodes = async () => { - const redis = await getRedisConnection() - const key = 'all-content-nodes' - const json = await redis.get(key) - return parseArray(json).filter( - (p): p is ContentNode => - 'delegateOwnerWallet' in p && - 'endpoint' in p && - typeof p.delegateOwnerWallet === 'string' && - typeof p.endpoint === 'string' - ) -} - -const TOKEN_ACCOUNT_CREATION_USER_LIMIT = 2 -const TOKEN_ACCOUNT_CREATION_VERIFIED_USER_LIMIT = 5 -const TOKEN_ACCOUNT_CREATION_SYSTEM_LIMIT = 10 - -export const rateLimitTokenAccountCreation = async ( - wallet: string, - isVerified: boolean, - memo?: string // an optional memo creates a custom rate limit bucket -) => { - const redis = await getRedisConnection() - - const currentDate = new Date().toISOString().split('T')[0] - // Rate limit individual users from doing this too many times - const userKey = `ata-creation-count:user:${wallet}:${currentDate}` - // Rate limit the whole userbase - const key = `ata-creation-count:${memo ?? 'global'}:${currentDate}` - - const limit = isVerified - ? TOKEN_ACCOUNT_CREATION_VERIFIED_USER_LIMIT - : TOKEN_ACCOUNT_CREATION_USER_LIMIT - - const currentUserCount = await redis.get(userKey) - const currentSystemCount = await redis.get(key) - - logger.info( - { - wallet, - isVerified, - currentUserCount: currentUserCount ? parseInt(currentUserCount) : 0, - currentSystemCount: currentSystemCount ? parseInt(currentSystemCount) : 0, - userLimit: limit, - systemLimit: TOKEN_ACCOUNT_CREATION_SYSTEM_LIMIT - }, - 'Token account creation rate limit check' - ) - - const [userCount] = await redis - .multi() - .incr(userKey) - .expire(userKey, TWO_DAYS_IN_SECONDS) - .exec() - if (typeof userCount !== 'number' || userCount > limit) { - logger.error( - { - wallet, - isVerified, - userCount, - limit - }, - 'User exceeded token account creation limit' - ) - throw new Error(`User ${wallet} has created too many token accounts`) - } - - const [systemCount] = await redis - .multi() - .incr(key) - .expire(key, TWO_DAYS_IN_SECONDS) - .exec() - - if ( - typeof systemCount !== 'number' || - systemCount > TOKEN_ACCOUNT_CREATION_SYSTEM_LIMIT - ) { - logger.error( - { - systemCount, - systemLimit: TOKEN_ACCOUNT_CREATION_SYSTEM_LIMIT - }, - 'System exceeded token account creation limit' - ) - throw new Error('System has created too many token accounts') - } - - logger.info( - { - wallet, - isVerified, - newUserCount: userCount, - newSystemCount: systemCount - }, - 'Token account creation rate limit passed' - ) -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/cache.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/cache.ts deleted file mode 100644 index c99e127e357..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/cache.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { TransactionResponse } from '@solana/web3.js' -import { NextFunction, Request, Response } from 'express' - -import { BadRequestError, UnauthorizedError } from '../errors' -import { cacheTransaction } from '../redis' - -type RequestBody = { - transaction: string -} - -export const cache = async ( - req: Request, - res: Response, - next: NextFunction -) => { - try { - if (!res.locals.isSignedByDiscovery) { - throw new UnauthorizedError() - } - const { transaction } = req.body - if (!transaction) { - throw new BadRequestError() - } - const transactionResponse = JSON.parse(transaction) as { - result: TransactionResponse - } - const signature = transactionResponse.result.transaction.signatures[0] - res.locals.logger.info({ signature }, 'Caching transaction...') - await cacheTransaction(signature, transaction) - res.status(200).send({ signature }) - next() - } catch (e) { - next(e) - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/feePayer.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/feePayer.ts deleted file mode 100644 index 75519cf05d9..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/feePayer.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { NextFunction, Request, Response } from 'express' - -import { config } from '../config' -import { InternalServerError } from '../errors' - -export const feePayer = async ( - _req: Request, - res: Response, - next: NextFunction -) => { - try { - if ( - !config.solanaFeePayerWallets || - config.solanaFeePayerWallets.length === 0 - ) { - throw new InternalServerError('Relayer fee payer not configured.') - } - const index = Math.floor( - Math.random() * config.solanaFeePayerWallets.length - ) - const feePayer = config.solanaFeePayerWallets[index].publicKey.toBase58() - res.status(200).send({ - feePayer - }) - next() - } catch (e) { - next(e) - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/health/health.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/health/health.ts deleted file mode 100644 index 608a1c1f87d..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/health/health.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { NextFunction, Request, Response } from 'express' - -export const health = async ( - _req: Request, - res: Response, - next: NextFunction -) => { - res.status(200).json({ - isHealthy: true - }) - next() -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/instruction/location.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/instruction/location.ts deleted file mode 100644 index 3875057b333..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/instruction/location.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { PublicKey, TransactionInstruction } from '@solana/web3.js' -import { NextFunction, Request, Response } from 'express' - -import { getRequestIpData } from '../../utils/ipData' - -const MEMO_V2_PROGRAM_ID = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr' -const GEO_MEMO_STRING = 'geo' - -/** - * Returns a memo instruction containing geo location data. - */ -export const location = async ( - req: Request< - unknown, - unknown, - unknown, - { - signer?: string - } - >, - res: Response, - next: NextFunction -) => { - try { - const signer = req.query.signer - const location = await getRequestIpData(res.locals.logger, req) - const instruction = new TransactionInstruction({ - keys: signer - ? [ - { - pubkey: new PublicKey(signer), - isSigner: true, - isWritable: true - } - ] - : [], - data: Buffer.from( - `${GEO_MEMO_STRING}:${JSON.stringify(location)}`, - 'utf-8' - ), - programId: new PublicKey(MEMO_V2_PROGRAM_ID) - }) - res.status(200).send({ instruction }) - next() - } catch (e) { - next(e) - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/claim_fees.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/claim_fees.ts deleted file mode 100644 index 1128e2fb619..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/claim_fees.ts +++ /dev/null @@ -1,238 +0,0 @@ -import { CpAmm, getUnClaimReward } from '@meteora-ag/cp-amm-sdk' -import { DynamicBondingCurveClient } from '@meteora-ag/dynamic-bonding-curve-sdk' -import { - TOKEN_PROGRAM_ID, - createTransferInstruction, - getAssociatedTokenAddressSync -} from '@solana/spl-token' -import { Connection, PublicKey } from '@solana/web3.js' -import { Request, Response } from 'express' - -import { db } from '../../db' -import { logger } from '../../logger' -import { getConnection } from '../../utils/connections' - -import { AUDIO_MINT } from './constants' - -interface ClaimFeesRequestBody { - tokenMint: string - ownerWalletAddress: string - receiverWalletAddress?: string -} - -const getDBCPoolTxs = async ( - connection: Connection, - poolAddress: string, - ownerWalletAddress: string, - receiverWalletAddress: string, - ownerWalletAudioATA: PublicKey -) => { - const dbcClient = new DynamicBondingCurveClient(connection, 'confirmed') - - const poolState = await dbcClient.state.getPool(new PublicKey(poolAddress)) - if (!poolState) { - return - } - - const ownerWallet = new PublicKey(ownerWalletAddress) - const receiverWallet = new PublicKey(receiverWalletAddress) - const maxQuoteAmount = poolState.creatorQuoteFee - - const claimFeesTx = await dbcClient.creator.claimCreatorTradingFee({ - pool: new PublicKey(poolAddress), - payer: ownerWallet, - creator: ownerWallet, - maxBaseAmount: poolState.creatorBaseFee, // Match max amount to the claimable amount (effectively no limit) - maxQuoteAmount, // Match max amount to the claimable amount (effectively no limit) - receiver: ownerWallet - }) - - const sendFromOwnerWallet = createTransferInstruction( - ownerWalletAudioATA, - receiverWallet, - ownerWallet, - BigInt(maxQuoteAmount.toString()) - ) - claimFeesTx.instructions.push(sendFromOwnerWallet) - - claimFeesTx.recentBlockhash = ( - await connection.getLatestBlockhash() - ).blockhash - claimFeesTx.feePayer = ownerWallet - - return claimFeesTx.serialize({ requireAllSignatures: false }) -} - -const getDammV2PoolTxs = async ( - connection: Connection, - poolAddress: string, - ownerWallet: PublicKey, - receiverWallet: PublicKey, - ownerWalletAudioATA: PublicKey -) => { - const cpAmm = new CpAmm(connection) - - const poolState = await cpAmm.fetchPoolState(new PublicKey(poolAddress)) - if (!poolState) { - return [] - } - - // Get all positions for this pool owned by the creator - const ownerPositions = await cpAmm.getUserPositionByPool( - new PublicKey(poolAddress), - ownerWallet - ) - - if (ownerPositions.length === 0) { - return [] - } - - const claimFeeTxs = [] - - // Iterate through all positions owned by the creator - again this is very very likely to only be one, but technically could be multiple - for (const positionInfo of ownerPositions) { - const positionAddress = positionInfo.position - const positionNftAccount = positionInfo.positionNftAccount - - const claimFeeTx = await cpAmm.claimPositionFee2({ - owner: ownerWallet, - pool: new PublicKey(poolAddress), - position: positionAddress, - // Due to ATA issues we have to send the fees to the owner wallet then redirect them to the receiver wallet afterwards - receiver: ownerWallet, - positionNftAccount, - tokenAVault: poolState.tokenAVault, - tokenBVault: poolState.tokenBVault, - tokenAMint: poolState.tokenAMint, - tokenBMint: poolState.tokenBMint, - // Both AUDIO and Artist coins are tokens (not SOL) - so we know both use token program id - tokenAProgram: TOKEN_PROGRAM_ID, - tokenBProgram: TOKEN_PROGRAM_ID - }) - - // Set blockhash and fee payer - claimFeeTx.recentBlockhash = ( - await connection.getLatestBlockhash() - ).blockhash - claimFeeTx.feePayer = ownerWallet - const claimableAmount = getUnClaimReward( - poolState, - positionInfo.positionState - ) - const claimableAmountBigInt = BigInt(claimableAmount.feeTokenB.toString()) - const sendFromOwnerWallet = createTransferInstruction( - ownerWalletAudioATA, - receiverWallet, - ownerWallet, - claimableAmountBigInt - ) - claimFeeTx.instructions.push(sendFromOwnerWallet) - - claimFeeTxs.push(claimFeeTx.serialize({ requireAllSignatures: false })) - } - return claimFeeTxs -} - -export const claimFees = async ( - req: Request, - res: Response -) => { - try { - const { tokenMint, ownerWalletAddress, receiverWalletAddress } = req.query - - // Validate required parameters - if (!tokenMint || !ownerWalletAddress || !receiverWalletAddress) { - throw new Error( - 'Invalid request parameters. tokenMint, ownerWalletAddress, and receiverWalletAddress are required.' - ) - } - - const [pools]: Array<{ - dbc_pool: string | null - damm_v2_pool: string | null - }> = await db('artist_coins') - .where('mint', tokenMint) - .leftJoin( - 'sol_meteora_dbc_pools', - 'artist_coins.mint', - 'sol_meteora_dbc_pools.base_mint' - ) - .leftJoin( - 'sol_meteora_damm_v2_pools', - 'artist_coins.damm_v2_pool', - 'sol_meteora_damm_v2_pools.account' - ) - .select( - 'sol_meteora_dbc_pools.account as dbc_pool', - 'sol_meteora_damm_v2_pools.account as damm_v2_pool' - ) - .limit(1) - - const connection = getConnection() - - const ownerWallet = new PublicKey(ownerWalletAddress as string) - const receiverWallet = receiverWalletAddress - ? new PublicKey(receiverWalletAddress as string) - : ownerWallet - - const ownerWalletAudioATA = getAssociatedTokenAddressSync( - new PublicKey(AUDIO_MINT), - ownerWallet, - false - ) - - const claimFeeTxs = [] - - // Attempt to get DBC claim fee transactions - // A user can only have one claim fee transaction from the DBC but could also have fee TXs from the DAMM V2 - if (pools.dbc_pool !== null) { - logger.debug('Attempting to get DBC claim fee transaction...') - try { - const dbcClaimFeeTx = await getDBCPoolTxs( - connection, - pools.dbc_pool, - ownerWalletAddress as string, - receiverWalletAddress as string, - ownerWalletAudioATA - ) - if (dbcClaimFeeTx) { - claimFeeTxs.push(dbcClaimFeeTx) - } - } catch (e) { - logger.error('error in claim_fees - DBC') - logger.error(e) - } - } - - // Attempt to get DAMM V2 claim fee transactions - // A user can technically have multiple claim fee transactions from the DAMM V2 (but this is unlikely for our users) - if (pools.damm_v2_pool !== null) { - logger.debug('Attempting to get DAMM V2 claim fee transactions...') - try { - const dammV2ClaimFeeTxs = await getDammV2PoolTxs( - connection, - tokenMint as string, - ownerWallet, - receiverWallet, - ownerWalletAudioATA - ) - claimFeeTxs.push(...dammV2ClaimFeeTxs) - } catch (e) { - logger.error('error in claim_fees - DAMM V2') - logger.error(e) - } - } - - return res.status(200).send({ - claimFeeTxs - }) - } catch (e) { - logger.error(e) - logger.error( - 'Error in claim_fees - unable to create claim fee transactions' - ) - res.status(500).send({ - error: e instanceof Error ? e.message : 'Unknown error' - }) - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/claim_vested_coins.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/claim_vested_coins.ts deleted file mode 100644 index 619ccf42b80..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/claim_vested_coins.ts +++ /dev/null @@ -1,400 +0,0 @@ -import { - createTransferCheckedInstruction, - getAssociatedTokenAddressSync -} from '@solana/spl-token' -import { PublicKey } from '@solana/web3.js' -import BN from 'bn.js' -import { Request, Response } from 'express' - -import { LockClient } from '@meteora-ag/met-lock-sdk' -import { db } from '../../db' -import { logger } from '../../logger' -import { getConnection } from '../../utils/connections' - -interface ClaimVestedCoinsRequestBody { - tokenMint: string - ownerWalletAddress: string - receiverWalletAddress?: string - rewardsPoolPercentage?: number -} - -interface EscrowState { - vestingStartTime: BN - cliffTime: BN - frequency: BN - amountPerPeriod: BN - numberOfPeriod: BN - cliffUnlockAmount: BN - totalClaimedAmount: BN - recipient: PublicKey -} - -/** - * Helper function to calculate available amount to claim from vesting escrow - */ -function calculateAvailableAmount( - escrowState: EscrowState, - currentTime: number -): BN { - const cliffTime = escrowState.cliffTime.toNumber() - const vestingStartTime = escrowState.vestingStartTime.toNumber() - const frequency = escrowState.frequency.toNumber() - const amountPerPeriod = escrowState.amountPerPeriod - const numberOfPeriods = escrowState.numberOfPeriod.toNumber() - const cliffUnlockAmount = escrowState.cliffUnlockAmount - const totalClaimedAmount = escrowState.totalClaimedAmount - - let availableAmount = new BN(0) - - // Check if cliff period has passed - if (currentTime >= cliffTime) { - availableAmount = availableAmount.add(cliffUnlockAmount) - - // Calculate periods completed since vesting start - const timeSinceVestingStart = currentTime - vestingStartTime - if (timeSinceVestingStart > 0 && frequency > 0) { - const periodsCompleted = Math.floor(timeSinceVestingStart / frequency) - const validPeriodsCompleted = Math.min(periodsCompleted, numberOfPeriods) - - const periodicAmount = amountPerPeriod.mul(new BN(validPeriodsCompleted)) - availableAmount = availableAmount.add(periodicAmount) - } - } - - // Subtract already claimed amount - availableAmount = availableAmount.sub(totalClaimedAmount) - - // Ensure we don't return negative amounts - return availableAmount.lt(new BN(0)) ? new BN(0) : availableAmount -} - -/** - * Helper function to calculate next unlock time - */ -function calculateNextUnlockTime( - escrowState: EscrowState, - currentTime: number -): number { - const cliffTime = escrowState.cliffTime.toNumber() - const vestingStartTime = escrowState.vestingStartTime.toNumber() - const frequency = escrowState.frequency.toNumber() - const numberOfPeriods = escrowState.numberOfPeriod.toNumber() - - // If still in cliff period, return cliff time - if (currentTime < cliffTime) { - return cliffTime - } - - // Calculate next period unlock time - const timeSinceVestingStart = currentTime - vestingStartTime - if (timeSinceVestingStart >= 0 && frequency > 0) { - const periodsCompleted = Math.floor(timeSinceVestingStart / frequency) - - if (periodsCompleted < numberOfPeriods) { - return vestingStartTime + (periodsCompleted + 1) * frequency - } - } - - // All periods completed - return 0 -} - -/** - * Claims vested/unlocked artist coins from the vesting schedule. - * After an artist coin graduates, the artist's reserved coins unlock daily over a 5-year period. - * - * This endpoint uses the Meteora Lock SDK to claim vested tokens from the escrow account. - */ -export const claimVestedCoins = async ( - req: Request, - res: Response -) => { - try { - const { - tokenMint, - ownerWalletAddress, - receiverWalletAddress, - rewardsPoolPercentage - } = req.query - - // Validate required parameters - if (!tokenMint || !ownerWalletAddress || !receiverWalletAddress) { - throw new Error( - 'Invalid request parameters. tokenMint, ownerWalletAddress, and receiverWalletAddress are required.' - ) - } - - // Validate rewardsPoolPercentage - const rewardsPoolPct = rewardsPoolPercentage - ? parseInt(rewardsPoolPercentage as string, 10) - : 0 - if (isNaN(rewardsPoolPct) || rewardsPoolPct < 0 || rewardsPoolPct > 100) { - throw new Error( - 'Invalid rewardsPoolPercentage. Must be a number between 0 and 100.' - ) - } - - const ownerWallet = new PublicKey(ownerWalletAddress) - const receiverWallet = new PublicKey(receiverWalletAddress) - const mintPublicKey = new PublicKey(tokenMint) - const connection = getConnection() - - logger.info({ - message: 'Claim vested coins request', - tokenMint, - ownerWalletAddress: ownerWallet.toBase58(), - receiverWalletAddress: receiverWallet.toBase58(), - rewardsPoolPercentage - }) - - // Get all vesting information from database - const vestingResult = await db.raw<{ - rows: Array<{ - escrow_account: string - recipient: string - vesting_start_time: string - cliff_time: string - frequency: string - cliff_unlock_amount: string - amount_per_period: string - number_of_period: string - total_claimed_amount: string - }> - }>( - ` - SELECT - account as escrow_account, - recipient, - vesting_start_time, - cliff_time, - frequency, - cliff_unlock_amount, - amount_per_period, - number_of_period, - total_claimed_amount - FROM sol_locker_vesting_escrows - WHERE token_mint = ? AND recipient = ? - `, - [mintPublicKey.toBase58(), ownerWallet.toBase58()] - ) - - if (!vestingResult.rows || vestingResult.rows.length === 0) { - throw new Error( - `No vesting escrow found for mint: ${mintPublicKey.toBase58()}` - ) - } - - const vestingData = vestingResult.rows[0] - - logger.info({ - message: 'Found vesting data from database', - escrowAccount: vestingData.escrow_account, - recipient: vestingData.recipient - }) - - const escrow = new PublicKey(vestingData.escrow_account) - const escrowRecipient = new PublicKey(vestingData.recipient) - - // Check if escrow account exists - const escrowAccount = await connection.getAccountInfo(escrow) - if (!escrowAccount) { - throw new Error('Escrow account does not exist') - } - - // Create escrow state object from database data - const escrowState: EscrowState = { - vestingStartTime: new BN(vestingData.vesting_start_time), - cliffTime: new BN(vestingData.cliff_time), - frequency: new BN(vestingData.frequency), - amountPerPeriod: new BN(vestingData.amount_per_period), - numberOfPeriod: new BN(vestingData.number_of_period), - cliffUnlockAmount: new BN(vestingData.cliff_unlock_amount), - totalClaimedAmount: new BN(vestingData.total_claimed_amount), - recipient: escrowRecipient - } - - // Calculate total amount and available amount - const totalAmount = escrowState.cliffUnlockAmount.add( - escrowState.amountPerPeriod.mul(escrowState.numberOfPeriod) - ) - const currentTime = Math.floor(Date.now() / 1000) - const availableAmount = calculateAvailableAmount(escrowState, currentTime) - - logger.info({ - message: 'Vesting calculation', - totalAmount: totalAmount.toString(), - claimedAmount: escrowState.totalClaimedAmount.toString(), - availableAmount: availableAmount.toString(), - currentTime - }) - - if (availableAmount.eq(new BN(0))) { - const nextUnlockTime = calculateNextUnlockTime(escrowState, currentTime) - const hoursUntilNextUnlock = - nextUnlockTime > currentTime ? (nextUnlockTime - currentTime) / 3600 : 0 - - return res.status(200).send({ - claimVestedCoinsTxs: [], - availableAmount: '0', - totalAmount: totalAmount.toString(), - claimedAmount: escrowState.totalClaimedAmount.toString(), - nextUnlockTime, - hoursUntilNextUnlock: hoursUntilNextUnlock.toFixed(2), - message: - hoursUntilNextUnlock > 0 - ? `No tokens are currently available to claim. Next unlock in ${hoursUntilNextUnlock.toFixed(2)} hours.` - : 'All vesting periods completed. All tokens should be available.' - }) - } - - // Create the claim transaction using Meteora Lock SDK claimV2 - // NOTE: recipient must be a signer, so we claim to ownerWallet (root wallet) - // Then immediately transfer to the user bank in the same transaction - const lockClient = new LockClient(connection, 'confirmed') - const claimTx = await lockClient.claimV2({ - escrow: escrow, - recipient: ownerWallet, - maxAmount: availableAmount, - payer: ownerWallet - }) - - // Calculate split amounts based on rewards pool percentage - const userAmount = availableAmount - .mul(new BN(100 - rewardsPoolPct)) - .div(new BN(100)) - const rewardsPoolAmount = availableAmount - .mul(new BN(rewardsPoolPct)) - .div(new BN(100)) - - logger.info({ - message: 'Rewards pool allocation', - totalAvailable: availableAmount.toString(), - userAmount: userAmount.toString(), - rewardsPoolAmount: rewardsPoolAmount.toString(), - rewardsPoolPercentage: rewardsPoolPct - }) - - // Add transfer instruction from owner wallet (external wallet) to user bank - const ownerTokenAccount = getAssociatedTokenAddressSync( - mintPublicKey, - ownerWallet, - false - ) - - // Transfer user portion to user bank - if (userAmount.gt(new BN(0))) { - const userTransferInstruction = createTransferCheckedInstruction( - ownerTokenAccount, // source - mintPublicKey, // mint - receiverWallet, // destination (user bank) - ownerWallet, // owner of source account - BigInt(userAmount.toString()), // amount as BigInt to handle large values - 9 // decimals for artist coins (matches SPL token standard) - ) - claimTx.add(userTransferInstruction) - } - - let rewardsPoolAddress: PublicKey | null = null - // Transfer rewards pool portion to rewards pool token account if provided - if (rewardsPoolAmount.gt(new BN(0))) { - const rewardsPoolAuthorityResult = await db.raw<{ - rows: Array<{ authority: string }> - }>( - ` - SELECT authority - FROM artist_coins ac - JOIN sol_reward_manager_inits r ON r.mint = ac.mint - WHERE ac.mint = ? - `, - [mintPublicKey.toBase58()] - ) - - if ( - !rewardsPoolAuthorityResult.rows || - rewardsPoolAuthorityResult.rows.length === 0 - ) { - throw new Error( - `Could not find rewards pool address for mint: ${mintPublicKey.toBase58()}` - ) - } - - const rewardsPoolAuthority = new PublicKey( - rewardsPoolAuthorityResult.rows[0].authority - ) - - rewardsPoolAddress = getAssociatedTokenAddressSync( - mintPublicKey, - rewardsPoolAuthority, - true - ) - // Check if rewards pool ATA exists - it should already exist - const rewardsPoolAccountInfo = - await connection.getAccountInfo(rewardsPoolAddress) - if (!rewardsPoolAccountInfo) { - throw new Error( - `Rewards pool token account does not exist: ${rewardsPoolAddress.toBase58()}` - ) - } - - const rewardsPoolTransferInstruction = createTransferCheckedInstruction( - ownerTokenAccount, // source - mintPublicKey, // mint - rewardsPoolAddress, // destination (rewards pool) - ownerWallet, // owner of source account - BigInt(rewardsPoolAmount.toString()), // amount as BigInt to handle large values - 9 // decimals for artist coins (matches SPL token standard) - ) - claimTx.add(rewardsPoolTransferInstruction) - } - - logger.info({ - message: 'Added transfer instructions', - userTransferAmount: userAmount.toString(), - rewardsPoolTransferAmount: rewardsPoolAmount.toString(), - rewardsPoolAddress: rewardsPoolAddress ?? 'not provided', - from: ownerTokenAccount.toBase58(), - to: receiverWallet.toBase58() - }) - - // Set transaction properties - claimTx.feePayer = ownerWallet - const { blockhash } = await connection.getLatestBlockhash() - claimTx.recentBlockhash = blockhash - - // Serialize the transaction without signatures - const serializedTx = claimTx.serialize({ - requireAllSignatures: false, - verifySignatures: false - }) - - logger.info({ - message: 'Claim transaction created', - availableAmount: availableAmount.toString(), - remainingLocked: totalAmount - .sub(escrowState.totalClaimedAmount) - .sub(availableAmount) - .toString() - }) - - return res.status(200).send({ - claimVestedCoinsTxs: [serializedTx], - availableAmount: availableAmount.toString(), - totalAmount: totalAmount.toString(), - claimedAmount: escrowState.totalClaimedAmount.toString(), - remainingLocked: totalAmount - .sub(escrowState.totalClaimedAmount) - .sub(availableAmount) - .toString(), - userClaimedAmount: userAmount.toString(), - rewardsPoolClaimedAmount: rewardsPoolAmount.toString() - }) - } catch (e) { - logger.error(e) - logger.error( - 'Error in claim_vested_coins - unable to create claim vested coins transactions' - ) - res.status(500).send({ - error: e instanceof Error ? e.message : 'Unknown error' - }) - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/constants.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/constants.ts deleted file mode 100644 index 1d7881038da..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/constants.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const AUDIO_MINT = '9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM' -export const USDC_MINT = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' - -// This pool is a random one created during the launchpad QA process. -export const QUOTE_POOL_MINT_ADDRESS = - 'HJrYJnr4P9cR7NuN8pA48VKrbgDxQjvaPms1HLSHNxB2' diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/curve.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/curve.ts deleted file mode 100644 index 3591d46e5b1..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/curve.ts +++ /dev/null @@ -1,324 +0,0 @@ -import { - BaseFeeMode, - CollectFeeMode, - MigrationOption, - MigrationFeeOption, - TokenType, - CreateConfigParam, - ActivationType -} from '@meteora-ag/dynamic-bonding-curve-sdk' -import { Keypair, PublicKey } from '@solana/web3.js' -import BN from 'bn.js' - -import { AUDIO_MINT } from './constants' - -/** - * Makes a production curve for dbc deployment - * @param params Object containing: - * - payer: the keypair of the payer - * - configKey: the keypair for the config - * - partner: the public key of the partner - * - rewardPool: the public key of the reward pool - * @returns the curve design - */ -export const makeCurve = ({ - payer, - configKey, - partner, - rewardPoolAuthority -}: { - payer: Keypair - configKey: Keypair - partner: PublicKey - rewardPoolAuthority: PublicKey -}): CreateConfigParam => ({ - payer: payer.publicKey, - config: configKey.publicKey, - feeClaimer: partner, - leftoverReceiver: rewardPoolAuthority, - quoteMint: new PublicKey(AUDIO_MINT), - - // Fees - poolFees: { - baseFee: { - cliffFeeNumerator: new BN(10000000), - baseFeeMode: BaseFeeMode.FeeSchedulerLinear, - firstFactor: 0, - secondFactor: new BN(0), - thirdFactor: new BN(0) - }, - dynamicFee: null - }, - activationType: ActivationType.Slot, - collectFeeMode: CollectFeeMode.QuoteToken, - - // Graduation - migrationOption: MigrationOption.MET_DAMM_V2, - migrationQuoteThreshold: new BN('20000000000000'), - migrationFeeOption: MigrationFeeOption.FixedBps100, - // Migrated pool fee is unused because fee option is set above - migratedPoolFee: { - collectFeeMode: CollectFeeMode.QuoteToken, - dynamicFee: 0, - poolFeeBps: 0 - }, - migrationFee: { - feePercentage: 0, - creatorFeePercentage: 0 - }, - - // Token params - tokenType: TokenType.SPL, - tokenDecimal: 9, - - // LP design - partnerLpPercentage: 0, - creatorLpPercentage: 0, - partnerLockedLpPercentage: 50, - creatorLockedLpPercentage: 50, - creatorTradingFeePercentage: 50, - - // Curve design - // Calculation worksheet: https://colab.research.google.com/drive/1qs2ZdFnfEDj_-wHDmVkZAqut3NCttedn?usp=sharing - tokenSupply: { - preMigrationTokenSupply: new BN('1000000000000000000'), - postMigrationTokenSupply: new BN('1000000000000000000') - }, - sqrtStartPrice: new BN('58333726687135160'), - curve: [ - { - sqrtPrice: new BN('72917158358918944'), - liquidity: new BN('571036328486548000491779697672192') - }, - { - sqrtPrice: new BN('85035288539934656'), - liquidity: new BN('1043411423496793959704665127911424') - }, - { - sqrtPrice: new BN('95629956661080960'), - liquidity: new BN('1731136466787152700430895110160384') - }, - { - sqrtPrice: new BN('105162621329683952'), - liquidity: new BN('2784492297095045174195387963015168') - }, - { - sqrtPrice: new BN('113900242488156176'), - liquidity: new BN('4394180611359080849872699321745408') - }, - { - sqrtPrice: new BN('122013743294725040'), - liquidity: new BN('6840220463844928439430180142841856') - }, - { - sqrtPrice: new BN('129620375970452032'), - liquidity: new BN('10535563568731494085785207602937856') - }, - { - sqrtPrice: new BN('136804715491285680'), - liquidity: new BN('16087957909358401101673153467252736') - }, - { - sqrtPrice: new BN('143630144797608192'), - liquidity: new BN('24389233889323285551109107630473216') - }, - { - sqrtPrice: new BN('150145618679041632'), - liquidity: new BN('36744235180916757004478934784409600') - }, - { - sqrtPrice: new BN('156389881777698304'), - liquidity: new BN('55056701589192949206360425964240896') - }, - { - sqrtPrice: new BN('162394222299848896'), - liquidity: new BN('82096750510666790667034061338312704') - }, - { - sqrtPrice: new BN('168184338599951136'), - liquidity: new BN('121885042984825962137694385387601920') - }, - { - sqrtPrice: new BN('173781644785153568'), - liquidity: new BN('180243519129436619742864140044075008') - }, - { - sqrtPrice: new BN('179204208595009184'), - liquidity: new BN('265583529998958846013226879713017856') - }, - { - sqrtPrice: new BN('184467440737095520'), - liquidity: new BN('390031788038084761836886320138420224') - } - ], - // unused - padding: [], - - // Immutable token - tokenUpdateAuthority: 1, - - // Vesting design - lockedVesting: { - amountPerPeriod: new BN(500_000_000).mul(new BN(1e9)).div(new BN(5 * 365)), - cliffDurationFromMigrationTime: new BN(0), - frequency: new BN(24 * 60 * 60), // one day in seconds - numberOfPeriod: new BN(5 * 365), // daily - cliffUnlockAmount: new BN(0) - } -}) - -/** - * Makes a test curve for dbc deployment - * Same as production but with a 1000x reduction in mkt caps - * @param params Object containing: - * - payer: the keypair of the payer - * - configKey: the keypair for the config - * - partner: the public key of the partner - * - rewardPool: the public key of the reward pool - * @returns the curve design - */ -export const makeTestCurve = ({ - payer, - configKey, - partner, - rewardPoolAuthority -}: { - payer: Keypair - configKey: Keypair - partner: PublicKey - rewardPoolAuthority: PublicKey -}): CreateConfigParam => ({ - payer: payer.publicKey, - config: configKey.publicKey, - feeClaimer: partner, - leftoverReceiver: rewardPoolAuthority, - quoteMint: new PublicKey(AUDIO_MINT), - - // Fees - poolFees: { - baseFee: { - cliffFeeNumerator: new BN(10000000), - baseFeeMode: BaseFeeMode.FeeSchedulerLinear, - firstFactor: 0, - secondFactor: new BN(0), - thirdFactor: new BN(0) - }, - dynamicFee: null - }, - activationType: ActivationType.Slot, - collectFeeMode: CollectFeeMode.QuoteToken, - - // Graduation - migrationOption: MigrationOption.MET_DAMM_V2, - migrationQuoteThreshold: new BN('20000000000'), - migrationFeeOption: MigrationFeeOption.FixedBps100, - // Migrated pool fee is unused because fee option is set above - migratedPoolFee: { - collectFeeMode: CollectFeeMode.QuoteToken, - dynamicFee: 0, - poolFeeBps: 0 - }, - migrationFee: { - feePercentage: 0, - creatorFeePercentage: 0 - }, - - // Token params - tokenType: TokenType.SPL, - tokenDecimal: 9, - - // LP design - partnerLpPercentage: 0, - creatorLpPercentage: 0, - partnerLockedLpPercentage: 50, - creatorLockedLpPercentage: 50, - creatorTradingFeePercentage: 50, - - // Curve design - // Calculation worksheet: https://colab.research.google.com/drive/1hZy7CEekEF3LGi81IWHm_1DL9Pjd6t6U - tokenSupply: { - preMigrationTokenSupply: new BN('1000000000000000000'), - postMigrationTokenSupply: new BN('1000000000000000000') - }, - sqrtStartPrice: new BN('1844674407370955'), - curve: [ - { - sqrtPrice: new BN('2305843009213694'), - liquidity: new BN('18057754247175821789672614395904') - }, - { - sqrtPrice: new BN('2689051932758076'), - liquidity: new BN('32995566348883979631837730308096') - }, - { - sqrtPrice: new BN('3024084755922066'), - liquidity: new BN('54743341756238286998848562790400') - }, - { - sqrtPrice: new BN('3325534081156063'), - liquidity: new BN('88053377860145886259638941253632') - }, - { - sqrtPrice: new BN('3601841923080576'), - liquidity: new BN('138956191820458452184900508319744') - }, - { - sqrtPrice: new BN('3858413346544284'), - liquidity: new BN('216306763634433951331984852647936') - }, - { - sqrtPrice: new BN('4098956192339867'), - liquidity: new BN('333163773106834296934962227576832') - }, - { - sqrtPrice: new BN('4326144956037837'), - liquidity: new BN('508745898944932287641762693906432') - }, - { - sqrtPrice: new BN('4541983982202259'), - liquidity: new BN('771255294768285248729673728262144') - }, - { - sqrtPrice: new BN('4748021357208935'), - liquidity: new BN('1161954740525860247592932825104384') - }, - { - sqrtPrice: new BN('4945482294219893'), - liquidity: new BN('1741045774780616625654638131019776') - }, - { - sqrtPrice: new BN('5135356213192297'), - liquidity: new BN('2596127201122984475636553916350464') - }, - { - sqrtPrice: new BN('5318455767448199'), - liquidity: new BN('3854343485395775796004041718235136') - }, - { - sqrtPrice: new BN('5495458130514078'), - liquidity: new BN('5699800539331489934698720343883776') - }, - { - sqrtPrice: new BN('5666934654481518'), - liquidity: new BN('8398488638243657085360912050683904') - }, - { - sqrtPrice: new BN('5833372668713516'), - liquidity: new BN('12333888100683631206160631641145344') - } - ], - // unused - padding: [], - - // Immutable token - tokenUpdateAuthority: 1, - - // Vesting design - lockedVesting: { - amountPerPeriod: new BN(500_000_000).mul(new BN(1e9)).div(new BN(5 * 365)), - cliffDurationFromMigrationTime: new BN(0), - frequency: new BN(24 * 60 * 60), // one day in seconds - numberOfPeriod: new BN(5 * 365), // daily - cliffUnlockAmount: new BN(0) - } -}) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/derive_eth_address_for_mint.test.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/derive_eth_address_for_mint.test.ts deleted file mode 100644 index 032feeb257a..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/derive_eth_address_for_mint.test.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { PublicKey } from '@solana/web3.js' -import { describe, it, expect } from 'vitest' -import * as Accounts from 'web3-eth-accounts' -import { toChecksumAddress } from 'web3-utils' - -import { AUDIO_MINT } from './constants' -import { deriveEthAddressForMint } from './derive_eth_address_for_mint' - -describe('deriveEthAddressForMint', () => { - const DOMAIN = Buffer.from('audius/reward/claimauthority/v1') - const OTHER_DOMAIN = Buffer.from('audius/reward/claimauthority/v2') - - const goodSecret = '0x' + '11'.repeat(32) - const mintA = new PublicKey(AUDIO_MINT) - const mintB = PublicKey.unique() - - it('throws when secret is not 32-byte hex', () => { - expect(() => deriveEthAddressForMint(DOMAIN, '0x1234', mintA)).toThrow( - /32-byte hex/i - ) - expect(() => deriveEthAddressForMint(DOMAIN, 'not-hex', mintA)).toThrow( - /32-byte hex/i - ) - expect(() => - deriveEthAddressForMint(DOMAIN, '11'.repeat(32), mintA) - ).not.toThrow() - }) - - it('is deterministic for same domain + secret + mint', () => { - const r1 = deriveEthAddressForMint(DOMAIN, goodSecret, mintA) - const r2 = deriveEthAddressForMint(DOMAIN, goodSecret, mintA) - expect(r1.address).toBe(r2.address) - expect(r1.privateKey).toBe(r2.privateKey) - }) - - it('produces different results for different mints', () => { - const a = deriveEthAddressForMint(DOMAIN, goodSecret, mintA) - const b = deriveEthAddressForMint(DOMAIN, goodSecret, mintB) - expect(a.address).not.toBe(b.address) - expect(a.privateKey).not.toBe(b.privateKey) - }) - - it('produces different results for different domains', () => { - const r1 = deriveEthAddressForMint(DOMAIN, goodSecret, mintA) - const r2 = deriveEthAddressForMint(OTHER_DOMAIN, goodSecret, mintA) - expect(r1.address).not.toBe(r2.address) - expect(r1.privateKey).not.toBe(r2.privateKey) - }) - - it('returns an EIP-55 checksummed address', () => { - const { address } = deriveEthAddressForMint(DOMAIN, goodSecret, mintA) - expect(address.startsWith('0x')).toBe(true) - expect(address.length).toBe(42) - const checksummed = toChecksumAddress(address.toLowerCase()) - expect(address).toBe(checksummed) - }) - - it('returns a 32-byte private key hex string with 0x prefix', () => { - const { privateKey } = deriveEthAddressForMint(DOMAIN, goodSecret, mintA) - expect(privateKey.startsWith('0x')).toBe(true) - expect(privateKey.length).toBe(66) - expect(/^[0-9a-fA-F]+$/.test(privateKey.slice(2))).toBe(true) - }) - - it('privateKey regenerates the exact same address via web3-eth-accounts', () => { - const { address, privateKey } = deriveEthAddressForMint( - DOMAIN, - goodSecret, - mintA - ) - const addrFromPriv = Accounts.privateKeyToAccount(privateKey).address - expect(addrFromPriv).toBe(address) - }) -}) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/derive_eth_address_for_mint.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/derive_eth_address_for_mint.ts deleted file mode 100644 index 793e02d7d00..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/derive_eth_address_for_mint.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { PublicKey } from '@solana/web3.js' -import keccak256 from 'keccak256' -import * as secp256k1 from 'secp256k1' -import { toChecksumAddress } from 'web3-utils' - -/** - * Derive a stable secp256k1 private key from (secret, mint) - * and return both the ETH address (EIP-55) and private key (hex). - * Uses keccak256(DOMAIN || secret || mint || ctr) and retries - * with a tiny counter until valid. - */ -export const deriveEthAddressForMint = ( - domain: Buffer, - secretHex: string, - mint: PublicKey -): { address: string; privateKey: string } => { - const h = secretHex.startsWith('0x') ? secretHex.slice(2) : secretHex - if (h.length !== 64) throw new Error('secret must be 32-byte hex') - const secret = Buffer.from(h, 'hex') - - const mintBytes = Buffer.from(mint.toBytes()) - for (let ctr = 0; ctr < 16; ctr++) { - const data = Buffer.concat([domain, secret, mintBytes, Buffer.from([ctr])]) - const priv = Buffer.from(keccak256(data)) - if (!secp256k1.privateKeyVerify(priv)) continue - - // uncompressed public key (65 bytes, 0x04 + X(32) + Y(32)) - const pub = Buffer.from(secp256k1.publicKeyCreate(priv, false)) - const hash = keccak256(pub.slice(1)) // drop 0x04 - const addrLowerHex = '0x' + hash.slice(-20).toString('hex') - const address = toChecksumAddress(addrLowerHex) // EIP-55 - const privateKey = '0x' + priv.toString('hex') - return { address, privateKey } - } - throw new Error('Could not derive a valid secp256k1 key') -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/first_buy_quote.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/first_buy_quote.ts deleted file mode 100644 index 16b0e47cc56..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/first_buy_quote.ts +++ /dev/null @@ -1,323 +0,0 @@ -import { FirstBuyQuoteResponse } from '@audius/sdk' -import { - createJupiterApiClient, - QuoteResponse, - SwapApi as JupiterApi -} from '@jup-ag/api' -import { - DynamicBondingCurveClient, - getBaseTokenForSwap, - PoolConfig, - SwapMode, - VirtualPool -} from '@meteora-ag/dynamic-bonding-curve-sdk' -import { Keypair } from '@solana/web3.js' -import BN from 'bn.js' -import { Request, Response } from 'express' - -import { config } from '../../config' -import { logger } from '../../logger' -import { getConnection } from '../../utils/connections' - -import { AUDIO_MINT, USDC_MINT } from './constants' -import { makeCurve, makeTestCurve } from './curve' - -/** - * Gets a Jupiter swap quote to determine the USDC value of the given AUDIO amount - */ -const getAudioToUSDCQuote = async ( - jupiterApi: JupiterApi, - audioAmount: string -): Promise => { - return await jupiterApi.quoteGet({ - inputMint: AUDIO_MINT, - outputMint: USDC_MINT, - amount: new BN(audioAmount).toNumber(), - swapMode: 'ExactIn', - onlyDirectRoutes: false, - dynamicSlippage: true - }) -} - -/** - * Gets a quote for a buy off the bonding curve using the given pool config - */ -const getBondingCurveQuote = async ({ - dbcClient, - audioAmount, - tokenAmount, - virtualPoolState, - poolConfigState -}: { - dbcClient: DynamicBondingCurveClient - audioAmount?: BN - tokenAmount?: BN - virtualPoolState: VirtualPool - poolConfigState: PoolConfig -}) => { - if (audioAmount) { - const quote = await dbcClient.pool.swapQuote({ - virtualPool: virtualPoolState, - config: poolConfigState, - swapBaseForQuote: false, - amountIn: audioAmount, - hasReferral: false, - currentPoint: new BN(0) - }) - return quote.outputAmount.toString() - } else if (tokenAmount) { - // Swap quote 2 has additional params that allows us to specify ExactOut for the swap - const quote = await dbcClient.pool.swapQuote2({ - virtualPool: virtualPoolState, - config: poolConfigState, - swapBaseForQuote: false, - swapMode: SwapMode.ExactOut, - amountOut: tokenAmount, - hasReferral: false, - currentPoint: new BN(0) - }) - - return quote.maximumAmountIn?.toString() - } else { - throw new Error('audioAmount or tokenAmount is required') - } -} - -/** - * Gets a quote starting from exact AUDIO input amount - */ -const getQuoteFromAudioInput = async ( - jupiterApi: JupiterApi, - dbcClient: DynamicBondingCurveClient, - audioAmount: string, - virtualPoolState: VirtualPool, - poolConfigState: PoolConfig -) => { - // Get AUDIO to USDC quote - const audioToUsdcQuote = await getAudioToUSDCQuote(jupiterApi, audioAmount) - - // Use the AUDIO amount from the jupiter quote to get a quote for tokens out of the bonding curve - const audioToTokensQuote = await getBondingCurveQuote({ - dbcClient, - audioAmount: new BN(audioAmount), - virtualPoolState, - poolConfigState - }) - return { - usdcValue: audioToUsdcQuote.outAmount, - audioInputAmount: audioAmount, - tokenOutputAmount: audioToTokensQuote - } -} - -/** - * Gets a quote starting from exact token output amount - */ -const getQuoteFromTokenOutput = async ( - jupiterApi: JupiterApi, - dbcClient: DynamicBondingCurveClient, - tokenAmount: string, - virtualPoolState: VirtualPool, - poolConfigState: PoolConfig -) => { - // Get AUDIO to TOKEN quote - const audioAmount = await getBondingCurveQuote({ - dbcClient, - tokenAmount: new BN(tokenAmount), - virtualPoolState, - poolConfigState - }) - - const usdcValue = await getAudioToUSDCQuote(jupiterApi, audioAmount!) - - return { - usdcValue: usdcValue.outAmount, - audioInputAmount: audioAmount, - tokenOutputAmount: tokenAmount - } -} - -// Endpoint logic -export const firstBuyQuote = async ( - req: Request, - res: Response -): Promise => { - try { - const { audioInputAmount, tokenOutputAmount } = req.query - - if (!audioInputAmount && !tokenOutputAmount) { - res.status(400).json({ - error: 'audioInputAmount or tokenOutputAmount is required' - }) - return - } - - if (audioInputAmount && typeof audioInputAmount !== 'string') { - res.status(400).json({ - error: - 'audioInputAmount is required and must be a string representing the amount in 8 digit waudio decimals' - }) - return - } - - if (tokenOutputAmount && typeof tokenOutputAmount !== 'string') { - res.status(400).json({ - error: - 'tokenOutputAmount is required and must be a string representing the amount in standard 9 decimal format' - }) - return - } - - // Solana connections - const connection = getConnection() - const dbcClient = new DynamicBondingCurveClient(connection, 'confirmed') - const jupiterApi = createJupiterApiClient() - const { - virtualPoolState, - poolConfigState, - maxAudioInputAmount, - maxTokenOutputAmount - } = await getLaunchpadConfig() - - // Handle AUDIO -> token quote - if (audioInputAmount && audioInputAmount) { - const audioInputOrMax = new BN(audioInputAmount).gt( - new BN(maxAudioInputAmount) - ) - ? maxAudioInputAmount - : audioInputAmount - const quoteFromAudioData = await getQuoteFromAudioInput( - jupiterApi, - dbcClient, - audioInputOrMax, - virtualPoolState, - poolConfigState - ) - res.status(200).send({ - ...quoteFromAudioData, - maxAudioInputAmount, - maxTokenOutputAmount - } as FirstBuyQuoteResponse) - } - - // Handle token -> AUDIO quote - if (tokenOutputAmount && tokenOutputAmount) { - const quoteFromTokenData = await getQuoteFromTokenOutput( - jupiterApi, - dbcClient, - tokenOutputAmount, - virtualPoolState, - poolConfigState - ) - res.status(200).send({ - ...quoteFromTokenData, - maxAudioInputAmount, - maxTokenOutputAmount - } as FirstBuyQuoteResponse) - } - } catch (error) { - logger.error(error) - res.status(500).json({ - error: 'Failed to get first buy quote', - details: error instanceof Error ? error.message : 'Unknown error' - }) - } -} - -const getLaunchpadConfig = async (): Promise<{ - virtualPoolState: VirtualPool - poolConfigState: PoolConfig - maxAudioInputAmount: string - maxTokenOutputAmount: string - sqrtStartPrice: BN -}> => { - // Build a mock config and virtual pool entirely from our local curve design - const dummy = Keypair.generate() - const curve = - config.environment === 'prod' - ? makeCurve({ - payer: dummy, - configKey: dummy, - partner: dummy.publicKey, - rewardPoolAuthority: dummy.publicKey - }) - : makeTestCurve({ - payer: dummy, - configKey: dummy, - partner: dummy.publicKey, - rewardPoolAuthority: dummy.publicKey - }) - - const migrationSqrtPrice = curve.curve[curve.curve.length - 1].sqrtPrice - const swapBaseAmount = getBaseTokenForSwap( - curve.sqrtStartPrice, - migrationSqrtPrice, - curve.curve - ) - const poolConfigState = { - quoteMint: curve.quoteMint, - tokenDecimal: curve.tokenDecimal, - sqrtStartPrice: curve.sqrtStartPrice, - migrationQuoteThreshold: curve.migrationQuoteThreshold, - collectFeeMode: curve.collectFeeMode, - activationType: curve.activationType, - tokenType: curve.tokenType, - poolFees: { - ...curve.poolFees, - dynamicFee: curve.poolFees.dynamicFee ?? { initialized: false } - }, - migrationOption: curve.migrationOption, - migrationFeeOption: curve.migrationFeeOption, - migratedPoolFee: curve.migratedPoolFee, - migrationFee: curve.migrationFee, - partnerLpPercentage: curve.partnerLpPercentage, - creatorLpPercentage: curve.creatorLpPercentage, - partnerLockedLpPercentage: curve.partnerLockedLpPercentage, - creatorLockedLpPercentage: curve.creatorLockedLpPercentage, - creatorTradingFeePercentage: curve.creatorTradingFeePercentage, - curve: curve.curve, - lockedVesting: curve.lockedVesting, - padding: curve.padding, - swapBaseAmount, - migrationSqrtPrice - // TODO: type this better but for now this is enough to get the math correct - } as unknown as PoolConfig - - const virtualPoolState = { - sqrtPrice: curve.sqrtStartPrice, - quoteReserve: new BN(0), - baseReserve: new BN(0), - volatilityTracker: { volatilityAccumulator: new BN(0) }, - activationPoint: new BN(0) - } as VirtualPool - - const maxAudioInputAmount = poolConfigState.migrationQuoteThreshold - .muln(100) - .divn(99) - .toString() - const maxTokenOutputAmount = poolConfigState.swapBaseAmount.toString() - return { - virtualPoolState, - poolConfigState, - maxAudioInputAmount, - maxTokenOutputAmount, - sqrtStartPrice: poolConfigState.sqrtStartPrice - } -} - -export const getLaunchpadConfigRoute = async ( - _: Request, - res: Response -): Promise => { - try { - const { maxAudioInputAmount, maxTokenOutputAmount } = - await getLaunchpadConfig() - - res.status(200).send({ - maxAudioInputAmount, - maxTokenOutputAmount - }) - } catch (e) { - res.status(500).send() - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/getKeypair.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/getKeypair.ts deleted file mode 100644 index 197e6aebb38..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/getKeypair.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { SolKeypairs } from '@pedalboard/storage' -import { Keypair } from '@solana/web3.js' -import { Logger } from 'pino' - -import { db } from '../../db' - -export const getKeypair = async (logger: Logger): Promise => { - const [deleted] = await db('sol_keypairs') - .whereIn('public_key', function () { - this.select('public_key').from('sol_keypairs').limit(1) - }) - .delete() - .returning(['private_key']) - if (!deleted) { - logger.warn('No keypair found, generating random one instead') - return Keypair.generate() - } - - return Keypair.fromSecretKey(Uint8Array.from(deleted.private_key)) -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/launch_coin.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/launch_coin.ts deleted file mode 100644 index 8834f2903c1..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/launch_coin.ts +++ /dev/null @@ -1,539 +0,0 @@ -import { createHash } from 'crypto' - -import { RewardManagerProgram } from '@audius/spl' -import { - createGenericFile, - signerIdentity, - createSignerFromKeypair, - sol, - subtractAmounts, - isLessThanAmount -} from '@metaplex-foundation/umi' -import { createUmi } from '@metaplex-foundation/umi-bundle-defaults' -import { - irysUploader, - isIrysUploader -} from '@metaplex-foundation/umi-uploader-irys' -import { - deriveDbcPoolAddress, - DynamicBondingCurveClient -} from '@meteora-ag/dynamic-bonding-curve-sdk' -import { - Keypair, - PublicKey, - TransactionInstruction, - TransactionMessage, - VersionedTransaction -} from '@solana/web3.js' -import BN from 'bn.js' -import bs58 from 'bs58' -import { Request, Response } from 'express' -import sharp from 'sharp' - -import { config } from '../../config' -import { logger } from '../../logger' -import { getConnection, connections } from '../../utils/connections' -import { sendTransactionWithRetries } from '../../utils/transaction' -import { associateExternalWallet } from '../relay/associateExternalWallet' - -import { AUDIO_MINT } from './constants' -import { makeCurve, makeTestCurve } from './curve' -import { getKeypair } from './getKeypair' -import { createRewardPool } from './reward_pool' - -interface LaunchCoinRequestBody { - name: string - symbol: string - walletPublicKey: string - description: string - initialBuyAmountAudio?: string // NOTE: should be in big number format (no decimals) -} - -const AUDIUS_COIN_URL = (ticker: string) => `https://audius.co/coins/${ticker}` - -const MIN_IRYS_BALANCE = sol(0.1) // Min balance to keep in Irys per fee payer -const FUND_TO_IRYS_BALANCE = sol(0.15) // Amount to fund Irys balance to - -type FeePayerUmi = { - umi: ReturnType -} - -const feePayerUmis: FeePayerUmi[] = config.solanaFeePayerWallets.map( - (feePayer, i) => { - const endpoint = connections[i % connections.length].rpcEndpoint - const umi = createUmi(endpoint).use(irysUploader()) - const umiKeypair = umi.eddsa.createKeypairFromSecretKey(feePayer.secretKey) - const signer = createSignerFromKeypair(umi, umiKeypair) - umi.use(signerIdentity(signer)) - return { umi } - } -) - -const topUpIrysBalances = async () => { - await Promise.all( - feePayerUmis.map(async ({ umi }, idx) => { - try { - const uploader = umi.uploader - if (!isIrysUploader(uploader)) return - const balance = await uploader.getBalance() - if (isLessThanAmount(balance, MIN_IRYS_BALANCE)) { - logger.info({ - message: 'Irys balance is less than target balance', - balance, - targetBalance: FUND_TO_IRYS_BALANCE - }) - const required = subtractAmounts(FUND_TO_IRYS_BALANCE, balance) - logger.info({ - message: 'Required Irys balance', - required - }) - if (required.basisPoints > BigInt(0)) { - await uploader.fund(required, true) - logger.info({ - message: 'Topped up Irys balance', - feePayerIndex: idx - }) - } - } - } catch (e) { - logger.warn({ message: 'Failed to top up Irys balance', idx, e }) - } - }) - ) -} -topUpIrysBalances() -setInterval(topUpIrysBalances, 5 * 60 * 1000) - -/** - * Launches a new coin on the launchpad with bonding curve. - * The coin is created with a new mint and a new config. - * Process: - * 1. Creates metadata for the new coin - * 2. Create a config for the new coin - * 3. Return transactions to sign and send from the client - * 4. Spawning a process to create a reward pool for the new coin in the background - * @param req Request object containing the coin details - * @param res Response object containing the coin details - * @returns Response object containing two transactions - * - Pool creation transaction - * - First buy transaction - */ -export const launchCoin = async ( - req: Request & { - file?: Express.Multer.File - }, - res: Response -) => { - try { - const { solanaFeePayerWallets } = config - - const { - name, - symbol, - description, - walletPublicKey: walletPublicKeyStr, - initialBuyAmountAudio - } = req.body - - // file is the image attached via multer middleware (sent from client as a multipart/form-data request) - const file = req.file - if (!file) { - throw new Error('Image file is required.') - } - - if (!name || !symbol || !file || !description) { - throw new Error( - 'Invalid metadata arguments. Name, symbol, image, and description are all required.' - ) - } - - if (!walletPublicKeyStr) { - throw new Error( - 'Invalid wallet public key. Wallet public key is required.' - ) - } - - if ( - initialBuyAmountAudio !== undefined && - !new BN(initialBuyAmountAudio).gt(new BN(0)) - ) { - throw new Error( - `Invalid initialBuyAmountAudio. Initial buy amount must be a number > 0. Received: ${initialBuyAmountAudio}` - ) - } - - const connection = getConnection() - const dbcClient = new DynamicBondingCurveClient(connection, 'confirmed') - - // Account / Keypair Setup - // ------------------------------------------------------------ - // The wallet public key is the creator of the coin - const walletPublicKey = new PublicKey(walletPublicKeyStr) - - // The launchpad partner (or fee claiming) for the coin - const launchpadPartnerPublicKey = new PublicKey( - config.launchpadPartnerPublicKey - ) - - // Pick a random fee payer to pay for Tx's - // It also "owns" our new coin metadata and pay for the TX - const index = Math.floor(Math.random() * solanaFeePayerWallets.length) - - // The new mint keypair for the coin - const mintKeypair = await getKeypair(logger) - - // The audius authority is used to create the dbc config - const audiusAuthorityKeypair = Keypair.fromSecretKey( - bs58.decode(config.launchpadPartnerSignerPrivateKey) - ) - - // Deterministic token account for reward pool custody (pubkey used in config) - const rewardManagerState = deriveKeypair( - 'reward-manager', - mintKeypair.publicKey - ) - logger.info({ - message: 'Derived reward pool token account', - mint: mintKeypair.publicKey.toBase58(), - rewardManagerState: rewardManagerState.publicKey.toBase58() - }) - - // Transaction Execution - // ------------------------------------------------------------ - - // 1. Create Coin Metadata - logger.info({ - message: 'Creating coin metadata', - name, - symbol - }) - const umi = feePayerUmis[index].umi - - // Resize incoming image to 1000x1000 and convert to png for consistency - const img = sharp(file.buffer) - const { width, height } = await img.metadata() - const resizedBuffer = - width && height && (width > 1000 || height > 1000) - ? await img.resize(1000, 1000, { fit: 'inside' }).png().toBuffer() - : await img.png().toBuffer() - - const umiImageFile = createGenericFile(resizedBuffer, '', { - tags: [{ name: 'Content-Type', value: 'image/png' }] - }) - const imageUris = await umi.uploader.upload([umiImageFile]) - const imageUri = imageUris[0] - const metadata = { - name, - symbol, - description, - image: imageUri, - external_url: AUDIUS_COIN_URL(symbol), - attributes: [], - isMutable: false - } - const metadataUri = await umi.uploader.uploadJson(metadata) - logger.info({ - message: 'Coin metadata creator', - name, - symbol, - metadataUri - }) - - // 2. Create a config for the new coin - const configKeypair = Keypair.generate() - logger.info({ - message: 'Creating config for new coin', - name, - symbol, - configKeypair: configKeypair.publicKey.toBase58() - }) - const rewardPoolTokenAuthority = RewardManagerProgram.deriveAuthority({ - programId: new PublicKey(config.rewardsManagerProgramId), - rewardManagerState: rewardManagerState.publicKey - }) - const createConfigTx = await dbcClient.partner.createConfig( - config.environment === 'prod' - ? makeCurve({ - payer: audiusAuthorityKeypair, - configKey: configKeypair, - partner: launchpadPartnerPublicKey, - rewardPoolAuthority: rewardPoolTokenAuthority - }) - : makeTestCurve({ - payer: audiusAuthorityKeypair, - configKey: configKeypair, - partner: launchpadPartnerPublicKey, - rewardPoolAuthority: rewardPoolTokenAuthority - }) - ) - const createConfigRecentBlockhash = await connection.getLatestBlockhash() - const createConfigMessage = new TransactionMessage({ - recentBlockhash: createConfigRecentBlockhash.blockhash, - instructions: [...createConfigTx.instructions], - payerKey: audiusAuthorityKeypair.publicKey - }) - const createConfigTransaction = new VersionedTransaction( - createConfigMessage.compileToV0Message() - ) - createConfigTransaction.sign([ - configKeypair, // the keypair the config is deployed to - audiusAuthorityKeypair // the audius authority - ]) - const createConfigSignature = await sendTransactionWithRetries({ - transaction: createConfigTransaction, - commitment: 'confirmed', - confirmationStrategy: { - ...createConfigRecentBlockhash, - signature: bs58.encode(createConfigTransaction.signatures[0]) - }, - logger - }) - await connection.confirmTransaction({ - signature: createConfigSignature, - blockhash: createConfigRecentBlockhash.blockhash, - lastValidBlockHeight: createConfigRecentBlockhash.lastValidBlockHeight - }) - logger.info({ - message: 'Created config', - name, - symbol, - signature: createConfigSignature - }) - - // 3. Create pool and first buy - logger.info({ - message: 'Preparing create pool and swap buy transactions', - name, - symbol - }) - const { createPoolTx, swapBuyTx } = - await dbcClient.pool.createPoolWithFirstBuy({ - createPoolParam: { - config: configKeypair.publicKey, - name, - symbol, - uri: metadataUri, - poolCreator: walletPublicKey, - baseMint: mintKeypair.publicKey, - payer: walletPublicKey - }, - firstBuyParam: initialBuyAmountAudio - ? { - buyer: walletPublicKey, - receiver: walletPublicKey, - buyAmount: new BN(initialBuyAmountAudio), // Needs to already be formatted with correct decimals - minimumAmountOut: new BN(0), // No slippage protection for initial buy - referralTokenAccount: null // No referral for creator's initial buy - } - : undefined - }) - - /* - * Prepare the transactions to be signed by the client - * We partially sign so that the user can sign with their wallet and send the transactions - */ - // Add a no-op memo instruction to get the audius authority to sign - createPoolTx.add( - new TransactionInstruction({ - programId: new PublicKey('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'), - keys: [ - { - pubkey: audiusAuthorityKeypair.publicKey, - isSigner: true, - isWritable: false - } - ], - data: Buffer.alloc(0) - }) - ) - createPoolTx.feePayer = walletPublicKey - createPoolTx.recentBlockhash = ( - await connection.getLatestBlockhash() - ).blockhash - createPoolTx.partialSign(mintKeypair, audiusAuthorityKeypair) - if (swapBuyTx) { - swapBuyTx.recentBlockhash = ( - await connection.getLatestBlockhash() - ).blockhash - swapBuyTx.feePayer = walletPublicKey - } - - res.status(200).send({ - mintPublicKey: mintKeypair.publicKey.toBase58(), - configPublicKey: configKeypair.publicKey.toBase58(), - imageUri, - createPoolTx: Buffer.from( - createPoolTx.serialize({ requireAllSignatures: false }) - ).toString('base64'), - firstBuyTx: swapBuyTx - ? Buffer.from( - swapBuyTx.serialize({ requireAllSignatures: false }) - ).toString('base64') - : undefined, - metadataUri - }) - } catch (e) { - logger.error('Error creating coin for launchpad') - logger.error(e) - res.status(500).send() - } -} - -// Deterministically derive a Keypair from the launchpad deterministic secret, label, and mint -const deriveKeypair = (label: string, mint: PublicKey): Keypair => { - const seedMaterial = Buffer.concat([ - Buffer.from(config.launchpadDeterministicSecret, 'utf8'), - Buffer.from('audius-launchpad', 'utf8'), - Buffer.from(label, 'utf8'), - mint.toBuffer() - ]) - const seed = createHash('sha256').update(seedMaterial).digest() - return Keypair.fromSeed(seed) -} - -interface ConfirmLaunchCoinRequestBody { - mintPublicKey: string - configPublicKey: string - createPoolTx: string // base64 VersionedTransaction, fully signed - firstBuyTx?: string // base64 VersionedTransaction, fully signed -} - -export const confirmLaunchCoin = async ( - req: Request, - res: Response -) => { - try { - const { mintPublicKey, configPublicKey, createPoolTx, firstBuyTx } = - req.body - if (!mintPublicKey || !configPublicKey || !createPoolTx) { - return res.status(400).send({ - error: 'mintPublicKey, configPublicKey, and createPoolTx are required' - }) - } - - const connection = getConnection() - - // Deserialize transactions - const createPoolTransaction = VersionedTransaction.deserialize( - Buffer.from(createPoolTx, 'base64') - ) - const swapTransaction = firstBuyTx - ? VersionedTransaction.deserialize(Buffer.from(firstBuyTx, 'base64')) - : null - - // 1. Send create pool transaction and wait for confirmation - const createSig = bs58.encode(createPoolTransaction.signatures[0]) - await sendTransactionWithRetries({ - transaction: createPoolTransaction, - commitment: 'confirmed', - sendOptions: { - skipPreflight: true - }, - confirmationStrategy: { - ...(await connection.getLatestBlockhash()), - signature: createSig - }, - logger - }) - - // 2. After confirmation, create reward pool using deterministic keys - const mint = new PublicKey(mintPublicKey) - - const manager = deriveKeypair('manager', mint) - const rewardManager = deriveKeypair('reward-manager', mint) - - logger.info({ - message: 'Derived reward pool accounts', - mint: mint.toBase58(), - manager: manager.publicKey.toBase58(), - rewardManager: rewardManager.publicKey.toBase58() - }) - - // Pick a random fee payer - const { solanaFeePayerWallets } = config - const index = Math.floor(Math.random() * solanaFeePayerWallets.length) - const feePayer = solanaFeePayerWallets[index] - const tokenAccount = Keypair.generate() - - const rewardPoolInstructions = await createRewardPool({ - connection, - feePayer, - manager, - rewardManager, - tokenAccount, - mint - }) - const rewardPoolRecentBlockhash = await connection.getLatestBlockhash() - const rewardPoolMessage = new TransactionMessage({ - recentBlockhash: rewardPoolRecentBlockhash.blockhash, - instructions: rewardPoolInstructions, - payerKey: feePayer.publicKey - }) - const rewardPoolTransaction = new VersionedTransaction( - rewardPoolMessage.compileToV0Message() - ) - rewardPoolTransaction.sign([feePayer, manager, rewardManager, tokenAccount]) - const base64tx = Buffer.from(rewardPoolTransaction.serialize()).toString( - 'base64' - ) - logger.info({ - message: 'Reward pool transaction', - base64tx - }) - const rewardSig = bs58.encode(rewardPoolTransaction.signatures[0]) - await sendTransactionWithRetries({ - transaction: rewardPoolTransaction, - commitment: 'confirmed', - sendOptions: { - skipPreflight: true - }, - confirmationStrategy: { - ...rewardPoolRecentBlockhash, - signature: rewardSig - }, - logger - }) - - // 3. Send the user's first buy transaction if provided - let swapSig: string | undefined - if (swapTransaction) { - swapSig = bs58.encode(swapTransaction.signatures[0]) - await sendTransactionWithRetries({ - transaction: swapTransaction, - commitment: 'confirmed', - sendOptions: { - skipPreflight: true - }, - confirmationStrategy: { - ...(await connection.getLatestBlockhash()), - signature: swapSig - }, - logger - }) - } - - if (res.locals.signerUser?.user_id) { - logger.info('Associating external wallet...') - await associateExternalWallet( - createPoolTransaction, - res.locals.signerUser?.user_id - ) - } - - const dbcPool = deriveDbcPoolAddress( - new PublicKey(AUDIO_MINT), - new PublicKey(mintPublicKey), - new PublicKey(configPublicKey) - ) - return res.status(200).send({ - dbcPool, - createSignature: createSig, - rewardPoolSignature: rewardSig, - firstBuySignature: swapSig - }) - } catch (e) { - logger.error('Error confirming launch coin') - logger.error(e) - res.status(500).send() - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/reward_pool.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/reward_pool.ts deleted file mode 100644 index 55bb457bee0..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/launchpad/reward_pool.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { RewardManagerProgram } from '@audius/spl' -import { TOKEN_PROGRAM_ID } from '@solana/spl-token' -import { - Connection, - Keypair, - PublicKey, - SystemProgram, - TransactionInstruction -} from '@solana/web3.js' - -import { config } from '../../config' - -import { deriveEthAddressForMint } from './derive_eth_address_for_mint' - -const DOMAIN = Buffer.from('claimAuthority') - -const REWARD_MANAGER_SIZE = 66 // 1 (version) + 32 (token_account) + 32 (manager) + 1 (min_votes) -const TOKEN_ACCOUNT_SIZE = 165 - -const STAGE_SENDERS = [ - { - senderEthAddress: '0x140eD283b33be2145ed7d9d15f1fE7bF1E0B2Ac3', - operatorEthAddress: '0x140eD283b33be2145ed7d9d15f1fE7bF1E0B2Ac3' - }, - { - senderEthAddress: '0x4c88d2c0f4c4586b41621aD6e98882ae904B98f6', - operatorEthAddress: '0x4c88d2c0f4c4586b41621aD6e98882ae904B98f6' - }, - { - senderEthAddress: '0x6b52969934076318863243fb92E9C4b3A08267b5', - operatorEthAddress: '0x6b52969934076318863243fb92E9C4b3A08267b5' - } -] - -const PROD_SENDERS = [ - // creatornode.audius.co - { - senderEthAddress: '0xc8d0C29B6d540295e8fc8ac72456F2f4D41088c8', - operatorEthAddress: '0xe5b256d302ea2f4e04B8F3bfD8695aDe147aB68d' - }, - // audius-cn1.tikilabs.com - { - senderEthAddress: '0x159200F84c2cF000b3A014cD4D8244500CCc36ca', - operatorEthAddress: '0xe4882D9A38A2A1fc652996719AF0fb15CB968d0a' - }, - // dn2.monophonic.digital - { - senderEthAddress: '0x422541273087beC833c57D3c15B9e17F919bFB1F', - operatorEthAddress: '0x6470Daf3bd32f5014512bCdF0D02232f5640a5BD' - } -] - -/** - * Creates a reward pool and registers senders (including a deterministic - * fourth "claimauthority" sender derived from (HD_ROOT, mint)). - * - * A reward pool deployment has: - * - rewardManager account: to track state of reward instance - * - manager account: to manage the initial senders - * - authority account: the PDA that owns the token accounts where funds are stored - * - token account: (unused), we store on the ATA of the authority instead - */ -export const createRewardPool = async ({ - connection, - feePayer, - manager, - tokenAccount, - rewardManager, - mint -}: { - connection: Connection - feePayer: Keypair - manager: Keypair - tokenAccount: Keypair - rewardManager: Keypair - mint: PublicKey -}) => { - const instructions: TransactionInstruction[] = [] - - // 1. Create reward manager account (to track state) - instructions.push( - SystemProgram.createAccount({ - fromPubkey: feePayer.publicKey, - newAccountPubkey: rewardManager.publicKey, - lamports: - await connection.getMinimumBalanceForRentExemption(REWARD_MANAGER_SIZE), - space: REWARD_MANAGER_SIZE, - programId: new PublicKey(config.rewardsManagerProgramId) - }) - ) - - // 2. Create token account (note: initialize via your program or add SPL init) - // This is not the ATA for the authority and therefore is not used as the leftover receiver. - instructions.push( - SystemProgram.createAccount({ - fromPubkey: feePayer.publicKey, - newAccountPubkey: tokenAccount.publicKey, - lamports: - await connection.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_SIZE), - space: TOKEN_ACCOUNT_SIZE, - programId: TOKEN_PROGRAM_ID - }) - ) - - // 3. Initialize reward manager - instructions.push( - RewardManagerProgram.createInitInstruction({ - rewardManagerState: rewardManager.publicKey, - tokenAccount: tokenAccount.publicKey, - mint, - manager: manager.publicKey, - minVotes: 3, - rewardManagerProgramId: new PublicKey(config.rewardsManagerProgramId) - }) - ) - - const authority = RewardManagerProgram.deriveAuthority({ - programId: new PublicKey(config.rewardsManagerProgramId), - rewardManagerState: rewardManager.publicKey - }) - - // 4. Add senders (all static senders + deterministic claim authority) - const baseSenders = - config.environment === 'prod' ? PROD_SENDERS : STAGE_SENDERS - - const { address: claimAuthorityEthAddress } = deriveEthAddressForMint( - DOMAIN, - config.launchpadDeterministicSecret, - mint - ) - const senders = [ - ...baseSenders, - { - senderEthAddress: claimAuthorityEthAddress, - // Use a static address for the claim authority so multiple claim authorities can't be used - // to override other senders. - operatorEthAddress: '0x0000000000000000000000000000000000000000' - } - ] - - for (const sender of senders) { - const derivedSender = RewardManagerProgram.deriveSender({ - ethAddress: sender.senderEthAddress, - programId: new PublicKey(config.rewardsManagerProgramId), - authority - }) - instructions.push( - RewardManagerProgram.createSenderInstruction({ - senderEthAddress: sender.senderEthAddress, - operatorEthAddress: sender.operatorEthAddress, - rewardManagerState: rewardManager.publicKey, - manager: manager.publicKey, - authority, - payer: feePayer.publicKey, - sender: derivedSender, - rewardManagerProgramId: new PublicKey(config.rewardsManagerProgramId) - }) - ) - } - - // 5. Resign manager - instructions.push( - RewardManagerProgram.createChangeManagerAccountInstruction({ - rewardManagerState: rewardManager.publicKey, - currentManager: manager.publicKey, - newManager: PublicKey.default, - rewardManagerProgramId: new PublicKey(config.rewardsManagerProgramId) - }) - ) - - return instructions -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/assertListenRateLimiter.test.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/assertListenRateLimiter.test.ts deleted file mode 100644 index a08157168e7..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/assertListenRateLimiter.test.ts +++ /dev/null @@ -1,272 +0,0 @@ -import { beforeEach, describe, expect, it } from 'vitest' - -import { - LISTENS_RATE_LIMIT_IP_PREFIX, - LISTENS_RATE_LIMIT_TRACK_PREFIX, - config -} from '../../config' -import { getRedisConnection } from '../../redis' - -import { - listenRouteRateLimiter, - listensIpRateLimiter, - listensIpTrackRateLimiter -} from './listen' - -beforeEach(async () => { - // run with npm run test with audius-compose up - config.redisUrl = 'redis://audius-discovery-provider-redis-1/00' - const redis = await getRedisConnection() - for await (const key of redis.scanIterator()) { - if ( - key.startsWith(LISTENS_RATE_LIMIT_IP_PREFIX) || - key.startsWith(LISTENS_RATE_LIMIT_TRACK_PREFIX) - ) { - await redis.del(key) - } - } -}) - -describe('Listens Route Rate Limiter', function () { - it('limits independent tracks and users by ip hourly', async function () { - const track1 = 'track1' - const ipOne = '1.2.3.4' - - const track2 = 'track2' - const ipTwo = '2.3.4.5' - - listensIpRateLimiter.setLimits({ hourlyLimit: 10 }) - listensIpTrackRateLimiter.setLimits({ hourlyLimit: 40 }) - - // ten listens for user one with track one - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipOne, trackId: track1 }) - } - const trackOneAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track1 - }) - expect(trackOneAllowed.allowed).toBe(true) - const trackOneNotAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track1 - }) - expect(trackOneNotAllowed.allowed).toBe(false) - - // ten listens for another track with same user - await listenRouteRateLimiter({ ip: ipOne, trackId: track2 }) - // user one can no longer record listens to any tracks because they're blocked at ip level - const trackTwoNotAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track2 - }) - expect(trackTwoNotAllowed.allowed).toBe(false) - - // ten listens for second user and track one, first user is blocked on this one - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipTwo, trackId: track1 }) - } - const trackOneAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track1 - }) - expect(trackOneAllowedUserTwo.allowed).toBe(true) - - // assert both users now blocked on both tracks - const trackOneNotAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track1 - }) - expect(trackOneNotAllowedUserTwo.allowed).toBe(false) - const trackOneNotAllowedUserOne = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track1 - }) - expect(trackOneNotAllowedUserOne.allowed).toBe(false) - - // assert both users now blocked on both tracks - const trackTwoNotAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track2 - }) - expect(trackTwoNotAllowedUserTwo.allowed).toBe(false) - const trackTwoNotAllowedUserOne = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track2 - }) - expect(trackTwoNotAllowedUserOne.allowed).toBe(false) - }) - - it('limits independent tracks and users by track and ip hourly', async function () { - const track1 = 'track1' - const ipOne = '1.2.3.4' - - const track2 = 'track2' - const ipTwo = '2.3.4.5' - - // set config so hourly track and ip is the lowest - listensIpRateLimiter.setLimits({ hourlyLimit: 100 }) - listensIpTrackRateLimiter.setLimits({ hourlyLimit: 10 }) - - // ten listens for user one with track one - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipOne, trackId: track1 }) - } - const trackOneAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track1 - }) - expect(trackOneAllowed.allowed).toBe(true) - const trackOneNotAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track1 - }) - expect(trackOneNotAllowed.allowed).toBe(false) - - // ten listens for another track with same user - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipOne, trackId: track2 }) - } - const trackTwoAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track2 - }) - expect(trackTwoAllowed.allowed).toBe(true) - const trackTwoNotAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track2 - }) - expect(trackTwoNotAllowed.allowed).toBe(false) - - // ten listens for second user and track one, first user is blocked on this one - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipTwo, trackId: track1 }) - } - - const trackOneAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track1 - }) - expect(trackOneAllowedUserTwo.allowed).toBe(true) - - // assert both users now blocked on both tracks - const trackOneNotAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track1 - }) - expect(trackOneNotAllowedUserTwo.allowed).toBe(false) - const trackOneNotAllowedUserOne = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track1 - }) - expect(trackOneNotAllowedUserOne.allowed).toBe(false) - - // ten listens for second track from second user - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipTwo, trackId: track2 }) - } - const trackTwoAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track2 - }) - expect(trackTwoAllowedUserTwo.allowed).toBe(true) - - // assert both users now blocked on both tracks - const trackTwoNotAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track2 - }) - expect(trackTwoNotAllowedUserTwo.allowed).toBe(false) - const trackTwoNotAllowedUserOne = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track2 - }) - expect(trackTwoNotAllowedUserOne.allowed).toBe(false) - }) - - it('limits independent tracks and users by track and ip weekly', async function () { - const track1 = 'track1' - const ipOne = '1.2.3.4' - - const track2 = 'track2' - const ipTwo = '2.3.4.5' - - // set config so weekly track and ip is the lowest - listensIpRateLimiter.setLimits({ hourlyLimit: 100 }) - listensIpTrackRateLimiter.setLimits({ hourlyLimit: 100, weeklyLimit: 10 }) - - // ten listens for user one with track one - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipOne, trackId: track1 }) - } - const trackOneAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track1 - }) - expect(trackOneAllowed.allowed).toBe(true) - const trackOneNotAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track1 - }) - expect(trackOneNotAllowed.allowed).toBe(false) - - // ten listens for another track with same user - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipOne, trackId: track2 }) - } - const trackTwoAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track2 - }) - expect(trackTwoAllowed.allowed).toBe(true) - const trackTwoNotAllowed = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track2 - }) - expect(trackTwoNotAllowed.allowed).toBe(false) - - // ten listens for second user and track one, first user is blocked on this one - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipTwo, trackId: track1 }) - } - const trackOneAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track1 - }) - expect(trackOneAllowedUserTwo.allowed).toBe(true) - - // assert both users now blocked on both tracks - const trackOneNotAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track1 - }) - expect(trackOneNotAllowedUserTwo.allowed).toBe(false) - const trackOneNotAllowedUserOne = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track1 - }) - expect(trackOneNotAllowedUserOne.allowed).toBe(false) - - // ten listens for second track from second user - for (let i = 0; i < 9; i++) { - await listenRouteRateLimiter({ ip: ipTwo, trackId: track2 }) - } - const trackTwoAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track2 - }) - expect(trackTwoAllowedUserTwo.allowed).toBe(true) - - // assert both users now blocked on both tracks - const trackTwoNotAllowedUserTwo = await listenRouteRateLimiter({ - ip: ipTwo, - trackId: track2 - }) - expect(trackTwoNotAllowedUserTwo.allowed).toBe(false) - const trackTwoNotAllowedUserOne = await listenRouteRateLimiter({ - ip: ipOne, - trackId: track2 - }) - expect(trackTwoNotAllowedUserOne.allowed).toBe(false) - }) -}) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/listen.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/listen.ts deleted file mode 100644 index 7a3788f3323..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/listen.ts +++ /dev/null @@ -1,283 +0,0 @@ -import { - Connection, - Transaction, - TransactionMessage, - VersionedTransaction -} from '@solana/web3.js' -import bs58 from 'bs58' -import { NextFunction, Request, Response } from 'express' -import { Logger } from 'pino' -import { recover } from 'web3-eth-accounts' -import { keccak256 } from 'web3-utils' -import { z } from 'zod' - -import { - LISTENS_RATE_LIMIT_IP_PREFIX, - LISTENS_RATE_LIMIT_TRACK_PREFIX, - config -} from '../../config' -import { RateLimiter } from '../../middleware/rateLimiter' -import { getCachedContentNodes } from '../../redis' -import { normalizeEp, getConnection } from '../../utils/connections' -import { getIP, getIpData } from '../../utils/ipData' -import { sortKeys } from '../../utils/sortKeys' -import { sendTransactionWithRetries } from '../../utils/transaction' - -import { - createTrackListenInstructions, - getFeePayerKeyPair -} from './trackListenInstructions' - -export type LocationData = { - city: string - region: string - country: string -} | null - -export const recordListenBodySchema = z.object({ - userId: z.string(), - timestamp: z.string(), - signature: z.string() -}) - -export const recordListenParamsSchema = z.object({ - // validate that it can parse as an int - trackId: z - .string() - .transform((s) => parseInt(s)) - .refine((val) => !isNaN(val), { - message: 'trackId must be a numeric string' - }) - .transform((val) => val.toString()) -}) - -let conn: Connection | null = null - -export const getListensConnection = (): Connection => { - if (conn) { - return conn - } - conn = new Connection(normalizeEp(config.listenRpcUrl)) - return conn -} - -export interface RecordListenRequest extends Request { - body: z.infer - params: z.infer -} - -export type RecordListenParams = { - logger: Logger - trackId: string - userId: string - ip: string -} - -export type RecordListenResponse = { - solTxSignature: string | null -} - -export const listensIpRateLimiter = new RateLimiter({ - prefix: LISTENS_RATE_LIMIT_IP_PREFIX, - hourlyLimit: config.listensIpHourlyRateLimit, - dailyLimit: config.listensIpDailyRateLimit, - weeklyLimit: config.listensIpWeeklyRateLimit -}) -export const listensIpTrackRateLimiter = new RateLimiter({ - prefix: LISTENS_RATE_LIMIT_TRACK_PREFIX, - hourlyLimit: config.listensTrackHourlyRateLimit, - dailyLimit: config.listensTrackDailyRateLimit, - weeklyLimit: config.listensTrackWeeklyRateLimit -}) - -export const recordListen = async ( - params: RecordListenParams -): Promise => { - const { logger: parentLogger, userId, trackId, ip } = params - const logger = parentLogger.child({ - id: `${userId}-${trackId}-${new Date().getUTCSeconds()}` - }) - - logger.info({ ip }, 'record listen') - - const location = await getIpData(logger, ip) - - logger.info({ location }, 'location') - - const [secpInstruction, listenInstruction] = - await createTrackListenInstructions({ - logger, - userId, - trackId, - location - }) - - logger.info({ secpInstruction, listenInstruction }, 'instructions') - const latestBlockHash = await getListensConnection().getLatestBlockhash() - - const feePayer = getFeePayerKeyPair() - const tx = new Transaction({ - blockhash: latestBlockHash.blockhash, - lastValidBlockHeight: latestBlockHash.lastValidBlockHeight - }) - .add(secpInstruction) - .add(listenInstruction) - tx.feePayer = feePayer.publicKey - tx.sign(feePayer) - - logger.info({ tx }, 'tx') - - const message = new TransactionMessage({ - payerKey: feePayer.publicKey, - recentBlockhash: latestBlockHash.blockhash, - instructions: tx.instructions - }) - - const versionedMessage = message.compileToV0Message() - - const transaction = new VersionedTransaction(versionedMessage) - transaction.sign([feePayer]) - - const signature = bs58.encode(transaction.signatures[0]) - const confirmationStrategy = { ...latestBlockHash, signature } - - logger.info( - { latestBlockHash, versionedMessage, transaction, signature }, - 'pre send' - ) - - const solTxSignature = await getListensConnection().sendRawTransaction( - transaction.serialize(), - { - skipPreflight: true - } - ) - - logger.info({ solTxSignature }, 'transaction sig') - - return { solTxSignature } -} - -export const validateListenSignature = async ( - timestamp: string, - signature: string -): Promise => { - const data = JSON.stringify(sortKeys({ data: 'listen', timestamp })) - const hashedData = keccak256(data) - const recoveredWallet = recover(hashedData, signature) - const contentNodes = await getCachedContentNodes() - - // if from identity service - if (recoveredWallet === config.identityRelayerPublicKey) { - return true - } - - // if from registered content node - for (const { delegateOwnerWallet } of contentNodes) { - if (recoveredWallet === delegateOwnerWallet) return true - } - return false -} - -// rate limiter for after request validation -export const listenRouteRateLimiter = async (params: { - ip: string - trackId: string - logger?: Logger -}): Promise<{ allowed: boolean }> => { - const { ip, trackId, logger } = params - const ipTrackConcatKey = `${ip}:${trackId}` - - // consume and check rate limits - const ipLimit = await listensIpRateLimiter.checkLimit(ip) - const ipTrackLimit = - await listensIpTrackRateLimiter.checkLimit(ipTrackConcatKey) - - // merge limits and check if both allow passage - const allowed = ipLimit.allowed && ipTrackLimit.allowed - - if (!allowed) { - logger?.info({ ipLimit, ipTrackLimit, ip }, 'rate limit hit') - } - - return { allowed } -} - -export const listen = async ( - req: Request, - res: Response, - next: NextFunction -) => { - res.status(200).json({ - solTxSignature: null - }) - next() - - // Add back to enable solana plays - - // let logger - // try { - // logger = res.locals.logger - - // // if not prod, just return 200 - // if (config.environment !== 'prod') { - // logger.info('not prod, skipping listen') - // res.status(200).json({ - // solTxSignature: null - // }) - // next() - // return - // } - - // // validation - // const { userId, timestamp, signature } = recordListenBodySchema.parse( - // req.body - // ) - // const { trackId } = recordListenParamsSchema.parse(req.params) - // const host = req.hostname - // logger = res.locals.logger.child({ userId, trackId, host }) - // const ip = getIP(req) - - // // require request came from content - // if (!(await validateListenSignature(timestamp, signature))) { - // logger.info( - // { userId, trackId, ip, timestamp, signature }, - // 'unauthorized request' - // ) - // res.status(401).json({ message: 'Unauthorized Error' }) - // next() - // return - // } - - // // check rate limit on forwarded IP and track - // const allowed = await listenRouteRateLimiter({ ip, trackId, logger }) - // if (!allowed) { - // res.send(429).json({ message: 'Too Many Requests' }) - // next() - // return - // } - - // // record listen after validation - // const record = await recordListen({ userId, trackId, logger, ip }) - // return res.status(200).json(record) - // } catch (e: unknown) { - // if (e instanceof z.ZodError) { - // logger?.error({ error: String(e) }, 'validation error') - // return res - // .status(400) - // .json({ message: 'Validation Error', errors: e.errors }) - // } - // if (e instanceof Error) { - // logger?.error( - // { message: e.message, stack: e.stack, name: e.name }, - // 'listen error' - // ) - // } else if (typeof e === 'object' && e !== null) { - // logger?.error({ error: JSON.stringify(e) }, 'listen error') - // } else { - // logger?.error({ error: String(e) }, 'listen error') - // } - // res.status(500).json({ message: 'Internal Server Error' }) - // next(e) - // } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/trackListenInstructions.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/trackListenInstructions.ts deleted file mode 100644 index a2fddb3d5a0..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/listen/trackListenInstructions.ts +++ /dev/null @@ -1,251 +0,0 @@ -import { - Connection, - Keypair, - PublicKey, - Secp256k1Program, - TransactionInstruction -} from '@solana/web3.js' -import { serialize } from 'borsh' -import keccak256 from 'keccak256' -import { Logger } from 'pino' -import secp256k1 from 'secp256k1' - -import { ClockProgram, InstructionsProgram, config } from '../../config' -import { connections } from '../../utils/connections' -import { LocationData } from '../../utils/ipData' - -class TrackData { - userId: string - trackId: string - source: string - timestamp: number - constructor({ - userId, - trackId, - source, - timestamp - }: { - userId: string - trackId: string - source: string - timestamp: number - }) { - this.userId = userId - this.trackId = trackId - this.source = source - this.timestamp = timestamp - } -} - -const trackDataSchema = new Map([ - [ - TrackData, - { - kind: 'struct', - fields: [ - ['userId', 'string'], - ['trackId', 'string'], - ['source', 'string'], - ['timestamp', 'u64'] - ] - } - ] -]) - -class InstructionArgs { - trackData: TrackData - signature: number[] - recoveryId: number - constructor({ - trackData, - signature, - recoveryId - }: { - trackData: TrackData - signature: number[] - recoveryId: number - }) { - this.trackData = trackData - this.signature = signature - this.recoveryId = recoveryId - } -} - -class InstructionEnum { - instruction: InstructionArgs - choose: string - constructor({ - instruction, - choose - }: { - instruction: InstructionArgs - choose: string - }) { - this.instruction = instruction - this.choose = choose - } -} - -// @ts-expect-error instructionSchema doesn't have correct type when converted from js -const instructionSchema = new Map([ - [ - InstructionEnum, - { - kind: 'enum', - field: 'choose', - values: [['instruction', InstructionArgs]] - } - ], - [ - InstructionArgs, - { - kind: 'struct', - fields: [ - ['trackData', TrackData], - ['signature', [64]], - ['recoveryId', 'u8'] - ] - } - ], - [ - TrackData, - { - kind: 'struct', - fields: [ - ['userId', 'string'], - ['trackId', 'string'], - ['source', 'string'], - ['timestamp', 'u64'] - ] - } - ] -]) - -let cachedListenBlocktime: number | null = null -let lastRetrievedListenBlocktime: number | null = null - -async function getListenTimestamp(connection: Connection) { - const currentEpochInSec = Math.round(Date.now() / 1000) - if ( - cachedListenBlocktime && - lastRetrievedListenBlocktime && - Math.abs(lastRetrievedListenBlocktime - currentEpochInSec) < 30 - ) { - return cachedListenBlocktime - } - - const slot = await connection.getSlot('finalized') - const blockTime = await connection.getBlockTime(slot) - - // update cached values - cachedListenBlocktime = blockTime - lastRetrievedListenBlocktime = currentEpochInSec - - return blockTime -} - -export function getFeePayerKeyPair(): Keypair { - const feePayers = config.solanaFeePayerWallets - const randomFeePayerIndex = Math.floor(Math.random() * feePayers.length) - return feePayers[randomFeePayerIndex] -} - -export async function createTrackListenInstructions({ - logger, - userId, - trackId, - location -}: { - logger: Logger - userId: string - trackId: string - location: LocationData -}): Promise { - const trackListenProgram = new PublicKey(config.trackListenCountProgramId) - const ethRegistryProgram = new PublicKey(config.ethRegistryProgramId) - const validSignerPubK = new PublicKey(config.listensValidSigner) - const privKey = Buffer.from(config.solanaSignerPrivateKey, 'hex') - const pubKey = secp256k1.publicKeyCreate(privKey, false).slice(1) - - logger.info( - { trackListenProgram, ethRegistryProgram, validSignerPubK }, - 'ids and keys' - ) - - const connection = connections[0] - const source = 'relay' - - const accInfo = await connection.getAccountInfo(validSignerPubK) - const accPublicKeyInit = accInfo?.data.toJSON().data.slice(1, 33) - - logger.info({ accInfo }, 'account info') - - if (accPublicKeyInit === undefined) { - throw new Error('pub key not found for acc info') - } - - const signerGroup = new PublicKey(accPublicKeyInit) - - const sourceData = - location === null ? source : JSON.stringify({ source, location }) - - const trackData = new TrackData({ - userId, - trackId, - source: sourceData, - timestamp: - (await getListenTimestamp(connection)) || - Math.round(new Date().getTime() / 1000) - }) - - logger.info({ signerGroup, sourceData, trackData }, 'some data') - - const serializedTrackData = serialize(trackDataSchema, trackData) - const buffered = Buffer.from(serializedTrackData) - const msgHash = keccak256(buffered) - - const sigObj = secp256k1.ecdsaSign(Uint8Array.from(msgHash), privKey) - - const instructionArgs = new InstructionArgs({ - trackData, - signature: Array.from(sigObj.signature), - recoveryId: sigObj.recid - }) - - const instructionData = new InstructionEnum({ - instruction: instructionArgs, - choose: 'instruction' - }) - - const serializedInstructionArgs = serialize( - instructionSchema, - instructionData - ) - - logger.info({ serializedTrackData, serializedInstructionArgs }, 'serialized') - - const secpInstruction = Secp256k1Program.createInstructionWithPublicKey({ - publicKey: pubKey, - message: serializedTrackData, - signature: sigObj.signature, - recoveryId: sigObj.recid - }) - - const listenInstruction = new TransactionInstruction({ - keys: [ - { pubkey: validSignerPubK, isSigner: false, isWritable: false }, - { pubkey: signerGroup, isSigner: false, isWritable: false }, - { - pubkey: ethRegistryProgram, - isSigner: false, - isWritable: false - }, - { pubkey: InstructionsProgram, isSigner: false, isWritable: false }, - { pubkey: ClockProgram, isSigner: false, isWritable: false } - ], - programId: trackListenProgram, - data: Buffer.from(serializedInstructionArgs) - }) - - return [secpInstruction, listenInstruction] -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/constants.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/constants.ts deleted file mode 100644 index 9e0f3ce58f7..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Slippage tolerance for swaps (in basis points) -export const SWAP_SLIPPAGE_BPS = 5000 diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/swap_coin.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/swap_coin.ts deleted file mode 100644 index 92bb65b5d18..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/swap_coin.ts +++ /dev/null @@ -1,344 +0,0 @@ -import { CpAmm } from '@meteora-ag/cp-amm-sdk' -import { - DynamicBondingCurveClient, - SwapMode -} from '@meteora-ag/dynamic-bonding-curve-sdk' -import { - SolMeteoraDammV2Pools, - SolMeteoraDbcPools, - Table -} from '@pedalboard/storage' -import { getMint } from '@solana/spl-token' -import { Connection, PublicKey, Transaction } from '@solana/web3.js' -import BN from 'bn.js' -import { Request, Response } from 'express' - -import { db } from '../../db' -import { logger } from '../../logger' -import { getConnection } from '../../utils/connections' -import { AUDIO_MINT } from '../launchpad/constants' - -import { SWAP_SLIPPAGE_BPS } from './constants' - -const SPL_TOKEN_PROGRAM_ID = new PublicKey( - 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' -) - -const getDBCSwapTx = async ( - connection: Connection, - dbcPool: SolMeteoraDbcPools, - coinMintPubkey: PublicKey, - swapDirection: string, - inputAmountBN: BN, - userPubkey: PublicKey, - feePayerPubkey: PublicKey -) => { - const dbcClient = new DynamicBondingCurveClient(connection, 'confirmed') - - if (!dbcPool || !dbcPool.account) { - throw new Error( - `No DBC pool found in db for coin mint: ${coinMintPubkey.toString()}` - ) - } - - const virtualPoolState = await dbcClient.state.getPool( - new PublicKey(dbcPool.account) - ) - - if (!virtualPoolState) { - throw new Error( - `Unable to get DBC pool state from Meteora. Pool address: ${dbcPool.account}` - ) - } - - // Convert snake_case keys to camelCase for SDK compatibility - const poolConfig = await dbcClient.state.getPoolConfig(dbcPool.config) - if (!poolConfig) { - throw new Error( - `Unable to get DBC pool config from Meteora. Pool address: ${dbcPool.account}` - ) - } - const currentPoint = await connection.getSlot() - - // Get swap quote using swapQuote2 with PartialFill mode for proper slippage handling - const swapQuote = dbcClient.pool.swapQuote2({ - virtualPool: virtualPoolState, - config: poolConfig, - swapBaseForQuote: swapDirection === 'coinToAudio', // Base = coin, quote = audio - hasReferral: false, - currentPoint: new BN(currentPoint), - slippageBps: SWAP_SLIPPAGE_BPS, // 2% slippage tolerance for partial fills - swapMode: SwapMode.PartialFill, - amountIn: inputAmountBN - }) - // Create the swap transaction - const swapTx = await dbcClient.pool.swap2({ - owner: userPubkey, - pool: new PublicKey(dbcPool.account), - swapBaseForQuote: swapDirection === 'coinToAudio', - referralTokenAccount: null, - payer: feePayerPubkey, - swapMode: SwapMode.PartialFill, - amountIn: inputAmountBN, - minimumAmountOut: swapQuote.outputAmount - }) - - return { - swapTx, - outputAmount: swapQuote.outputAmount.toString(), - includedFeeInputAmount: swapQuote.includedFeeInputAmount?.toString() - } -} - -const getDammSwapTx = async ( - connection: Connection, - dammPoolRecord: SolMeteoraDammV2Pools, - coinMintPubkey: PublicKey, - swapDirection: string, - inputAmountBN: BN, - userPubkey: PublicKey -) => { - const cpAmm = new CpAmm(connection) - const poolState = await cpAmm.fetchPoolState( - new PublicKey(dammPoolRecord.account) - ) - if (!poolState) { - throw new Error( - `Unable to fetch damm pool state from Meteora. Pool address: ${dammPoolRecord.account}` - ) - } - - // Fetch token mint information to get decimals - const tokenAMintInfo = await getMint(connection, poolState.tokenAMint) - const tokenBMintInfo = await getMint(connection, poolState.tokenBMint) - - const currentEpoch = (await connection.getEpochInfo()).epoch - const audioMintPubkey = new PublicKey(AUDIO_MINT) - const inputTokenMint = - swapDirection === 'audioToCoin' ? audioMintPubkey : coinMintPubkey - const outputTokenMint = - swapDirection === 'audioToCoin' ? coinMintPubkey : audioMintPubkey - - const quote = await cpAmm.getQuote({ - inAmount: inputAmountBN, - inputTokenMint, - slippage: 2, - poolState, - currentTime: new Date().getTime(), - currentSlot: await connection.getSlot(), - inputTokenInfo: { - mint: tokenAMintInfo, - currentEpoch - }, - outputTokenInfo: { - mint: tokenBMintInfo, - currentEpoch - }, - tokenADecimal: tokenAMintInfo.decimals, - tokenBDecimal: tokenBMintInfo.decimals - }) - const swapTx = await cpAmm.swap({ - payer: userPubkey, - pool: new PublicKey(dammPoolRecord.account), - inputTokenMint, - outputTokenMint, - amountIn: inputAmountBN, - minimumAmountOut: quote.minSwapOutAmount, - tokenAVault: poolState.tokenAVault, - tokenBVault: poolState.tokenBVault, - tokenAMint: poolState.tokenAMint, - tokenBMint: poolState.tokenBMint, - tokenAProgram: SPL_TOKEN_PROGRAM_ID, - tokenBProgram: SPL_TOKEN_PROGRAM_ID, - referralTokenAccount: null // we dont do any referral fees - }) - return { swapTx, outputAmount: quote.swapOutAmount.toString() } -} - -/** - * Creates a swap transaction for swapping AUDIO to an artist coin using Meteora's DBC - * - * For now this just handles DBCs - it could be extended to include DAMMs as well - * - * Query params: - * - inputAmountUi: Amount of AUDIO in UI format (human-readable, e.g., "100" for 100 AUDIO) - * - outputMint: The mint address of the output token (artist coin) - * - userPublicKey: The public key of the user initiating the swap - * - swapDirection: The direction of the swap (either "audioToCoin" or "coinToAudio") - * - feePayer: Optional fee payer separate from the user public key - * - * Returns: - * - transaction: Base64-encoded serialized transaction ready to be signed by the user - * - outputAmount: The expected output amount in bigint format (raw token amount) - */ -export const swapCoin = async (req: Request, res: Response): Promise => { - try { - const { inputAmount, coinMint, swapDirection, userPublicKey, feePayer } = - req.query - - // Validate required parameters - if (!inputAmount || typeof inputAmount !== 'string') { - res.status(400).json({ - error: - 'inputAmount is required and must be a string representing the big int number amount of input token' - }) - return - } - - if ( - !swapDirection || - typeof swapDirection !== 'string' || - (swapDirection !== 'audioToCoin' && swapDirection !== 'coinToAudio') - ) { - res.status(400).json({ - error: - 'swapDirection is required and must be a string representing the direction of the swap' - }) - return - } - - if (!coinMint || typeof coinMint !== 'string') { - res.status(400).json({ - error: 'coinMint is required and must be a valid mint address' - }) - return - } - - if (!userPublicKey || typeof userPublicKey !== 'string') { - res.status(400).json({ - error: 'userPublicKey is required and must be a valid public key' - }) - return - } - - if (feePayer && typeof feePayer !== 'string') { - res.status(400).json({ - error: 'feePayer must be a valid public key' - }) - return - } - - // Validate public keys - let coinMintPubkey: PublicKey - let userPubkey: PublicKey - let feePayerPubkey: PublicKey | undefined - try { - coinMintPubkey = new PublicKey(coinMint) - userPubkey = new PublicKey(userPublicKey) - if (feePayer) { - feePayerPubkey = new PublicKey(feePayer) - } else { - feePayerPubkey = userPubkey - } - } catch (e) { - res.status(400).json({ - error: 'outputMint and userPublicKey must be valid Solana public keys' - }) - return - } - - // Convert UI amount to bigint - const inputAmountBN = new BN(inputAmount) - - if (inputAmountBN.lte(new BN(0))) { - res.status(400).json({ - error: 'inputAmount must be greater than 0' - }) - return - } - // Inputs are all validated now 👍 - - // Find the pool using the coin's mint from the database - const dbcPoolRecord = await db(Table.SolMeteoraDbcPools) - .where('base_mint', coinMintPubkey.toString()) - .first() - - const dammPoolRecord = await db( - Table.SolMeteoraDammV2Pools - ) - .where('token_a_mint', coinMintPubkey.toString()) - .first() - - if (!dbcPoolRecord && !dammPoolRecord) { - res.status(404).json({ - error: `No DBC or DAMM pool found for coin mint: ${coinMintPubkey.toString()}` - }) - return - } - - // If a DAMM entry was found, its always a DAMM pool - const isDamm = !!dammPoolRecord - // If a DBC entry was found, we also have to ensure it's not supposed to be migrated - const isDBC = !isDamm && dbcPoolRecord && !dbcPoolRecord.is_migrated - - // Initialize Solana connection and DBC client - const connection = getConnection() - - let swapTx: Transaction | undefined - let outputAmount: string | undefined - let includedFeeInputAmount: string | undefined - if (isDBC) { - const { - swapTx: dbcSwapTx, - outputAmount: dbcOutputAmount, - includedFeeInputAmount: dbcIncludedFeeInputAmount - } = await getDBCSwapTx( - connection, - dbcPoolRecord, - coinMintPubkey, - swapDirection, - inputAmountBN, - userPubkey, - feePayerPubkey - ) - swapTx = dbcSwapTx - outputAmount = dbcOutputAmount - includedFeeInputAmount = dbcIncludedFeeInputAmount - } else if (isDamm) { - const { swapTx: dammSwapTx, outputAmount: dammOutputAmount } = - await getDammSwapTx( - connection, - dammPoolRecord, - coinMintPubkey, - swapDirection, - inputAmountBN, - userPubkey - ) - swapTx = dammSwapTx - outputAmount = dammOutputAmount - } else { - res.status(500).json({ - error: `No DBC or DAMM pool found for coin mint: ${coinMintPubkey.toString()}` - }) - return - } - if (!swapTx) { - res.status(500).json({ - error: `Failed to create swap transaction for coin mint: ${coinMintPubkey.toString()}` - }) - return - } - - swapTx.feePayer = feePayerPubkey - swapTx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash - - // Serialize the transaction - const serializedTx = Buffer.from( - swapTx.serialize({ requireAllSignatures: false }) - ).toString('base64') - - // Return the transaction and expected output amount - logger.info(`Returning includedFeeInputAmount: ${includedFeeInputAmount}`) - res.status(200).json({ - transaction: serializedTx, - outputAmount, - ...(includedFeeInputAmount && { includedFeeInputAmount }) - }) - } catch (error) { - logger.error(error) - res.status(500).json({ - error: 'Failed to create coin swap transaction', - details: error instanceof Error ? error.message : 'Unknown error' - }) - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/swap_coin_quote.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/swap_coin_quote.ts deleted file mode 100644 index d9964932986..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/meteora/swap_coin_quote.ts +++ /dev/null @@ -1,265 +0,0 @@ -import { CpAmm, SwapMode as DammSwapMode } from '@meteora-ag/cp-amm-sdk' -import { - DynamicBondingCurveClient, - SwapMode -} from '@meteora-ag/dynamic-bonding-curve-sdk' -import { - SolMeteoraDammV2Pools, - SolMeteoraDbcPools, - Table -} from '@pedalboard/storage' -import { getMint } from '@solana/spl-token' -import { Connection, PublicKey } from '@solana/web3.js' -import BN from 'bn.js' -import { NextFunction, Request, Response } from 'express' - -import { db } from '../../db' -import { logger } from '../../logger' -import { getConnection } from '../../utils/connections' -import { AUDIO_MINT } from '../launchpad/constants' - -import { SWAP_SLIPPAGE_BPS } from './constants' - -const getDBCPoolQuote = async ( - dbcPool: SolMeteoraDbcPools, - connection: Connection, - inputAmountBN: BN, - coinMintPubkey: PublicKey, - swapDirection: string -) => { - const dbcClient = new DynamicBondingCurveClient(connection, 'confirmed') - - if (!dbcPool || !dbcPool.account) { - throw new Error( - `No DBC pool found in db for coin mint: ${coinMintPubkey.toString()}` - ) - } - - const virtualPoolState = await dbcClient.state.getPool( - new PublicKey(dbcPool.account) - ) - - if (!virtualPoolState) { - throw new Error( - `Unable to get DBC pool state from Meteora. Pool address: ${dbcPool.account}` - ) - } - - // Convert snake_case keys to camelCase for SDK compatibility - const poolConfig = await dbcClient.state.getPoolConfig(dbcPool.config) - if (!poolConfig) { - throw new Error( - `Unable to get DBC pool config from Meteora. Pool address: ${dbcPool.account}` - ) - } - const currentPoint = await connection.getSlot() - - // Get swap quote using swapQuote2 with PartialFill mode for consistent behavior - const quote = dbcClient.pool.swapQuote2({ - virtualPool: virtualPoolState, - config: poolConfig, - swapBaseForQuote: swapDirection === 'coinToAudio', // Base = coin, quote = audio - hasReferral: false, - currentPoint: new BN(currentPoint), - slippageBps: SWAP_SLIPPAGE_BPS, // 2% slippage tolerance for partial fills - swapMode: SwapMode.PartialFill, - amountIn: inputAmountBN - }) - return quote.outputAmount.toString() -} - -const getDammPoolQuote = async ( - dammPoolRecord: SolMeteoraDammV2Pools, - connection: Connection, - inputAmountBN: BN, - coinMintPubkey: PublicKey, - swapDirection: string -) => { - const cpAmm = new CpAmm(connection) - const poolState = await cpAmm.fetchPoolState( - new PublicKey(dammPoolRecord.account) - ) - if (!poolState) { - throw new Error( - `Unable to fetch damm pool state from Meteora. Pool address: ${dammPoolRecord.account}` - ) - } - - // Fetch token mint information to get decimals - const tokenAMintInfo = await getMint(connection, poolState.tokenAMint) - const tokenBMintInfo = await getMint(connection, poolState.tokenBMint) - - const currentEpoch = (await connection.getEpochInfo()).epoch - const audioMintPubkey = new PublicKey(AUDIO_MINT) - const inputTokenMint = - swapDirection === 'audioToCoin' ? audioMintPubkey : coinMintPubkey - - const currentSlot = await connection.getSlot() - const currentPoint = poolState.activationType - ? new BN(new Date().getTime()) - : new BN(currentSlot) - - const quote = cpAmm.getQuote2({ - amountIn: inputAmountBN, - inputTokenMint, - slippage: 2, - poolState, - currentPoint, - inputTokenInfo: { - mint: tokenAMintInfo, - currentEpoch - }, - outputTokenInfo: { - mint: tokenBMintInfo, - currentEpoch - }, - tokenADecimal: tokenAMintInfo.decimals, - tokenBDecimal: tokenBMintInfo.decimals, - swapMode: DammSwapMode.PartialFill, - hasReferral: false - }) - - return quote.outputAmount.toString() -} -/** - * Gets a quote for swapping AUDIO to/from an artist coin using Meteora's DBC - * - * For now this just handles DBCs - it could be extended to include DAMMs as well - * - * Query params: - * - inputAmountUi: Amount in UI format (human-readable, e.g., "100") - * - coinMint: The mint address of the artist coin - * - swapDirection: The direction of the swap (either "audioToCoin" or "coinToAudio") - * - * Returns: - * - outputAmount: The quoted output amount in bigint format - */ -export const swapCoinQuote = async ( - req: Request, - res: Response, - next: NextFunction -): Promise => { - try { - const { inputAmount, coinMint, swapDirection } = req.query - - // Validate required parameters - if (!inputAmount || typeof inputAmount !== 'string') { - res.status(400).json({ - error: - 'inputAmount is required and must be a string representing the big int number amount' - }) - return - } - - if ( - !swapDirection || - typeof swapDirection !== 'string' || - (swapDirection !== 'audioToCoin' && swapDirection !== 'coinToAudio') - ) { - res.status(400).json({ - error: - 'swapDirection is required and must be a string representing the direction of the swap' - }) - return - } - - if (!coinMint || typeof coinMint !== 'string') { - res.status(400).json({ - error: 'coinMint is required and must be a valid mint address' - }) - return - } - - // Validate public keys - let coinMintPubkey: PublicKey - try { - coinMintPubkey = new PublicKey(coinMint) - } catch (e) { - res.status(400).json({ - error: 'coinMint must be a valid Solana public key' - }) - return - } - - // Find the pool using the coin's mint from the database - const dbcPoolRecord = await db(Table.SolMeteoraDbcPools) - .where('base_mint', coinMintPubkey.toString()) - .first() - - const dammPoolRecord = await db( - Table.SolMeteoraDammV2Pools - ) - .where('token_a_mint', coinMintPubkey.toString()) - .first() - - if (!dbcPoolRecord && !dammPoolRecord) { - res.status(404).json({ - error: `No DBC or DAMM pool found for coin mint: ${coinMintPubkey.toString()}` - }) - return - } - - // Convert UI amount to bigint - const inputAmountBN = new BN(inputAmount) - - if (inputAmountBN.lte(new BN(0))) { - res.status(400).json({ - error: 'inputAmountUi must be greater than 0' - }) - return - } - // Inputs are all validated now 👍 - - // Initialize Solana connection and DBC client - const connection = getConnection() - - // If a DAMM entry was found, its always a DAMM pool - const isDamm = !!dammPoolRecord - // If a DBC entry was found, we also have to ensure it's not supposed to be migrated - const isDBC = !isDamm && dbcPoolRecord && !dbcPoolRecord.is_migrated - let outputAmount: string | undefined - try { - if (isDBC) { - outputAmount = await getDBCPoolQuote( - dbcPoolRecord, - connection, - inputAmountBN, - coinMintPubkey, - swapDirection - ) - } - if (isDamm) { - outputAmount = await getDammPoolQuote( - dammPoolRecord, - connection, - inputAmountBN, - coinMintPubkey, - swapDirection - ) - } - } catch (error) { - res.status(500).json({ - error: error instanceof Error ? error.message : 'Unknown error' - }) - return - } - if (!isDBC && !isDamm) { - res.status(404).json({ - error: `Unable to determine if a DBC or DAMM pool exists for coin mint: ${coinMintPubkey.toString()}` - }) - return - } - - // Return the output amount in bigint format - res.status(200).json({ - outputAmount - }) - next() - } catch (error) { - logger.error(error) - res.status(500).json({ - error: 'Failed to get coin swap quote', - details: error instanceof Error ? error.message : 'Unknown error' - }) - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/InvalidRelayInstructionError.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/InvalidRelayInstructionError.ts deleted file mode 100644 index ec066bee2e3..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/InvalidRelayInstructionError.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class InvalidRelayInstructionError extends Error { - constructor(instructionIndex: number, message: string) { - super(`Instruction ${instructionIndex ?? '?'}: ${message}`) - this.name = 'InvalidRelayInstructionError' - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/antiAbuse.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/antiAbuse.ts deleted file mode 100644 index 934c3774b41..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/antiAbuse.ts +++ /dev/null @@ -1,28 +0,0 @@ -import fetch from 'cross-fetch' -import { Logger } from 'pino' - -import { config } from '../../config' -import { logger } from '../../logger' - -/** - * Checks if a user is abusive by querying the anti-abuse oracle - * @param wallet - The wallet address to check - * @param log - Optional logger instance, defaults to the module logger - * @returns Promise - true if user is abusive (response not 200), false otherwise - */ -export const isUserAbusive = async ( - wallet: string, - log: Logger = logger -): Promise => { - try { - const url = `${config.antiAbuseOracle}/attestation/check?wallet=${wallet}` - const response = await fetch(url) - return response.status !== 200 - } catch (error) { - log.error( - { error, wallet }, - 'Error checking anti-abuse status, defaulting to not abusive' - ) - return false - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/assertRelayAllowedInstructions.test.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/assertRelayAllowedInstructions.test.ts deleted file mode 100644 index 456b94dce68..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/assertRelayAllowedInstructions.test.ts +++ /dev/null @@ -1,1574 +0,0 @@ -import assert from 'assert' - -import { - ClaimableTokensProgram, - RewardManagerProgram, - RewardManagerInstruction -} from '@audius/spl' -import { - NATIVE_MINT, - TOKEN_PROGRAM_ID, - createApproveInstruction, - createAssociatedTokenAccountIdempotentInstruction, - createAssociatedTokenAccountInstruction, - createCloseAccountInstruction, - createInitializeAccountInstruction, - createSyncNativeInstruction, - createTransferCheckedInstruction -} from '@solana/spl-token' -import { - Keypair, - PublicKey, - Secp256k1Program, - SystemProgram, - TransactionInstruction -} from '@solana/web3.js' -import { vi, beforeEach, afterEach, describe, it, expect } from 'vitest' - -import { config } from '../../config' - -import { InvalidRelayInstructionError } from './InvalidRelayInstructionError' -import { - assertRelayAllowedInstructions, - computeInstructionDiscriminant, - JUPITER_ROUTE_DISCRIMINANT, - JUPITER_SHARED_ACCOUNTS_ROUTE_DISCRIMINANT -} from './assertRelayAllowedInstructions' - -vi.mock('../../utils/connections', () => ({ - getConnection: () => ({ - getMinimumBalanceForRentExemption: async () => 2_039_280 - }) -})) - -const CLAIMABLE_TOKEN_PROGRAM_ID = new PublicKey(config.claimableTokenProgramId) - -const REWARD_MANAGER_PROGRAM_ID = new PublicKey(config.rewardsManagerProgramId) -const REWARD_MANAGER_ACCOUNT = new PublicKey( - config.rewardsManagerAccountAddress -) - -const MEMO_PROGRAM_ID = new PublicKey( - 'Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo' -) -const MEMO_V2_PROGRAM_ID = new PublicKey( - 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr' -) - -const usdcMintKey = new PublicKey(config.usdcMintAddress) -const audioMintKey = new PublicKey(config.waudioMintAddress) - -const usdcClaimableTokenAuthority = ClaimableTokensProgram.deriveAuthority({ - programId: CLAIMABLE_TOKEN_PROGRAM_ID, - mint: usdcMintKey -}) -const audioClaimableTokenAuthority = ClaimableTokensProgram.deriveAuthority({ - programId: CLAIMABLE_TOKEN_PROGRAM_ID, - mint: audioMintKey -}) - -const getRandomPublicKey = () => Keypair.generate().publicKey - -describe('Solana Relay', function () { - describe('Jupiter Instruction Discriminant Computation', function () { - it('should compute correct discriminant for route instruction', function () { - const discriminant = computeInstructionDiscriminant('route') - expect(discriminant.length).toBe(8) - expect(discriminant).toEqual(JUPITER_ROUTE_DISCRIMINANT) - }) - - it('should compute correct discriminant for shared_accounts_route instruction', function () { - const discriminant = computeInstructionDiscriminant( - 'shared_accounts_route' - ) - expect(discriminant.length).toBe(8) - expect(discriminant).toEqual(JUPITER_SHARED_ACCOUNTS_ROUTE_DISCRIMINANT) - }) - - it('should produce different discriminants for different instruction names', function () { - const routeDiscriminant = computeInstructionDiscriminant('route') - const sharedRouteDiscriminant = computeInstructionDiscriminant( - 'shared_accounts_route' - ) - const customDiscriminant = - computeInstructionDiscriminant('custom_instruction') - - expect(routeDiscriminant).not.toEqual(sharedRouteDiscriminant) - expect(routeDiscriminant).not.toEqual(customDiscriminant) - expect(sharedRouteDiscriminant).not.toEqual(customDiscriminant) - }) - - it('should be deterministic - same input produces same output', function () { - const discriminant1 = computeInstructionDiscriminant('test_instruction') - const discriminant2 = computeInstructionDiscriminant('test_instruction') - expect(discriminant1).toEqual(discriminant2) - }) - }) - - describe('Jupiter Instruction Error Handling', function () { - it('should handle malformed Jupiter instructions gracefully', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - - // Create instruction with valid discriminant but insufficient accounts - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: JUPITER_ROUTE_DISCRIMINANT, - keys: [] // No accounts provided - }) - ] - - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }), - InvalidRelayInstructionError - ) - }) - - it('should handle Jupiter instructions with corrupted account data', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - - // Create sharedAccountsRoute instruction with insufficient keys - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: JUPITER_SHARED_ACCOUNTS_ROUTE_DISCRIMINANT, - keys: [ - { - pubkey: TOKEN_PROGRAM_ID, - isSigner: false, - isWritable: false - } - // Missing required accounts - ] - }) - ] - - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }), - InvalidRelayInstructionError, - 'Failed to parse Jupiter' - ) - }) - }) - beforeEach(() => { - // Mock initializeDiscoveryDb to avoid real DB connection - vi.mock('@pedalboard/basekit', () => ({ - initializeDiscoveryDb: vi.fn(() => ({ - select: vi.fn(() => ({ - from: vi.fn(() => []) // returns empty array for artist_coins - })) - })) - })) - // Mock getAllowedMints to always return audioMintKey and usdcMintKey - vi.mock('./getAllowedMints', () => ({ - getAllowedMints: vi.fn(async () => [ - config.usdcMintAddress, - config.waudioMintAddress - ]) - })) - }) - afterEach(() => { - vi.restoreAllMocks() - }) - - describe('Associated Token Account Program', function () { - it('should allow create token account with matching close for valid mints', async function () { - const payer = getRandomPublicKey() - const associatedToken = getRandomPublicKey() - const owner = getRandomPublicKey() - - // Basic case - const instructions = [ - createAssociatedTokenAccountInstruction( - payer, - associatedToken, - owner, - usdcMintKey - ), - createCloseAccountInstruction(associatedToken, payer, owner) - ] - await assertRelayAllowedInstructions(instructions) - }) - - it('should allow create/close matches regardless of order', async function () { - const payer = getRandomPublicKey() - const associatedToken = getRandomPublicKey() - const owner = getRandomPublicKey() - const associatedToken2 = getRandomPublicKey() - const payer2 = getRandomPublicKey() - const complexInstructions = [ - createCloseAccountInstruction(associatedToken2, payer2, owner), - createAssociatedTokenAccountInstruction( - payer2, - associatedToken2, - owner, - usdcMintKey - ), - createAssociatedTokenAccountInstruction( - payer, - associatedToken, - owner, - NATIVE_MINT - ), - createCloseAccountInstruction(associatedToken, payer, owner) - ] - await assertRelayAllowedInstructions(complexInstructions) - }) - - it('should not allow create token account without close', async function () { - const payer = getRandomPublicKey() - const associatedToken = getRandomPublicKey() - const owner = getRandomPublicKey() - - // Ensure every associated token account create instruction has a close account instruction - const missingCloseInstructions = [ - createAssociatedTokenAccountInstruction( - payer, - associatedToken, - owner, - usdcMintKey - ) - ] - await assert.rejects( - async () => assertRelayAllowedInstructions(missingCloseInstructions), - InvalidRelayInstructionError, - 'Missing close instructions' - ) - - // Ensure the payer is refunded - const unmatchedPayerInstructions = [ - createAssociatedTokenAccountInstruction( - payer, - associatedToken, - owner, - usdcMintKey - ), - createCloseAccountInstruction( - associatedToken, - getRandomPublicKey(), - owner - ) - ] - await assert.rejects( - async () => assertRelayAllowedInstructions(unmatchedPayerInstructions), - InvalidRelayInstructionError, - 'Mismatched account creation payer and close instruction destination' - ) - - // Ensure both instructions are for the same account - const unmatchedAccountInstructions = [ - createAssociatedTokenAccountInstruction( - payer, - associatedToken, - owner, - usdcMintKey - ), - createCloseAccountInstruction(getRandomPublicKey(), payer, owner) - ] - await assert.rejects( - async () => - assertRelayAllowedInstructions(unmatchedAccountInstructions), - InvalidRelayInstructionError, - 'Mismatched target token accounts' - ) - }) - - it('should not allow create token account with arbitrary mints', async function () { - const payer = getRandomPublicKey() - const associatedToken = getRandomPublicKey() - const owner = getRandomPublicKey() - const mint = getRandomPublicKey() - const instructions = [ - createAssociatedTokenAccountInstruction( - payer, - associatedToken, - owner, - mint - ), - createCloseAccountInstruction(associatedToken, payer, owner) - ] - await assert.rejects( - async () => assertRelayAllowedInstructions(instructions), - InvalidRelayInstructionError, - 'Mint not allowed' - ) - }) - - it('should allow exactly one fee-payer-funded create without matching close when fee payer receives rent exemption via System Transfer', async function () { - const wallet = '0xe42b199d864489387bf64262874fc6472bcbc151' - const feePayer = config.solanaFeePayerWallets[0].publicKey - const fromPubkey = getRandomPublicKey() - const recipientAta = getRandomPublicKey() - const recipientOwner = getRandomPublicKey() - const rentExemptionLamports = 2_039_280 - const instructions = [ - SystemProgram.transfer({ - fromPubkey, - toPubkey: feePayer, - lamports: rentExemptionLamports - }), - createAssociatedTokenAccountIdempotentInstruction( - feePayer, - recipientAta, - recipientOwner, - usdcMintKey - ) - ] - await assertRelayAllowedInstructions(instructions, { - user: { wallet, is_verified: false }, - feePayer: feePayer.toBase58() - }) - }) - - it('should not allow fee-payer-funded create when fee payer receives less than rent exemption via System Transfer', async function () { - const wallet = '0xe42b199d864489387bf64262874fc6472bcbc151' - const feePayer = config.solanaFeePayerWallets[0].publicKey - const fromPubkey = getRandomPublicKey() - const recipientAta = getRandomPublicKey() - const recipientOwner = getRandomPublicKey() - const belowRentExemptionLamports = 2_039_279 - const instructions = [ - SystemProgram.transfer({ - fromPubkey, - toPubkey: feePayer, - lamports: belowRentExemptionLamports - }), - createAssociatedTokenAccountIdempotentInstruction( - feePayer, - recipientAta, - recipientOwner, - usdcMintKey - ) - ] - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { wallet, is_verified: false }, - feePayer: feePayer.toBase58() - }), - InvalidRelayInstructionError, - 'Mismatched number of create and close instructions' - ) - }) - - it('should not allow fee-payer-funded create without matching close when there is no reimbursement', async function () { - const feePayer = config.solanaFeePayerWallets[0].publicKey - const recipientAta = getRandomPublicKey() - const recipientOwner = getRandomPublicKey() - const instructions = [ - createAssociatedTokenAccountIdempotentInstruction( - feePayer, - recipientAta, - recipientOwner, - usdcMintKey - ) - ] - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - feePayer: feePayer.toBase58() - }), - InvalidRelayInstructionError, - 'Mismatched number of create and close instructions' - ) - }) - }) - - describe('Token Program', function () { - it('should allow close instructions', async function () { - const payer = getRandomPublicKey() - const associatedToken = getRandomPublicKey() - const owner = getRandomPublicKey() - const instructions = [ - createCloseAccountInstruction(associatedToken, payer, owner) - ] - await assertRelayAllowedInstructions(instructions) - }) - - it('should allow USDC transfers to userbanks', async function () { - // Dummy eth address to make the encoder happy - const wallet = '0xe42b199d864489387bf64262874fc6472bcbc151' - const userbank = await ClaimableTokensProgram.deriveUserBank({ - claimableTokensPDA: usdcClaimableTokenAuthority, - ethAddress: wallet - }) - - const source = getRandomPublicKey() - const owner = getRandomPublicKey() - const instructions = [ - createTransferCheckedInstruction( - source, - usdcMintKey, - userbank, - owner, - 1, - 6 - ) - ] - await assertRelayAllowedInstructions(instructions, { - user: { - wallet, - is_verified: false - } - }) - }) - - it('should not allow transfers to non-userbanks', async function () { - // Some dummy eth addresses to make the encoder happy - const wallet = '0x1dc3070311552fce47e06db9f4f1328187f14c85' - - const source = getRandomPublicKey() - const owner = getRandomPublicKey() - const destination = getRandomPublicKey() - const instructions = [ - createTransferCheckedInstruction( - source, - usdcMintKey, - destination, - owner, - 1, - 6 - ) - ] - - await assert.rejects( - async () => assertRelayAllowedInstructions(instructions), - InvalidRelayInstructionError, - 'Not logged in' - ) - - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { - wallet, - is_verified: false - } - }), - InvalidRelayInstructionError, - 'Transfer not to userbank' - ) - }) - - it('should allow syncNative instructions', async function () { - await assertRelayAllowedInstructions([ - createSyncNativeInstruction(getRandomPublicKey()) - ]) - }) - - it('should not allow other instructions (non-exhaustive)', async function () { - const account = getRandomPublicKey() - const owner = getRandomPublicKey() - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - createInitializeAccountInstruction(account, usdcMintKey, owner) - ]), - InvalidRelayInstructionError, - 'initializeAccount' - ) - const delegate = getRandomPublicKey() - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - createApproveInstruction(account, delegate, owner, 0) - ]), - InvalidRelayInstructionError, - 'approve' - ) - }) - }) - - describe('Reward Manager Program', function () { - it('should allow public instructions with valid reward manager', async function () { - const disbursementId = 'some:id:thing' - // Some dummy eth addresses to make the encoder happy - const senderEthAddress = '0x1dc3070311552fce47e06db9f4f1328187f14c85' - const operatorEthAddress = '0x430ef095e4c5ac71a465b30d566bab0bb0985346' - const recipientEthAddress = '0x7311c8ec02f087cba0fdbb056d4cebc86519d871' - const attestations = getRandomPublicKey() - const authority = getRandomPublicKey() - const payer = getRandomPublicKey() - const sender = getRandomPublicKey() - const rewardManagerTokenSource = getRandomPublicKey() - const destinationUserBank = getRandomPublicKey() - const disbursementAccount = getRandomPublicKey() - const antiAbuseOracle = getRandomPublicKey() - const existingSenders = [ - getRandomPublicKey(), - getRandomPublicKey(), - getRandomPublicKey() - ] - await assertRelayAllowedInstructions([ - RewardManagerProgram.createSenderPublicInstruction({ - senderEthAddress, - operatorEthAddress, - rewardManagerState: REWARD_MANAGER_ACCOUNT, - authority, - payer, - sender, - existingSenders, - rewardManagerProgramId: REWARD_MANAGER_PROGRAM_ID - }), - RewardManagerProgram.createSubmitAttestationInstruction({ - disbursementId, - attestations, - rewardManagerState: REWARD_MANAGER_ACCOUNT, - authority, - payer, - sender, - rewardManagerProgramId: REWARD_MANAGER_PROGRAM_ID - }), - RewardManagerProgram.createEvaluateAttestationsInstruction({ - disbursementId, - recipientEthAddress, - amount: BigInt(100), - attestations, - rewardManagerState: REWARD_MANAGER_ACCOUNT, - authority, - rewardManagerTokenSource, - destinationUserBank, - disbursementAccount, - antiAbuseOracle, - payer, - tokenProgramId: TOKEN_PROGRAM_ID, - rewardManagerProgramId: REWARD_MANAGER_PROGRAM_ID - }) - ]) - }) - - it('should not allow public instructions with invalid reward manager', async function () { - const disbursementId = 'some:id:thing' - // Some dummy eth addresses to make the encoder happy - const senderEthAddress = '0x1dc3070311552fce47e06db9f4f1328187f14c85' - const operatorEthAddress = '0x430ef095e4c5ac71a465b30d566bab0bb0985346' - const recipientEthAddress = '0x7311c8ec02f087cba0fdbb056d4cebc86519d871' - const attestations = getRandomPublicKey() - const authority = getRandomPublicKey() - const payer = getRandomPublicKey() - const sender = getRandomPublicKey() - const rewardManagerState = getRandomPublicKey() - const rewardManagerTokenSource = getRandomPublicKey() - const destinationUserBank = getRandomPublicKey() - const disbursementAccount = getRandomPublicKey() - const antiAbuseOracle = getRandomPublicKey() - const existingSenders = [ - getRandomPublicKey(), - getRandomPublicKey(), - getRandomPublicKey() - ] - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - RewardManagerProgram.createSenderPublicInstruction({ - senderEthAddress, - operatorEthAddress, - rewardManagerState, - authority, - payer, - sender, - existingSenders, - rewardManagerProgramId: REWARD_MANAGER_PROGRAM_ID - }) - ]), - InvalidRelayInstructionError, - 'invalid reward manager for createSenderPublic' - ) - - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - RewardManagerProgram.createSubmitAttestationInstruction({ - disbursementId, - attestations, - rewardManagerState, - authority, - payer, - sender, - rewardManagerProgramId: REWARD_MANAGER_PROGRAM_ID - }) - ]), - InvalidRelayInstructionError, - 'invalid reward manager for submitAttestation' - ) - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - RewardManagerProgram.createEvaluateAttestationsInstruction({ - disbursementId, - recipientEthAddress, - amount: BigInt(100), - attestations, - rewardManagerState, - authority, - rewardManagerTokenSource, - destinationUserBank, - disbursementAccount, - antiAbuseOracle, - payer, - tokenProgramId: TOKEN_PROGRAM_ID, - rewardManagerProgramId: REWARD_MANAGER_PROGRAM_ID - }) - ]), - InvalidRelayInstructionError, - 'invalid reward manager for evaluateAttestations' - ) - }) - - it('should not allow non-public instructions', async function () { - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - new TransactionInstruction({ - programId: REWARD_MANAGER_PROGRAM_ID, - keys: [], - data: Buffer.from([RewardManagerInstruction.Init]) - }) - ]), - 'reward manager init' - ) - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - new TransactionInstruction({ - programId: REWARD_MANAGER_PROGRAM_ID, - keys: [], - data: Buffer.from([RewardManagerInstruction.ChangeManagerAccount]) - }) - ]), - 'reward manager change manager account' - ) - // Some dummy eth addresses to make the encoder happy - const senderEthAddress = '0x1dc3070311552fce47e06db9f4f1328187f14c85' - const operatorEthAddress = '0x430ef095e4c5ac71a465b30d566bab0bb0985346' - const authority = getRandomPublicKey() - const payer = getRandomPublicKey() - const sender = getRandomPublicKey() - const rewardManagerState = getRandomPublicKey() - const manager = getRandomPublicKey() - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - RewardManagerProgram.createSenderInstruction({ - senderEthAddress, - operatorEthAddress, - rewardManagerState, - manager, - authority, - payer, - sender, - rewardManagerProgramId: REWARD_MANAGER_PROGRAM_ID - }) - ]), - 'reward manager create sender' - ) - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - new TransactionInstruction({ - programId: REWARD_MANAGER_PROGRAM_ID, - keys: [], - data: Buffer.from([RewardManagerInstruction.DeleteSender]) - }) - ]), - 'non public delete sender' - ) - }) - }) - - describe('Claimable Tokens Program', function () { - it('should allow claimable token program instructions with valid authority', async function () { - // Dummy eth address to make the encoder happy - const wallet = '0xe42b199d864489387bf64262874fc6472bcbc151' - const payer = getRandomPublicKey() - const mint = getRandomPublicKey() - const userBank = getRandomPublicKey() - const destination = getRandomPublicKey() - const nonceAccount = getRandomPublicKey() - const instructions = [ - ClaimableTokensProgram.createAccountInstruction({ - ethAddress: wallet, - payer, - mint, - authority: usdcClaimableTokenAuthority, - userBank, - programId: CLAIMABLE_TOKEN_PROGRAM_ID - }), - ClaimableTokensProgram.createTransferInstruction({ - payer, - sourceEthAddress: wallet, - sourceUserBank: userBank, - destination, - nonceAccount, - authority: usdcClaimableTokenAuthority, - programId: CLAIMABLE_TOKEN_PROGRAM_ID - }), - ClaimableTokensProgram.createAccountInstruction({ - ethAddress: wallet, - payer, - mint, - authority: audioClaimableTokenAuthority, - userBank, - programId: CLAIMABLE_TOKEN_PROGRAM_ID - }), - ClaimableTokensProgram.createTransferInstruction({ - payer, - sourceEthAddress: wallet, - sourceUserBank: userBank, - destination, - nonceAccount, - authority: audioClaimableTokenAuthority, - programId: CLAIMABLE_TOKEN_PROGRAM_ID - }) - ] - await assertRelayAllowedInstructions(instructions) - }) - - it('should not allow claimable token program instructions with invalid authority', async function () { - // Dummy eth addresse to make the encoder happy - const wallet = '0x36034724e7bda41d5142efd85e1f6773460f5679' - const payer = getRandomPublicKey() - const mint = getRandomPublicKey() - const authority = getRandomPublicKey() - const userBank = getRandomPublicKey() - const destination = getRandomPublicKey() - const nonceAccount = getRandomPublicKey() - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - ClaimableTokensProgram.createAccountInstruction({ - ethAddress: wallet, - payer, - mint, - authority, - userBank - }) - ]), - 'Invalid authority for create user bank' - ) - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - ClaimableTokensProgram.createTransferInstruction({ - payer, - sourceEthAddress: wallet, - sourceUserBank: userBank, - destination, - nonceAccount, - authority - }) - ]), - InvalidRelayInstructionError, - 'Invalid authority for transfer user bank' - ) - }) - }) - - describe('Jupiter Swap Program', function () { - it('should allow Jupiter sharedAccountsRoute swaps between USDC and SOL when authenticated', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - const programAuthority = getRandomPublicKey() - const userTransferAuthority = getRandomPublicKey() - const sourceTokenAccount = getRandomPublicKey() - const programSourceTokenAccount = getRandomPublicKey() - const programDestinationTokenAccount = getRandomPublicKey() - const destinationTokenAccount = getRandomPublicKey() - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: Buffer.from([ - 193, 32, 155, 51, 65, 214, 156, 129, 2, 1, 0, 0, 0, 3, 100, 0, 1, - 92, 161, 0, 0, 0, 0, 0, 0, 236, 52, 31, 0, 0, 0, 0, 0, 3, 0, 0 - ]), - keys: [ - { - pubkey: TOKEN_PROGRAM_ID, - isSigner: false, - isWritable: false - }, - { - pubkey: programAuthority, - isSigner: false, - isWritable: false - }, - { - pubkey: userTransferAuthority, - isSigner: true, - isWritable: true - }, - { - pubkey: sourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: programSourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: programDestinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: destinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: usdcMintKey, - isSigner: false, - isWritable: false - }, - { - pubkey: NATIVE_MINT, - isSigner: false, - isWritable: false - } - ] - }) - ] - - await assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }) - }) - - it('should not allow Jupiter sharedAccountsRoute when not authenticated', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - const programAuthority = getRandomPublicKey() - const userTransferAuthority = getRandomPublicKey() - const sourceTokenAccount = getRandomPublicKey() - const programSourceTokenAccount = getRandomPublicKey() - const programDestinationTokenAccount = getRandomPublicKey() - const destinationTokenAccount = getRandomPublicKey() - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: Buffer.from([ - 193, 32, 155, 51, 65, 214, 156, 129, 2, 1, 0, 0, 0, 3, 100, 0, 1, - 92, 161, 0, 0, 0, 0, 0, 0, 236, 52, 31, 0, 0, 0, 0, 0, 3, 0, 0 - ]), - keys: [ - { - pubkey: TOKEN_PROGRAM_ID, - isSigner: false, - isWritable: false - }, - { - pubkey: programAuthority, - isSigner: false, - isWritable: false - }, - { - pubkey: userTransferAuthority, - isSigner: true, - isWritable: true - }, - { - pubkey: sourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: programSourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: programDestinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: destinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: usdcMintKey, - isSigner: false, - isWritable: false - }, - { - pubkey: NATIVE_MINT, - isSigner: false, - isWritable: false - } - ] - }) - ] - - await assert.rejects( - async () => assertRelayAllowedInstructions(instructions), - InvalidRelayInstructionError, - 'Unauthorized' - ) - }) - - it('should not allow Jupiter sharedAccountsRoute swaps between other mints', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - const programAuthority = getRandomPublicKey() - const userTransferAuthority = getRandomPublicKey() - const sourceTokenAccount = getRandomPublicKey() - const programSourceTokenAccount = getRandomPublicKey() - const programDestinationTokenAccount = getRandomPublicKey() - const destinationTokenAccount = getRandomPublicKey() - const randomDestinationMint = getRandomPublicKey() - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: Buffer.from([ - 193, 32, 155, 51, 65, 214, 156, 129, 2, 1, 0, 0, 0, 3, 100, 0, 1, - 92, 161, 0, 0, 0, 0, 0, 0, 236, 52, 31, 0, 0, 0, 0, 0, 3, 0, 0 - ]), - keys: [ - { - pubkey: TOKEN_PROGRAM_ID, - isSigner: false, - isWritable: false - }, - { - pubkey: programAuthority, - isSigner: false, - isWritable: false - }, - { - pubkey: userTransferAuthority, - isSigner: true, - isWritable: true - }, - { - pubkey: sourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: programSourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: programDestinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: destinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: usdcMintKey, - isSigner: false, - isWritable: false - }, - { - pubkey: randomDestinationMint, - isSigner: false, - isWritable: false - } - ] - }) - ] - - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }), - InvalidRelayInstructionError, - 'Invalid mints for swap' - ) - }) - - it('should not allow Jupiter sharedAccountsRoute swaps using the fee payer', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - const programAuthority = getRandomPublicKey() - const userTransferAuthority = config.solanaFeePayerWallets[0].publicKey - const sourceTokenAccount = getRandomPublicKey() - const programSourceTokenAccount = getRandomPublicKey() - const programDestinationTokenAccount = getRandomPublicKey() - const destinationTokenAccount = getRandomPublicKey() - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: Buffer.from([ - 193, 32, 155, 51, 65, 214, 156, 129, 2, 1, 0, 0, 0, 3, 100, 0, 1, - 92, 161, 0, 0, 0, 0, 0, 0, 236, 52, 31, 0, 0, 0, 0, 0, 3, 0, 0 - ]), - keys: [ - { - pubkey: TOKEN_PROGRAM_ID, - isSigner: false, - isWritable: false - }, - { - pubkey: programAuthority, - isSigner: false, - isWritable: false - }, - { - pubkey: userTransferAuthority, - isSigner: true, - isWritable: true - }, - { - pubkey: sourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: programSourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: programDestinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: destinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: usdcMintKey, - isSigner: false, - isWritable: false - }, - { - pubkey: NATIVE_MINT, - isSigner: false, - isWritable: false - } - ] - }) - ] - - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }), - InvalidRelayInstructionError, - 'Invalid user transfer authority' - ) - }) - - it('should allow Jupiter route instruction swaps when authenticated', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - const userTransferAuthority = getRandomPublicKey() - const userSourceTokenAccount = getRandomPublicKey() - const userDestinationTokenAccount = getRandomPublicKey() - const destinationTokenAccount = getRandomPublicKey() - const platformFeeAccount = getRandomPublicKey() - const eventAuthority = getRandomPublicKey() - const program = getRandomPublicKey() - - // Create route instruction with proper discriminant - const routeInstructionData = Buffer.concat([ - JUPITER_ROUTE_DISCRIMINANT, - Buffer.alloc(32) // Additional instruction data - ]) - - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: routeInstructionData, - keys: [ - { - pubkey: TOKEN_PROGRAM_ID, - isSigner: false, - isWritable: false - }, - { - pubkey: userTransferAuthority, - isSigner: true, - isWritable: true - }, - { - pubkey: userSourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: userDestinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: destinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: NATIVE_MINT, // destination mint - isSigner: false, - isWritable: false - }, - { - pubkey: platformFeeAccount, - isSigner: false, - isWritable: false - }, - { - pubkey: eventAuthority, - isSigner: false, - isWritable: false - }, - { - pubkey: program, - isSigner: false, - isWritable: false - } - ] - }) - ] - - await assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }) - }) - - it('should not allow Jupiter route instruction swaps to invalid destination mints', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - const userTransferAuthority = getRandomPublicKey() - const userSourceTokenAccount = getRandomPublicKey() - const userDestinationTokenAccount = getRandomPublicKey() - const destinationTokenAccount = getRandomPublicKey() - const platformFeeAccount = getRandomPublicKey() - const eventAuthority = getRandomPublicKey() - const program = getRandomPublicKey() - const invalidDestinationMint = getRandomPublicKey() - - // Create route instruction with proper discriminant - const routeInstructionData = Buffer.concat([ - JUPITER_ROUTE_DISCRIMINANT, - Buffer.alloc(32) // Additional instruction data - ]) - - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: routeInstructionData, - keys: [ - { - pubkey: TOKEN_PROGRAM_ID, - isSigner: false, - isWritable: false - }, - { - pubkey: userTransferAuthority, - isSigner: true, - isWritable: true - }, - { - pubkey: userSourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: userDestinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: destinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: invalidDestinationMint, // invalid destination mint - isSigner: false, - isWritable: false - }, - { - pubkey: platformFeeAccount, - isSigner: false, - isWritable: false - }, - { - pubkey: eventAuthority, - isSigner: false, - isWritable: false - }, - { - pubkey: program, - isSigner: false, - isWritable: false - } - ] - }) - ] - - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }), - InvalidRelayInstructionError, - 'Invalid destination mint' - ) - }) - - it('should not allow Jupiter route instruction when using fee payer as transfer authority', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - const userTransferAuthority = config.solanaFeePayerWallets[0].publicKey - const userSourceTokenAccount = getRandomPublicKey() - const userDestinationTokenAccount = getRandomPublicKey() - const destinationTokenAccount = getRandomPublicKey() - const platformFeeAccount = getRandomPublicKey() - const eventAuthority = getRandomPublicKey() - const program = getRandomPublicKey() - - // Create route instruction with proper discriminant - const routeInstructionData = Buffer.concat([ - JUPITER_ROUTE_DISCRIMINANT, - Buffer.alloc(32) // Additional instruction data - ]) - - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: routeInstructionData, - keys: [ - { - pubkey: TOKEN_PROGRAM_ID, - isSigner: false, - isWritable: false - }, - { - pubkey: userTransferAuthority, - isSigner: true, - isWritable: true - }, - { - pubkey: userSourceTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: userDestinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: destinationTokenAccount, - isSigner: false, - isWritable: true - }, - { - pubkey: NATIVE_MINT, // destination mint - isSigner: false, - isWritable: false - }, - { - pubkey: platformFeeAccount, - isSigner: false, - isWritable: false - }, - { - pubkey: eventAuthority, - isSigner: false, - isWritable: false - }, - { - pubkey: program, - isSigner: false, - isWritable: false - } - ] - }) - ] - - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }), - InvalidRelayInstructionError, - 'Invalid transfer authority' - ) - }) - - it('should not allow Jupiter instructions with unknown discriminants', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - const userTransferAuthority = getRandomPublicKey() - const userSourceTokenAccount = getRandomPublicKey() - - // Create instruction with unknown discriminant - const unknownInstructionData = Buffer.concat([ - Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]), // Unknown discriminant - Buffer.alloc(32) // Additional instruction data - ]) - - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: unknownInstructionData, - keys: [ - { - pubkey: TOKEN_PROGRAM_ID, - isSigner: false, - isWritable: false - }, - { - pubkey: userTransferAuthority, - isSigner: true, - isWritable: true - }, - { - pubkey: userSourceTokenAccount, - isSigner: false, - isWritable: true - } - ] - }) - ] - - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }), - InvalidRelayInstructionError, - 'Unknown Instruction Type' - ) - }) - - it('should handle Jupiter instructions with insufficient data length', async function () { - const JUPITER_AGGREGATOR_V6_PROGRAM_ID = new PublicKey( - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' - ) - const userTransferAuthority = getRandomPublicKey() - - // Create instruction with insufficient data (less than 8 bytes for discriminant) - const shortInstructionData = Buffer.from([1, 2, 3]) // Only 3 bytes - - const instructions = [ - new TransactionInstruction({ - programId: JUPITER_AGGREGATOR_V6_PROGRAM_ID, - data: shortInstructionData, - keys: [ - { - pubkey: userTransferAuthority, - isSigner: true, - isWritable: true - } - ] - }) - ] - - await assert.rejects( - async () => - assertRelayAllowedInstructions(instructions, { - user: { - wallet: 'something', - is_verified: false - } - }), - InvalidRelayInstructionError, - 'Unknown Instruction Type' - ) - }) - }) - - describe('System Program', function () { - it('should allow transfers when authenticated', async function () { - const feePayer = getRandomPublicKey() - const fromPubkey = getRandomPublicKey() - const toPubkey = getRandomPublicKey() - // Dummy eth address, no significance - const wallet = '0x36034724e7bda41d5142efd85e1f6773460f5679' - await assertRelayAllowedInstructions( - [ - SystemProgram.transfer({ - fromPubkey, - toPubkey, - lamports: 1 - }) - ], - { user: { wallet, is_verified: false }, feePayer: feePayer.toBase58() } - ) - }) - - it('should not allow transfers when not authenticated', async function () { - const fromPubkey = getRandomPublicKey() - const toPubkey = getRandomPublicKey() - await assert.rejects(async () => - assertRelayAllowedInstructions([ - SystemProgram.transfer({ - fromPubkey, - toPubkey, - lamports: 1 - }) - ]) - ) - }) - - it('should not allow transfers from the feePayer', async function () { - const wallet = '0x36034724e7bda41d5142efd85e1f6773460f5679' - const feePayer = getRandomPublicKey() - const toPubkey = getRandomPublicKey() - await assert.rejects(async () => - assertRelayAllowedInstructions( - [ - SystemProgram.transfer({ - fromPubkey: feePayer, - toPubkey, - lamports: 1 - }) - ], - - { - user: { wallet, is_verified: false }, - feePayer: feePayer.toBase58() - } - ) - ) - }) - - it('should not allow other system instructions', async function () { - const wallet = '0x36034724e7bda41d5142efd85e1f6773460f5679' - const feePayer = getRandomPublicKey() - const fromPubkey = getRandomPublicKey() - const newAccountPubkey = getRandomPublicKey() - const programId = getRandomPublicKey() - await assert.rejects(async () => - assertRelayAllowedInstructions( - [ - SystemProgram.createAccount({ - fromPubkey, - newAccountPubkey, - programId, - lamports: 1, - space: 0 - }) - ], - - { - user: { wallet, is_verified: false }, - feePayer: feePayer.toBase58() - } - ) - ) - }) - }) - - describe('Other Programs', function () { - it('allows memo instructions', async function () { - await assertRelayAllowedInstructions([ - new TransactionInstruction({ programId: MEMO_PROGRAM_ID, keys: [] }), - new TransactionInstruction({ programId: MEMO_V2_PROGRAM_ID, keys: [] }) - ]) - }) - - it('allows valid secp256k1 instructions', async function () { - await assertRelayAllowedInstructions([ - Secp256k1Program.createInstructionWithEthAddress({ - // Dummy eth address to make the encoder happy - ethAddress: '0x8fcfa10bd3808570987dbb5b1ef4ab74400fbfda', - message: Buffer.from( - '68d5397bb16195ea47091010f3abb8fc6b5cdfa65f00e1f505000000005f623a33383639383d3e3530373431303135335f00b6462e955da5841b6d9e1e2529b830f00f31bf', - 'hex' - ), - signature: Buffer.from( - 'f89b2e6f97f95f1306b468b10b1a18df9569b07d9d7b81b241d6fc99d9ec782e4e449f5c3c63836ed52c9344d3de5c3133fead711e421af545822f09bd78cb39', - 'hex' - ), - recoveryId: 0 - }) - ]) - }) - - it('rejects invalid secp256k1 instructions', async function () { - await assert.rejects(async () => - assertRelayAllowedInstructions([ - Secp256k1Program.createInstructionWithEthAddress({ - // Dummy eth address to make the encoder happy - ethAddress: '0x00b6462e955da5841b6d9e1e2529b830f00f31bf', - message: Buffer.from( - '81729dc83c157f41de7df4b72fc7e90d8d64d5aa5f00e1f505000000005f72656665727265643a353339343735333137', - 'hex' - ), - signature: Buffer.from( - '00d405b277dc948f97d7b7db8648cb16590d66084ba49642fedb08380ce5027a95d0a895287a3331332e7ad13daba87eed5c70820a19ca2eb6cc0ea1eb4695ba', - 'hex' - ), - recoveryId: 0 - }) - ]) - ) - }) - - it('does not allow other random programs', async function () { - await assert.rejects( - async () => - assertRelayAllowedInstructions([ - new TransactionInstruction({ - programId: getRandomPublicKey(), - keys: [] - }) - ]), - InvalidRelayInstructionError, - 'random program' - ) - }) - }) -}) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/assertRelayAllowedInstructions.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/assertRelayAllowedInstructions.ts deleted file mode 100644 index f890ea6d93b..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/assertRelayAllowedInstructions.ts +++ /dev/null @@ -1,722 +0,0 @@ -import crypto from 'crypto' - -import { - ClaimableTokensProgram, - RewardManagerProgram, - Secp256k1Program, - decodeAssociatedTokenAccountInstruction, - isCreateAssociatedTokenAccountIdempotentInstruction, - isCreateAssociatedTokenAccountInstruction -} from '@audius/spl' -import { Users } from '@pedalboard/storage' -import { - ASSOCIATED_TOKEN_PROGRAM_ID, - NATIVE_MINT, - TOKEN_PROGRAM_ID, - decodeInstruction, - getAssociatedTokenAddressSync, - isCloseAccountInstruction, - isSyncNativeInstruction, - isTransferCheckedInstruction, - isTransferInstruction -} from '@solana/spl-token' -import { - ComputeBudgetProgram, - PublicKey, - SystemInstruction, - SystemProgram, - TransactionInstruction -} from '@solana/web3.js' - -import { config } from '../../config' -import { rateLimitTokenAccountCreation } from '../../redis' -import { getConnection } from '../../utils/connections' - -import { InvalidRelayInstructionError } from './InvalidRelayInstructionError' -import { isUserAbusive } from './antiAbuse' -import { getAllowedMints } from './getAllowedMints' - -const MEMO_PROGRAM_ID = 'Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo' -const DBC_PROGRAM_ID = 'dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN' -const DAMM_V2_PROGRAM_ID = 'cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG' -const MEMO_V2_PROGRAM_ID = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr' -const PAYOUT_WALLET_MEMO = 'Payout Wallet' -const PREPARE_WITHDRAWAL_MEMO = 'Prepare Withdrawal' -const CLAIMABLE_TOKEN_PROGRAM_ID = config.claimableTokenProgramId -const REWARDS_MANAGER_PROGRAM_ID = config.rewardsManagerProgramId -const TRACK_LISTEN_COUNT_PROGRAM_ID = config.trackListenCountProgramId -const PAYMENT_ROUTER_PROGRAM_ID = config.paymentRouterProgramId -const JUPITER_AGGREGATOR_V6_PROGRAM_ID = - 'JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4' -const COINFLOW_PROGRAM_ID = 'FD1amxhTsDpwzoVX41dxp2ygAESURV2zdUACzxM1Dfw9' - -const usdcMintAddress = config.usdcMintAddress - -const REWARD_MANAGER = config.rewardsManagerAccountAddress - -const PAYMENT_ROUTER_WALLET = PublicKey.findProgramAddressSync( - [Buffer.from('payment_router')], - new PublicKey(PAYMENT_ROUTER_PROGRAM_ID) -)[0] - -const PAYMENT_ROUTER_USDC_TOKEN_ACCOUNT = getAssociatedTokenAddressSync( - new PublicKey(usdcMintAddress), - PAYMENT_ROUTER_WALLET, - true -) - -const findSpecificMemo = ( - instructions: TransactionInstruction[], - memo: string -) => { - for (const instruction of instructions) { - if ( - instruction.programId.toBase58() === MEMO_PROGRAM_ID && - instruction.data.toString() === memo - ) { - return instruction.data.toString() - } - } - return null -} - -/** Standard SPL token account data size (bytes) */ -const TOKEN_ACCOUNT_SIZE = 165 - -/** - * Returns true if the tx contains an instruction that sends >= rent exemption - * lamports to the fee payer (System Transfer or Token CloseAccount). - */ -const feePayerReceivesRentExemptionOrMore = ( - instructions: TransactionInstruction[], - feePayer: string, - rentExemptionTokenAccountLamports: number -): boolean => { - for (const instr of instructions) { - if (instr.programId.equals(SystemProgram.programId)) { - try { - const type = SystemInstruction.decodeInstructionType(instr) - if (type === 'Transfer') { - const decoded = SystemInstruction.decodeTransfer(instr) - if ( - decoded.toPubkey.toBase58() === feePayer && - decoded.lamports >= rentExemptionTokenAccountLamports - ) { - return true - } - } - } catch { - /* skip invalid */ - } - } else if (instr.programId.equals(TOKEN_PROGRAM_ID)) { - try { - const decoded = decodeInstruction(instr) - if ( - isCloseAccountInstruction(decoded) && - decoded.keys.destination.pubkey.toBase58() === feePayer - ) { - return true - } - } catch { - /* skip invalid */ - } - } - } - return false -} - -/** - * Counts fee-payer-funded ATA creates that have no matching close. - */ -const countUnmatchedFeePayerCreates = ( - instructions: TransactionInstruction[], - feePayer: string -): number => { - const feePayerCreatesWithoutClose: Set = new Set() - const allAtaCreates: Array<{ associatedToken: PublicKey; payer: PublicKey }> = - [] - - for (const instr of instructions) { - if (!instr.programId.equals(ASSOCIATED_TOKEN_PROGRAM_ID)) continue - try { - const decoded = decodeAssociatedTokenAccountInstruction(instr) - if ( - isCreateAssociatedTokenAccountInstruction(decoded) || - isCreateAssociatedTokenAccountIdempotentInstruction(decoded) - ) { - const payer = decoded.keys.payer.pubkey.toBase58() - if (payer === feePayer) { - allAtaCreates.push({ - associatedToken: decoded.keys.associatedToken.pubkey, - payer: decoded.keys.payer.pubkey - }) - } - } - } catch { - /* skip */ - } - } - - for (const create of allAtaCreates) { - const hasMatchingClose = instructions.some((instr) => { - if (!instr.programId.equals(TOKEN_PROGRAM_ID)) return false - try { - const decoded = decodeInstruction(instr) - return ( - isCloseAccountInstruction(decoded) && - create.associatedToken.equals(decoded.keys.account.pubkey) && - create.payer.equals(decoded.keys.destination.pubkey) - ) - } catch { - return false - } - }) - if (!hasMatchingClose) { - feePayerCreatesWithoutClose.add(create.associatedToken.toBase58()) - } - } - return feePayerCreatesWithoutClose.size -} - -/** - * Only allow the createTokenAccount instruction of the Associated Token - * Account program, provided it has matching close instructions. - * Close instructions are on the Token Programand are not validated here. - */ -const assertAllowedAssociatedTokenAccountProgramInstruction = async ( - instructionIndex: number, - instruction: TransactionInstruction, - instructions: TransactionInstruction[], - rentExemptionTokenAccountLamports: number, - user?: Pick | null, - feePayer?: string | null -) => { - const { wallet, is_verified: isVerified } = user ?? {} - const decodedInstruction = - decodeAssociatedTokenAccountInstruction(instruction) - if ( - isCreateAssociatedTokenAccountInstruction(decodedInstruction) || - isCreateAssociatedTokenAccountIdempotentInstruction(decodedInstruction) - ) { - const allowedMints = await getAllowedMints() - allowedMints.push( - NATIVE_MINT.toBase58() // Allow creating ATAs for SOL - ) - const mintAddress = decodedInstruction.keys.mint.pubkey.toBase58() - if (!allowedMints.includes(mintAddress)) { - throw new InvalidRelayInstructionError( - instructionIndex, - `Mint not allowed for Associated Token Account program: ${mintAddress}` - ) - } - - // Allow creating associated tokens for the Payment Router - if ( - decodedInstruction.keys.owner.pubkey.toBase58() === - PAYMENT_ROUTER_WALLET.toBase58() - ) { - return - } - - // If the user pays for the create (not feePayer), there's no drain risk — allow without rate limit. - const createPayer = decodedInstruction.keys.payer.pubkey.toBase58() - if (feePayer && createPayer !== feePayer) { - return - } - - // Protect against feePayer drain by ensuring that there's always as - // many account close instructions as creates - const matchingCreateInstructions = instructions - .filter((instr) => instr.programId.equals(ASSOCIATED_TOKEN_PROGRAM_ID)) - .map(decodeAssociatedTokenAccountInstruction) - .filter( - (instr) => - (isCreateAssociatedTokenAccountInstruction(instr) || - isCreateAssociatedTokenAccountIdempotentInstruction(instr)) && - decodedInstruction.keys.associatedToken.pubkey.equals( - instr.keys.associatedToken.pubkey - ) && - decodedInstruction.keys.payer.pubkey.equals(instr.keys.payer.pubkey) - ) - const matchingCloseInstructions = instructions - .filter((instr) => instr.programId.equals(TOKEN_PROGRAM_ID)) - .map((instr) => decodeInstruction(instr)) - .filter( - (instr) => - isCloseAccountInstruction(instr) && - decodedInstruction.keys.associatedToken.pubkey.equals( - instr.keys.account.pubkey - ) && - decodedInstruction.keys.payer.pubkey.equals( - instr.keys.destination.pubkey - ) - ) - if ( - matchingCreateInstructions.length !== matchingCloseInstructions.length - ) { - // Reimbursement exception: allow exactly one fee-payer-funded create without - // matching close when fee payer receives >= rent exemption in the same tx. - if ( - feePayer && - feePayerReceivesRentExemptionOrMore( - instructions, - feePayer, - rentExemptionTokenAccountLamports - ) && - countUnmatchedFeePayerCreates(instructions, feePayer) === 1 - ) { - return - } - if (wallet) { - try { - let memo: string | undefined - if (findSpecificMemo(instructions, PAYOUT_WALLET_MEMO)) { - memo = PAYOUT_WALLET_MEMO - } else if (findSpecificMemo(instructions, PREPARE_WITHDRAWAL_MEMO)) { - memo = PREPARE_WITHDRAWAL_MEMO - } - const isAbusive = await isUserAbusive(wallet) - if (isAbusive) { - throw new InvalidRelayInstructionError( - instructionIndex, - 'User is abusive' - ) - } - // In this situation, we could be losing SOL because the user is allowed to - // close their own ATA and reclaim the rent that we've fronted, so - // rate limit it cautiously. - await rateLimitTokenAccountCreation(wallet, !!isVerified, memo) - } catch (e) { - const error = e as Error - throw new InvalidRelayInstructionError( - instructionIndex, - error.message - ) - } - } else { - throw new InvalidRelayInstructionError( - instructionIndex, - `Mismatched number of create and close instructions for account: ${decodedInstruction.keys.associatedToken.pubkey.toBase58()}` - ) - } - } - } else { - throw new InvalidRelayInstructionError( - instructionIndex, - 'Unsupported Associated Token Program instruction' - ) - } -} - -/** - * Allow normal transfers provided they are into userbanks, and allow - * close account instructions and sync native (to unwrap wSOL) instructions. - */ -const assertAllowedTokenProgramInstruction = async ( - instructionIndex: number, - instruction: TransactionInstruction, - wallet?: string | null -) => { - const decodedInstruction = decodeInstruction(instruction) - if ( - isTransferCheckedInstruction(decodedInstruction) || - isTransferInstruction(decodedInstruction) - ) { - if (!wallet) { - throw new InvalidRelayInstructionError( - instructionIndex, - `Transfer Checked requires authentication` - ) - } - const destination = decodedInstruction.keys.destination.pubkey - const allowedMints = await getAllowedMints() - const validUserbanks = await Promise.all( - allowedMints.map(async (mint) => { - const authority = ClaimableTokensProgram.deriveAuthority({ - programId: new PublicKey(CLAIMABLE_TOKEN_PROGRAM_ID), - mint: new PublicKey(mint) - }) - const userbank = await ClaimableTokensProgram.deriveUserBank({ - ethAddress: wallet, - claimableTokensPDA: authority - }) - return userbank - }) - ) - validUserbanks.push(PAYMENT_ROUTER_USDC_TOKEN_ACCOUNT) - - // Check that destination is either a userbank or a payment router token account - if (!validUserbanks.some((userbank) => userbank.equals(destination))) { - throw new InvalidRelayInstructionError( - instructionIndex, - `Invalid destination account: ${destination.toBase58()}` - ) - } - } else if ( - !isCloseAccountInstruction(decodedInstruction) && - !isSyncNativeInstruction(decodedInstruction) - ) { - throw new InvalidRelayInstructionError( - instructionIndex, - 'Unsupported Token Program instruction' - ) - } -} - -/** - * Checks that the Reward Manager account on the Reward Manager program - * matches the one in use on our deployed program. - */ -const assertAllowedRewardsManagerProgramInstruction = ( - instructionIndex: number, - instruction: TransactionInstruction -) => { - const decodedInstruction = RewardManagerProgram.decodeInstruction(instruction) - const rewardManager = - decodedInstruction.keys.rewardManagerState.pubkey.toBase58() - if (rewardManager !== REWARD_MANAGER) { - throw new InvalidRelayInstructionError( - instructionIndex, - `Invalid Reward Manager Account: ${rewardManager}` - ) - } -} - -/** - * Checks that the claimable token program instruction uses one of the - * allowed mints by checking the authority. - */ -const assertAllowedClaimableTokenProgramInstruction = async ( - instructionIndex: number, - instruction: TransactionInstruction -) => { - const decodedInstruction = - ClaimableTokensProgram.decodeInstruction(instruction) - const authority = decodedInstruction.keys.authority.pubkey - const allowedMints = await getAllowedMints() - const authorities = allowedMints.map((mint) => - ClaimableTokensProgram.deriveAuthority({ - programId: new PublicKey(CLAIMABLE_TOKEN_PROGRAM_ID), - mint: new PublicKey(mint) - }) - ) - if (!authorities.some((auth) => auth.equals(authority))) { - throw new InvalidRelayInstructionError( - instructionIndex, - `Invalid Claimable Token Authority: ${authority}` - ) - } -} - -/** - * Indexes of various accounts in a Jupiter V6 sharedAccountsRoute instruction. - * https://github.com/jup-ag/jupiter-cpi/blob/main/idl.json - */ -const JupiterSharedSwapAccountIndex = { - TOKEN_PROGRAM: 0, - PROGRAM_AUTHORITY: 1, - USER_TRANSFER_AUTHORITY: 2, - SOURCE_TOKEN_ACCOUNT: 3, - PROGRAM_SOURCE_TOKEN_ACCOUNT: 4, - PROGRAM_DESTINATION_TOKEN_ACCOUNT: 5, - DESTINATION_TOKEN_ACCOUNT: 6, - SOURCE_MINT: 7, - DESTINATION_MINT: 8, - PLATFORM_FEE_ACCOUNT: 9, - TOKEN_2022_PROGRAM: 10 -} - -/** - * Indexes of various accounts in a Jupiter V6 route instruction. - * https://github.com/jup-ag/jupiter-cpi/blob/main/idl.json - */ -const JupiterRouteAccountIndex = { - TOKEN_PROGRAM: 0, - USER_TRANSFER_AUTHORITY: 1, - USER_SOURCE_TOKEN_ACCOUNT: 2, - USER_DESTINATION_TOKEN_ACCOUNT: 3, - DESTINATION_TOKEN_ACCOUNT: 4, - DESTINATION_MINT: 5, - PLATFORM_FEE_ACCOUNT: 6, - EVENT_AUTHORITY: 7, - PROGRAM: 8 -} - -export const computeInstructionDiscriminant = ( - instructionName: string -): Buffer => { - const hash = crypto.createHash('sha256') - hash.update(`global:${instructionName}`) - return hash.digest().slice(0, 8) -} - -export const JUPITER_ROUTE_DISCRIMINANT = - computeInstructionDiscriminant('route') -export const JUPITER_SHARED_ACCOUNTS_ROUTE_DISCRIMINANT = - computeInstructionDiscriminant('shared_accounts_route') -export const JUPITER_EXACT_OUT_ROUTE_DISCRIMINANT = - computeInstructionDiscriminant('exact_out_route') -export const JUPITER_SHARED_ACCOUNTS_EXACT_OUT_ROUTE_DISCRIMINANT = - computeInstructionDiscriminant('shared_accounts_exact_out_route') - -const getJupiterInstructionType = ( - instruction: TransactionInstruction -): 'route' | 'sharedAccountRoute' | 'unknown' => { - if (instruction.data.length < 8) { - return 'unknown' - } - - const instructionDiscriminant = instruction.data.slice(0, 8) - - if ( - instructionDiscriminant.equals(JUPITER_ROUTE_DISCRIMINANT) || - instructionDiscriminant.equals(JUPITER_EXACT_OUT_ROUTE_DISCRIMINANT) - ) { - return 'route' - } - if ( - instructionDiscriminant.equals( - JUPITER_SHARED_ACCOUNTS_ROUTE_DISCRIMINANT - ) || - instructionDiscriminant.equals( - JUPITER_SHARED_ACCOUNTS_EXACT_OUT_ROUTE_DISCRIMINANT - ) - ) { - return 'sharedAccountRoute' - } - - return 'unknown' -} - -// Only allow swaps to SOL (for withdrawals) or USDC, AUDIO, or BONK (for userbank purchases) -const assertAllowedJupiterProgramInstruction = async ( - instructionIndex: number, - instruction: TransactionInstruction, - wallet?: string | null -) => { - if (!wallet) { - throw new InvalidRelayInstructionError( - instructionIndex, - 'Jupiter Swap requires authentication' - ) - } - - const instructionType = getJupiterInstructionType(instruction) - if (instructionType === 'unknown') { - throw new InvalidRelayInstructionError( - instructionIndex, - 'Invalid Jupiter Program Instruction, Unknown Instruction Type' - ) - } - - let sourceMint: string | null = null - let destinationMint: string | null = null - let userWallet: string | null = null - - try { - if (instructionType === 'sharedAccountRoute') { - // Handle shared_accounts_route instruction - sourceMint = - instruction.keys[ - JupiterSharedSwapAccountIndex.SOURCE_MINT - ].pubkey.toBase58() - destinationMint = - instruction.keys[ - JupiterSharedSwapAccountIndex.DESTINATION_MINT - ].pubkey.toBase58() - userWallet = - instruction.keys[ - JupiterSharedSwapAccountIndex.USER_TRANSFER_AUTHORITY - ].pubkey.toBase58() - } else if (instructionType === 'route') { - // Handle route instruction - destinationMint = - instruction.keys[ - JupiterRouteAccountIndex.DESTINATION_MINT - ].pubkey.toBase58() - userWallet = - instruction.keys[ - JupiterRouteAccountIndex.USER_TRANSFER_AUTHORITY - ].pubkey.toBase58() - - // For route instructions, the source mint is not directly available in the accounts - // It would need to be derived from the user's source token account via RPC call - // For security and performance reasons, we skip source mint validation for route instructions - // but still validate the destination mint and user authority - } - } catch (error) { - throw new InvalidRelayInstructionError( - instructionIndex, - `Failed to parse Jupiter ${instructionType} instruction: ${error instanceof Error ? error.message : 'Unknown error'}` - ) - } - - const allowedMints = await getAllowedMints() - allowedMints.push( - NATIVE_MINT.toBase58() // Allow swaps to/from SOL - ) - - if ( - instructionType === 'sharedAccountRoute' && - sourceMint && - !allowedMints.includes(sourceMint) - ) { - throw new InvalidRelayInstructionError( - instructionIndex, - `Invalid source mint: ${sourceMint}` - ) - } - - if (destinationMint && !allowedMints.includes(destinationMint)) { - throw new InvalidRelayInstructionError( - instructionIndex, - `Invalid destination mint: ${destinationMint}` - ) - } - - // Don't allow swaps on the feepayers - const feePayerAddresses = config.solanaFeePayerWallets.map((kp) => - kp.publicKey.toBase58() - ) - if (userWallet && feePayerAddresses?.includes(userWallet)) { - throw new InvalidRelayInstructionError( - instructionIndex, - `Invalid transfer authority: ${userWallet}` - ) - } -} - -const assertAllowedSystemProgramInstruction = ( - instructionIndex: number, - instruction: TransactionInstruction, - wallet?: string | null, - feePayer?: string -) => { - if (!wallet) { - throw new InvalidRelayInstructionError( - instructionIndex, - 'System program requires authentication' - ) - } - if (!feePayer) { - throw new InvalidRelayInstructionError( - instructionIndex, - 'Invalid fee payer' - ) - } - const decodedInstructionType = - SystemInstruction.decodeInstructionType(instruction) - if (decodedInstructionType !== 'Transfer') { - throw new InvalidRelayInstructionError( - instructionIndex, - 'Invalid System Program Instruction' - ) - } else { - const decodedInstruction = SystemInstruction.decodeTransfer(instruction) - if (decodedInstruction.fromPubkey.toBase58() === feePayer) { - throw new InvalidRelayInstructionError( - instructionIndex, - 'Invalid fromPubkey for transfer' - ) - } - } -} - -const assertValidSecp256k1ProgramInstruction = ( - instructionIndex: number, - instruction: TransactionInstruction -) => { - const decoded = Secp256k1Program.decode(instruction) - if (!Secp256k1Program.verifySignature(decoded)) { - throw new InvalidRelayInstructionError( - instructionIndex, - 'Invalid Secp256k1Program instruction' - ) - } -} - -/** - * Checks each of the instructions to make sure it's something we want to relay. - * The main goals of the checks are to ensure the feePayer isn't abused. - * Major checks include: - * - Checking the caller is interacting with our deployed versions of the programs - * - Checking the caller isn't creating token accounts that can be rent-drained - * - Checking the caller isn't interacting with non-Audius related programs - * @param instructions the instructions to check - * @param user the user, if signed in - * @param socialProofEnabled if social proof is enabled - * @throws {InvalidRelayInstructionError} if the instruction isn't supported - */ -export const assertRelayAllowedInstructions = async ( - instructions: TransactionInstruction[], - options?: { - user?: Pick - feePayer?: string - } -) => { - const connection = getConnection() - const rentExemptionTokenAccountLamports = - await connection.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_SIZE) - - for (let i = 0; i < instructions.length; i++) { - const instruction = instructions[i] - switch (instruction.programId.toBase58()) { - case ASSOCIATED_TOKEN_PROGRAM_ID.toBase58(): - await assertAllowedAssociatedTokenAccountProgramInstruction( - i, - instruction, - instructions, - rentExemptionTokenAccountLamports, - options?.user, - options?.feePayer - ) - break - case TOKEN_PROGRAM_ID.toBase58(): - await assertAllowedTokenProgramInstruction( - i, - instruction, - options?.user?.wallet - ) - break - case REWARDS_MANAGER_PROGRAM_ID: - assertAllowedRewardsManagerProgramInstruction(i, instruction) - break - case CLAIMABLE_TOKEN_PROGRAM_ID: - await assertAllowedClaimableTokenProgramInstruction(i, instruction) - break - case JUPITER_AGGREGATOR_V6_PROGRAM_ID: - await assertAllowedJupiterProgramInstruction( - i, - instruction, - options?.user?.wallet - ) - break - case SystemProgram.programId.toBase58(): - assertAllowedSystemProgramInstruction( - i, - instruction, - options?.user?.wallet, - options?.feePayer - ) - break - case Secp256k1Program.programId.toBase58(): - assertValidSecp256k1ProgramInstruction(i, instruction) - break - case PAYMENT_ROUTER_PROGRAM_ID: - case DBC_PROGRAM_ID: - case DAMM_V2_PROGRAM_ID: - case MEMO_PROGRAM_ID: - case MEMO_V2_PROGRAM_ID: - case TRACK_LISTEN_COUNT_PROGRAM_ID: - case ComputeBudgetProgram.programId.toBase58(): - case COINFLOW_PROGRAM_ID: - // All instructions of these programs are allowed - break - default: - throw new InvalidRelayInstructionError( - i, - `Unknown Program: ${instruction.programId.toBase58()}` - ) - } - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/associateExternalWallet.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/associateExternalWallet.ts deleted file mode 100644 index 57311aeb180..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/associateExternalWallet.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AssociatedWallets, Table, WalletChain } from '@pedalboard/storage' -import { VersionedTransaction } from '@solana/web3.js' - -import { db } from '../../db' -import { logger } from '../../logger' - -export const associateExternalWallet = async ( - transaction: VersionedTransaction, - userId: number -) => { - try { - const wallet = transaction.message.staticAccountKeys[0] - // Check if wallet already exists for another user and remove it - const existingWallets = await db(Table.AssociatedWallets) - .where('wallet', '=', wallet) - .where('chain', '=', WalletChain.Sol) - .where('is_current', '=', true) - for (const existingWallet of existingWallets) { - if (existingWallet.user_id !== userId) { - // Remove wallet from other user - await db(Table.AssociatedWallets) - .where('id', '=', existingWallet.id) - .update({ is_current: false }) - } - } - - // Insert new wallet association - await db(Table.AssociatedWallets).insert({ - user_id: userId, - wallet: wallet.toBase58(), - chain: WalletChain.Sol, - is_current: true, - is_delete: false - }) - - return true - } catch (error) { - logger.error({ error }, 'Error associating external wallet') - return false - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/getAllowedMints.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/getAllowedMints.ts deleted file mode 100644 index bc478c89acb..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/getAllowedMints.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { ArtistCoins } from '@pedalboard/storage' - -import { config } from '../../config' -import { db } from '../../db' - -export const getAllowedMints = async (): Promise => { - const rows = await db('artist_coins').select('mint') - const artistCoinMints = rows.map((row) => row.mint) - return [config.usdcMintAddress, config.waudioMintAddress, ...artistCoinMints] -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/relay.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/relay.ts deleted file mode 100644 index 6d69bba3976..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/routes/relay/relay.ts +++ /dev/null @@ -1,151 +0,0 @@ -import type { RelayRequestBody } from '@audius/sdk' -import { - PublicKey, - TransactionMessage, - VersionedTransaction -} from '@solana/web3.js' -import bs58 from 'bs58' -import { Request, Response, NextFunction } from 'express' - -import { config } from '../../config' -import { BadRequestError, UnauthorizedError } from '../../errors' -import { connections } from '../../utils/connections' -import { - broadcastTransaction, - sendTransactionWithRetries -} from '../../utils/transaction' -import { verifySignatures } from '../../utils/verifySignatures' - -import { InvalidRelayInstructionError } from './InvalidRelayInstructionError' -import { assertRelayAllowedInstructions } from './assertRelayAllowedInstructions' -import { associateExternalWallet } from './associateExternalWallet' - -/** - * Gets the specified fee payer's key pair from the config. - * @param feePayerPublicKey the fee payer to find - * @returns the Keypair of the given fee payer or null if not found - */ -export const getFeePayerKeyPair = (feePayerPublicKey?: PublicKey) => { - if (!feePayerPublicKey) { - return null - } - return ( - config.solanaFeePayerWallets.find((kp) => - kp.publicKey.equals(feePayerPublicKey) - ) ?? null - ) -} - -/** - * Gets the lookup table account datas for the addresses given. - * @param lookupTableKeys the addresses of the lookup tables - * @returns the lookup table account data for each address - */ -const getLookupTableAccounts = async (lookupTableKeys: PublicKey[]) => { - return await Promise.all( - lookupTableKeys.map(async (accountKey) => { - const res = await connections[0].getAddressLookupTable(accountKey) - if (res.value === null) { - throw new Error(`Lookup table not found: ${accountKey.toBase58()}`) - } - return res.value - }) - ) -} - -/** - * The core Solana relay route, /solana/relay. - * - * This endpoint takes a transaction and some options in the POST body, - * and signs the transaction (if necessary) and sends it (with retry logic). - * If successful, it broadcasts the resulting transaction metadata to the - * other discovery nodes to help them save on RPC calls when indexing. - */ -export const relay = async ( - req: Request, - res: Response, - next: NextFunction -) => { - try { - const { - transaction: encodedTransaction, - confirmationOptions, - sendOptions - } = req.body - const commitment = confirmationOptions?.commitment ?? 'processed' - const connection = connections[0] - const strategy = - confirmationOptions?.strategy ?? (await connection.getLatestBlockhash()) - const decoded = Buffer.from(encodedTransaction, 'base64') - const transaction = VersionedTransaction.deserialize(decoded) - - const lookupTableAccounts = await getLookupTableAccounts( - transaction.message.addressTableLookups.map((k) => k.accountKey) - ) - const decompiled = TransactionMessage.decompile(transaction.message, { - addressLookupTableAccounts: lookupTableAccounts - }) - - const feePayerKey = decompiled.payerKey - const feePayerKeyPair = getFeePayerKeyPair(feePayerKey) - - if (feePayerKeyPair) { - res.locals.logger.info( - `Signing with fee payer '${feePayerKey.toBase58()}'` - ) - try { - // Only care about what the instructions are if signing/paying - await assertRelayAllowedInstructions(decompiled.instructions, { - user: res.locals.signerUser, - feePayer: feePayerKey.toBase58() - }) - } catch (e) { - if (e instanceof InvalidRelayInstructionError) { - throw new BadRequestError('Invalid relay instructions', { cause: e }) - } else { - throw e - } - } - transaction.sign([feePayerKeyPair]) - } else if (verifySignatures(transaction)) { - if (res.locals.signerUser?.user_id) { - res.locals.logger.info('Associating external wallet...') - await associateExternalWallet( - transaction, - res.locals.signerUser?.user_id - ) - } - res.locals.logger.info( - `Transaction already signed by '${feePayerKey.toBase58()}'` - ) - } else if (res.locals.signerUser) { - throw new BadRequestError( - `No fee payer for address '${feePayerKey?.toBase58()}' and signature missing or invalid` - ) - } else { - throw new UnauthorizedError() - } - const signature = bs58.encode(transaction.signatures[0]) - - const logger = res.locals.logger.child({ signature }) - logger.info( - { rpcEndpoints: connections.map((c) => c.rpcEndpoint) }, - 'Sending transaction...' - ) - const confirmationStrategy = { ...strategy, signature } - await sendTransactionWithRetries({ - transaction, - sendOptions, - commitment, - confirmationStrategy, - logger - }) - res.status(200).send({ signature }) - const responseTime = new Date().getTime() - res.locals.requestStartTime - logger.info({ responseTime, statusCode: res.statusCode }, 'response sent') - await broadcastTransaction({ logger, signature }) - next() - } catch (e) { - next(e) - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/connections.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/connections.ts deleted file mode 100644 index 099a561f42b..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/connections.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Connection } from '@solana/web3.js' - -import { config } from '../config' - -export const normalizeEp = (ep: string): string => { - if (ep.startsWith('http')) { - return ep - } else { - const mep: string = Array.from(ep) - .filter((c, i) => i % Math.floor(ep.length / 6) !== 0) - .join('') - return Buffer.from(mep, 'base64').toString('utf-8') - } -} - -export const connections = config.solanaEndpoints.map( - (endpoint) => new Connection(normalizeEp(endpoint)) -) - -export const getConnection = (): Connection => { - const randomIndex = Math.floor(Math.random() * connections.length) - return connections[randomIndex] -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/delay.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/delay.ts deleted file mode 100644 index 02fd0e17fe2..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/delay.ts +++ /dev/null @@ -1,17 +0,0 @@ -export const delay = async (ms: number, options?: { signal: AbortSignal }) => { - const signal = options?.signal - return new Promise((resolve, reject) => { - if (signal?.aborted) { - reject(new Error('Aborted')) - } - const listener = () => { - clearTimeout(timer) - reject(new Error('Timed out')) - } - const timer = setTimeout(() => { - signal?.removeEventListener('abort', listener) - resolve() - }, ms) - signal?.addEventListener('abort', listener) - }) -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/ipData.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/ipData.ts deleted file mode 100644 index d8239f301e3..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/ipData.ts +++ /dev/null @@ -1,64 +0,0 @@ -import axios from 'axios' -import { Request } from 'express' -import { Logger } from 'pino' -import { getClientIp } from 'request-ip' - -import { logger } from '../logger' - -export type LocationData = { - city: string - region: string - country: string -} | null - -// gets ip data from a validator node -export const getIpData = async ( - logger: Logger, - ip: string -): Promise => { - const url = `https://creatornode.audius.co/storage.v1.StorageService/GetIPData?ip=${ip}` - try { - const { data: response } = await axios.get(url) - return response - } catch (e: unknown) { - logger.error({ error: e }, 'error requesting ip data') - return null - } -} - -export const getRequestIpData = async ( - logger: Logger, - req: Request -): Promise => { - try { - const ip = getIP(req) - return await getIpData(logger, ip) - } catch (e) { - logger.error({ e }, 'error requesting ip data') - return null - } -} - -// Utility to gather the IP from an incoming express request. -// Prioritizes 'X-Forwarded-For' if it exists. Otherwise returns the request objects ip. -// Throws if neither can be found. -export const getIP = (req: Request): string => { - const clientIP = getClientIp(req) - // https://github.com/pbojinov/request-ip?tab=readme-ov-file#how-it-works - if (clientIP === null) { - throw new Error('could not find client ip') - } - return clientIP -} - -// Utility to gather the IP from an incoming express request. -// Prioritizes 'X-Forwarded-For' if it exists. Otherwise returns the request objects ip. -// Catches errors and returns an empty string as a default. -export const getIPwithDefault = (req: Request): string => { - try { - return getIP(req) - } catch (e) { - logger.error({ e }, 'could not get IP') - return '' - } -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/sortKeys.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/sortKeys.ts deleted file mode 100644 index ea83196935e..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/sortKeys.ts +++ /dev/null @@ -1,12 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const sortKeys = (x: any): any => { - if (typeof x !== 'object' || !x) { - return x - } - if (Array.isArray(x)) { - return x.map(sortKeys) - } - return Object.keys(x) - .sort() - .reduce((o, k) => ({ ...o, [k]: sortKeys(x[k]) }), {}) -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/transaction.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/transaction.ts deleted file mode 100644 index 6bef5b8f9d3..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/transaction.ts +++ /dev/null @@ -1,291 +0,0 @@ -import { - Commitment, - Connection, - SendOptions, - SendTransactionError, - TransactionConfirmationStrategy, - VersionedTransaction, - type RpcResponseAndContext, - type SignatureStatus -} from '@solana/web3.js' -import fetch from 'cross-fetch' -import { personalSign } from 'eth-sig-util' -import { Logger } from 'pino' - -import { config } from '../config' -import { logger as defaultLogger } from '../logger' -import { cacheTransaction, getCachedDiscoveryNodes } from '../redis' - -import { connections, getConnection } from './connections' -import { delay } from './delay' - -const RETRY_DELAY_MS = 2 * 1000 -const CONFIRM_POLL_DELAY_MS = 5 * 1000 - -/** - * Forwards the transaction response to other Solana Relays on other discovery - * nodes so that they can cache it to lighten the RPC load on indexing. - */ -const forwardTransaction = async (logger: Logger, transaction: string) => { - const endpoints = await getCachedDiscoveryNodes() - logger.info(`Forwarding to ${endpoints.length} endpoints...`) - const body = JSON.stringify({ transaction }) - await Promise.all( - endpoints - .filter((p) => p.endpoint !== config.endpoint) - .map(({ endpoint }) => - fetch(`${endpoint}/solana/cache`, { - method: 'POST', - body, - headers: { - 'content-type': 'application/json', - 'Discovery-Signature': personalSign(config.delegatePrivateKey, { - data: body - }) - } - }) - .then((res) => { - if (res.ok) { - logger.info( - { endpoint, status: res.status }, - `Forwarded successfully` - ) - } else { - logger.warn( - { endpoint }, - `Failed to forward transaction to endpoint: ${res.statusText}` - ) - } - }) - .catch((e) => { - logger.warn( - { endpoint }, - `Failed to forward transaction to endpoint: ${e}` - ) - }) - ) - ) -} - -/** - * Checks that a confirmation status is considered confirmed based on the - * commitment level. - * - * @see {@link https://github.com/solana-foundation/solana-web3.js/blob/c26c13bf841821d9bbf83bb476c567fe29d13821/src/connection.ts#L3958-L3982} - */ -const isConfirmed = (value: SignatureStatus, commitment: Commitment) => { - switch (commitment) { - case 'confirmed': - case 'single': - case 'singleGossip': { - if (value.confirmationStatus === 'processed') { - return false - } - break - } - case 'finalized': - case 'max': - case 'root': { - if ( - value.confirmationStatus === 'processed' || - value.confirmationStatus === 'confirmed' - ) { - return false - } - break - } - // exhaust enums to ensure full coverage - case 'processed': - case 'recent': - } - return true -} - -/** - * Sends the transaction repeatedly to all configured RPCs until - * it's been confirmed with the given commitment level or the blockhash expires. - */ -export const sendTransactionWithRetries = async ({ - transaction, - commitment, - confirmationStrategy, - sendOptions, - logger -}: { - transaction: VersionedTransaction - commitment: Commitment - confirmationStrategy: TransactionConfirmationStrategy - sendOptions?: SendOptions - logger: Logger -}) => { - const serializedTx = transaction.serialize() - - let retryCount = 0 - const createRetryPromise = async (signal: AbortSignal): Promise => { - while (!signal.aborted) { - Promise.any( - connections.map((connection) => - connection.sendRawTransaction(serializedTx, { - skipPreflight: true, - maxRetries: 0, - ...sendOptions - }) - ) - ).catch((error) => { - logger.warn({ error, retryCount }, `Failed retry...`) - }) - await delay(RETRY_DELAY_MS) - retryCount++ - } - } - - const connection = connections[0] - const pollTransactionConfirmation = async ( - signal: AbortSignal, - signature: string, - commitment: Commitment - ) => { - while (!signal.aborted) { - try { - const connection = getConnection() - const res = await connection.getSignatureStatus(signature) - if (res.value) { - const value = res.value - if (isConfirmed(value, commitment)) { - logger.info({ signature }, 'Confirmed transaction via polling.') - return res as RpcResponseAndContext - } - } - } catch (error) { - logger.warn({ error }, `Failed to poll transaction confirmation...`) - } - await delay(CONFIRM_POLL_DELAY_MS) - } - } - - const start = Date.now() - const abortController = new AbortController() - let success = false - try { - if (!sendOptions?.skipPreflight) { - const simulatedRes = await connection.simulateTransaction(transaction, { - replaceRecentBlockhash: true - }) - if (simulatedRes.value.err) { - throw new SendTransactionError({ - action: 'simulate', - signature: confirmationStrategy.signature, - transactionMessage: JSON.stringify(simulatedRes.value.err), - logs: simulatedRes.value.logs ?? undefined - }) - } - } - - const res = await Promise.race([ - createRetryPromise(abortController.signal), - connection.confirmTransaction( - { ...confirmationStrategy, abortSignal: abortController.signal }, - commitment - ), - // `confirmTransaction` only works with websockets. Also poll in case the - // transaction succeeds but we miss the websocket event. - pollTransactionConfirmation( - abortController.signal, - confirmationStrategy.signature, - commitment - ) - ]) - - if (!res) { - throw new Error('Failed to get transaction confirmation result') - } - if (res.value.err) { - // Try one more time to confirm... - try { - const confirmationRes = await connection.getSignatureStatus( - confirmationStrategy.signature - ) - if ( - confirmationRes.value?.confirmationStatus === commitment && - !confirmationRes.value?.err - ) { - success = true - logger.info( - { signature: confirmationStrategy.signature }, - 'Confirmed transaction at final check.' - ) - return confirmationStrategy.signature - } - } catch (error) { - logger.error({ error }, `Failed to get final signature status check.`) - } - throw new SendTransactionError({ - action: 'send', - signature: confirmationStrategy.signature, - transactionMessage: JSON.stringify(res.value.err) - }) - } - success = true - return confirmationStrategy.signature - } finally { - // Stop the other operations - abortController.abort() - const end = Date.now() - const elapsedMs = end - start - logger.info( - { elapsedMs, retryCount, success }, - 'sendTransactionWithRetries completed.' - ) - } -} - -/** - * Confirms a transaction if skipConfirmation is false or not passed. Stores the given transaction in - * redis and then broadcasts it to all other discovery nodes using forwardTransaction. - */ -export const broadcastTransaction = async ({ - signature, - skipConfirmation = false, - logger -}: { - signature: string - skipConfirmation?: boolean - logger?: Logger -}) => { - logger = logger !== undefined ? logger : defaultLogger - const connection = getConnection() - if (!skipConfirmation) { - // Confirm, fetch, cache and forward after success response. - // The transaction may be confirmed from specifying commitment before, - // but that may have been a different RPC. So confirm again. - logger.info(`Confirming transaction before fetching...`) - const strategy = await connection.getLatestBlockhash() - const confirmationStrategy = { ...strategy, signature } - await connection.confirmTransaction(confirmationStrategy, 'confirmed') - } - logger.info('Fetching transaction for caching...') - // Dangerously relying on the internals of connection to do the fetch. - // Calling connection.getTransaction will result in the library parsing the - // results and getting us back our object again, but we need the raw JSON - // for Solders to know what we're talking about when indexing. - const rpcResponse = await ( - connection as Connection & { - _rpcRequest: ( - methodName: string, - args: Array - ) => Promise - } - )._rpcRequest('getTransaction', [ - signature, - { - maxSupportedTransactionVersion: 0, - commitment: 'confirmed', - encoding: 'json' - } - ]) - const formattedResponse = JSON.stringify(rpcResponse) - logger.info('Caching transaction...') - await cacheTransaction(signature, formattedResponse) - logger.info('Forwarding transaction to other nodes to cache...') - await forwardTransaction(logger, formattedResponse) -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/verifySignatures.test.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/verifySignatures.test.ts deleted file mode 100644 index 598c78632ce..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/verifySignatures.test.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { - Keypair, - PublicKey, - SystemProgram, - TransactionMessage, - VersionedTransaction -} from '@solana/web3.js' -import { describe, it, expect } from 'vitest' - -import { verifySignatures } from './verifySignatures' - -describe('verifySignatures', () => { - it('fails when signature is missing', () => { - const toPubkey = PublicKey.unique() - const fromPubkey = PublicKey.unique() - const recentBlockhash = PublicKey.unique().toBase58() - const transfer = SystemProgram.transfer({ - toPubkey, - fromPubkey, - lamports: 1 - }) - const message = new TransactionMessage({ - recentBlockhash, - instructions: [transfer], - payerKey: fromPubkey - }) - const transaction = new VersionedTransaction(message.compileToV0Message()) - expect(verifySignatures(transaction)).toBe(false) - }) - - it('passes when signature is valid', () => { - const toPubkey = PublicKey.unique() - const payer = Keypair.generate() - const fromPubkey = payer.publicKey - const recentBlockhash = PublicKey.unique().toBase58() - const transfer = SystemProgram.transfer({ - toPubkey, - fromPubkey, - lamports: 1 - }) - const message = new TransactionMessage({ - recentBlockhash, - instructions: [transfer], - payerKey: fromPubkey - }) - const transaction = new VersionedTransaction(message.compileToV0Message()) - transaction.sign([payer]) - expect(verifySignatures(transaction)).toBe(true) - }) - - it('fails when the signature is invalid', () => { - const toPubkey = PublicKey.unique() - const payer = Keypair.generate() - const fromPubkey = payer.publicKey - const recentBlockhash = PublicKey.unique().toBase58() - const transfer = SystemProgram.transfer({ - toPubkey, - fromPubkey, - lamports: 1 - }) - const message = new TransactionMessage({ - recentBlockhash, - instructions: [transfer], - payerKey: fromPubkey - }) - const transaction = new VersionedTransaction(message.compileToV0Message()) - transaction.sign([payer]) - transaction.message.compiledInstructions[0].data[0] = -1 - expect(verifySignatures(transaction)).toBe(false) - }) -}) diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/verifySignatures.ts b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/verifySignatures.ts deleted file mode 100644 index 6d3c01a35be..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/src/utils/verifySignatures.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ed25519 } from '@noble/curves/ed25519' -import { VersionedTransaction } from '@solana/web3.js' - -/** - * Checks that the transaction is signed - * - * TODO PAY-3106: Verify the signature is correct as well as non-empty. - * @see {@link https://github.com/solana-labs/solana-web3.js/blob/9344bbfa5dd68f3e15918ff606284373ae18911f/packages/library-legacy/src/transaction/legacy.ts#L767 verifySignatures} for Transaction in @solana/web3.js - * @param transaction the versioned transaction to check - * @returns false if missing a signature, true if all signatures are present. - */ -export const verifySignatures = (transaction: VersionedTransaction) => { - for (let i = 0; i < transaction.message.header.numRequiredSignatures; i++) { - const signature = transaction.signatures[i] - const publicKey = transaction.message.staticAccountKeys[i].toBuffer() - if ( - signature === undefined || - signature === null || - signature.every((b) => b === 0) - ) { - return false - } - const serialized = transaction.message.serialize() - const valid = ed25519.verify(signature, serialized, publicKey) - if (!valid) { - return false - } - } - return true -} diff --git a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/tsconfig.json b/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/tsconfig.json deleted file mode 100644 index 477b5f20e9a..00000000000 --- a/packages/discovery-provider/plugins/pedalboard/apps/solana-relay/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "lib": ["es2022"], - "module": "es2022", - "outDir": "./dist", - "rootDir": "./src" - }, - "exclude": ["node_modules"], - "extends": "../../packages/tsconfig/base.json", - "include": ["src"] -} From 54a23d452675815053200bd8834318e9b4c08b50 Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 12:43:53 -0700 Subject: [PATCH 03/60] feat(mobile): port feed filter button to native app (#14332) --- .../src/screens/feed-screen/FeedFilters.tsx | 68 +++++++++---------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/packages/mobile/src/screens/feed-screen/FeedFilters.tsx b/packages/mobile/src/screens/feed-screen/FeedFilters.tsx index 8e8ace3f1e4..b12b33f8c7b 100644 --- a/packages/mobile/src/screens/feed-screen/FeedFilters.tsx +++ b/packages/mobile/src/screens/feed-screen/FeedFilters.tsx @@ -1,18 +1,19 @@ -import { FeedFilter } from '@audius/common/models' -import { ScrollView, View } from 'react-native' +import { useCallback } from 'react' -import { Flex, SelectablePill, useTheme } from '@audius/harmony-native' +import { FeedFilter } from '@audius/common/models' +import { FilterButton, useTheme } from '@audius/harmony-native' +import { View } from 'react-native' -const filterLabels: Record = { - [FeedFilter.ALL]: 'All Posts', - [FeedFilter.ORIGINAL]: 'Original Posts', - [FeedFilter.REPOST]: 'Reposts' +const messages = { + allPosts: 'All Posts', + originalPosts: 'Original Posts', + reposts: 'Reposts' } -const filters: FeedFilter[] = [ - FeedFilter.ALL, - FeedFilter.ORIGINAL, - FeedFilter.REPOST +const filterOptions = [ + { label: messages.allPosts, value: FeedFilter.ALL }, + { label: messages.originalPosts, value: FeedFilter.ORIGINAL }, + { label: messages.reposts, value: FeedFilter.REPOST } ] type FeedFiltersProps = { @@ -25,36 +26,33 @@ export const FeedFilters = ({ onSelectFilter }: FeedFiltersProps) => { const { spacing, color } = useTheme() + + const handleChange = useCallback( + (value: string | undefined) => { + if (!value) return + onSelectFilter(value as FeedFilter) + }, + [onSelectFilter] + ) + return ( - - - {filters.map((filter) => ( - { - if (!isSelected) return - onSelectFilter(value as FeedFilter) - }} - disableUnselectAnimation - /> - ))} - - + ) } From c11bb000cef8517689798f7d9d3c9823d672c46d Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 12:44:06 -0700 Subject: [PATCH 04/60] fix(mobile): point SOLANA_RELAY_ENDPOINT to dedicated solana-relay host (#14330) --- packages/mobile/src/services/env/env.prod.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/services/env/env.prod.ts b/packages/mobile/src/services/env/env.prod.ts index 9254e0399ff..392146d67c2 100644 --- a/packages/mobile/src/services/env/env.prod.ts +++ b/packages/mobile/src/services/env/env.prod.ts @@ -70,7 +70,7 @@ export const env: Env = { SOLANA_CLUSTER_ENDPOINT: 'https://carolina-8qh733-fast-mainnet.helius-rpc.com', SOLANA_FEE_PAYER_ADDRESS: 'pqx3fvvh6b2eZBfLhTtQ5KxzU3CginmgGTmDCjk8TPP', - SOLANA_RELAY_ENDPOINT: 'https://discoveryprovider.audius.co', + SOLANA_RELAY_ENDPOINT: 'https://solana-relay.audius.engineering', SOLANA_TOKEN_PROGRAM_ADDRESS: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', SOLANA_WEB3_CLUSTER: 'mainnet-beta', SUGGESTED_FOLLOW_HANDLES: From 8c7fd581c0a845e0281547753a3669ead479025f Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 12:45:03 -0700 Subject: [PATCH 05/60] fix(mobile): commenting fails on tracks with zero existing comments (#14329) --- .../src/components/comments/CommentDrawer.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/mobile/src/components/comments/CommentDrawer.tsx b/packages/mobile/src/components/comments/CommentDrawer.tsx index abab068e4dc..783233aa946 100644 --- a/packages/mobile/src/components/comments/CommentDrawer.tsx +++ b/packages/mobile/src/components/comments/CommentDrawer.tsx @@ -172,21 +172,21 @@ const CommentDrawerContent = (props: { ) } - // Empty state - if (!commentIds || !commentIds.length) { - return ( - - - - ) - } - + // Always render BottomSheetFlatList (with ListEmptyComponent for the empty + // state) so the bottom sheet can handle keyboard avoidance and touch + // propagation correctly. Swapping in a plain when there are zero + // comments breaks the footer composer's send button on a 0-comment track. return ( id.toString()} ListHeaderComponent={} + ListEmptyComponent={ + + + + } ListFooterComponent={ <> {isLoadingMorePages ? ( From 5632898ce89851f70ffab6630e7296e112700b7e Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 12:45:28 -0700 Subject: [PATCH 06/60] chore(web): remove dead staging environment artifacts (#14325) --- package.json | 1 - packages/common/src/api/tan-query/events/index.ts | 1 - .../src/api/tan-query/events/useAllRemixContests.ts | 10 +++++----- .../api/tan-query/notifications/useNotifications.ts | 5 +---- .../common/src/api/tan-query/remixes/useRemixes.ts | 8 ++++---- .../src/api/tan-query/remixes/useRemixesLineup.ts | 8 ++++---- packages/common/src/store/playback/slice.test.ts | 5 +++-- packages/embed/.env.dev | 4 ++-- packages/embed/.env.stage | 10 ---------- packages/embed/.eslintignore | 1 - packages/embed/.gitignore | 1 - packages/embed/README.md | 4 ---- packages/web/bundlesize.stage.config.json | 8 -------- packages/web/env/.env.stage | 2 -- packages/web/scripts/dist.js | 2 -- packages/web/src/ssr/contest/+onBeforeRender.tsx | 2 -- packages/web/src/ssr/metaTags.ts | 2 -- packages/web/src/ssr/remixes/+onBeforeRender.tsx | 2 -- 18 files changed, 19 insertions(+), 57 deletions(-) delete mode 100644 packages/embed/.env.stage delete mode 100644 packages/web/bundlesize.stage.config.json delete mode 100644 packages/web/env/.env.stage diff --git a/package.json b/package.json index 7c85de87577..3acbcf6cb42 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,6 @@ "mobile:example:upload": "cd packages/mobile/examples/upload && npx expo start", "EMBED======================================": "", "embed:prod": "npm run start:prod -w embed", - "embed:stage": "npm run start:stage -w embed", "embed:dev": "npm run start:dev -w embed", "HARMONY====================================": "", "harmony": "turbo run start --filter=@audius/harmony", diff --git a/packages/common/src/api/tan-query/events/index.ts b/packages/common/src/api/tan-query/events/index.ts index 02b651d0aa3..02343128438 100644 --- a/packages/common/src/api/tan-query/events/index.ts +++ b/packages/common/src/api/tan-query/events/index.ts @@ -10,7 +10,6 @@ export * from './useFollowEvent' export * from './useRemixContest' export * from './useRemixContestWinners' export * from './useUserHasRemixContest' -export * from './useUserRemixContests' // Mutations export * from './useCreateEvent' diff --git a/packages/common/src/api/tan-query/events/useAllRemixContests.ts b/packages/common/src/api/tan-query/events/useAllRemixContests.ts index 4cb17807356..f7973d18985 100644 --- a/packages/common/src/api/tan-query/events/useAllRemixContests.ts +++ b/packages/common/src/api/tan-query/events/useAllRemixContests.ts @@ -7,11 +7,6 @@ import { } from '@audius/sdk' import { useInfiniteQuery, useQueryClient } from '@tanstack/react-query' -import { QUERY_KEYS } from '../queryKeys' -import { QueryKey, QueryOptions } from '../types' - -import { getEventIdsByEntityIdQueryKey, getEventQueryKey } from './utils' - import { eventMetadataFromSDK } from '~/adapters/event' import { getRemixesCountQueryKey } from '~/api/tan-query/remixes/useRemixes' import { useQueryContext } from '~/api/tan-query/utils' @@ -19,6 +14,11 @@ import { primeRelatedData } from '~/api/tan-query/utils/primeRelatedData' import { ID } from '~/models' import { removeNullable } from '~/utils' +import { QUERY_KEYS } from '../queryKeys' +import { QueryKey, QueryOptions } from '../types' + +import { getEventIdsByEntityIdQueryKey, getEventQueryKey } from './utils' + const DEFAULT_PAGE_SIZE = 25 export type RemixContestStatus = GetRemixContestsStatusEnum diff --git a/packages/common/src/api/tan-query/notifications/useNotifications.ts b/packages/common/src/api/tan-query/notifications/useNotifications.ts index 42bb24a8388..0b24c22e041 100644 --- a/packages/common/src/api/tan-query/notifications/useNotifications.ts +++ b/packages/common/src/api/tan-query/notifications/useNotifications.ts @@ -14,10 +14,7 @@ import { useRemoteVar } from '~/hooks' import { ChallengeRewardID } from '~/models' import { ID } from '~/models/Identifiers' import { StringKeys } from '~/services' -import { - NotificationType, - Notification -} from '~/store/notifications/types' +import { NotificationType, Notification } from '~/store/notifications/types' import { QUERY_KEYS } from '../queryKeys' import { QueryKey, QueryOptions } from '../types' diff --git a/packages/common/src/api/tan-query/remixes/useRemixes.ts b/packages/common/src/api/tan-query/remixes/useRemixes.ts index 8c91855203f..ba836b076e0 100644 --- a/packages/common/src/api/tan-query/remixes/useRemixes.ts +++ b/packages/common/src/api/tan-query/remixes/useRemixes.ts @@ -12,6 +12,10 @@ import { } from '@tanstack/react-query' import { useDispatch } from 'react-redux' +import { transformAndCleanList, userTrackMetadataFromSDK } from '~/adapters' +import { useQueryContext } from '~/api/tan-query/utils' +import { remixesPageActions } from '~/store/pages' + import { QUERY_KEYS } from '../queryKeys' import { getTrackQueryKey } from '../tracks/useTrack' import { LineupData, QueryKey, QueryOptions } from '../types' @@ -19,10 +23,6 @@ import { useCurrentUserId } from '../users/account/useCurrentUserId' import { getUserQueryKey } from '../users/useUser' import { primeTrackData } from '../utils/primeTrackData' -import { transformAndCleanList, userTrackMetadataFromSDK } from '~/adapters' -import { useQueryContext } from '~/api/tan-query/utils' -import { remixesPageActions } from '~/store/pages' - const DEFAULT_PAGE_SIZE = 10 export type UseRemixesArgs = { diff --git a/packages/common/src/api/tan-query/remixes/useRemixesLineup.ts b/packages/common/src/api/tan-query/remixes/useRemixesLineup.ts index a8a0b27b628..f95268bfa0d 100644 --- a/packages/common/src/api/tan-query/remixes/useRemixesLineup.ts +++ b/packages/common/src/api/tan-query/remixes/useRemixesLineup.ts @@ -3,6 +3,10 @@ import { useEffect, useMemo } from 'react' import { EntityType } from '@audius/sdk' import { useDispatch } from 'react-redux' +import { useRemixContestWinners } from '~/api/tan-query/events/useRemixContestWinners' +import { ID } from '~/models' +import { remixesPageActions } from '~/store/pages' + import { LineupData, QueryOptions } from '../types' import { makeLoadNextPage } from '../utils/infiniteQueryLoadNextPage' @@ -13,10 +17,6 @@ import { getRemixesQueryKey } from './useRemixes' -import { useRemixContestWinners } from '~/api/tan-query/events/useRemixContestWinners' -import { ID } from '~/models' -import { remixesPageActions } from '~/store/pages' - const DEFAULT_PAGE_SIZE = 10 export const useRemixesLineup = ( diff --git a/packages/common/src/store/playback/slice.test.ts b/packages/common/src/store/playback/slice.test.ts index 74c387ae4e2..7fb90a4bb76 100644 --- a/packages/common/src/store/playback/slice.test.ts +++ b/packages/common/src/store/playback/slice.test.ts @@ -182,8 +182,9 @@ describe('playback slice', () => { actions.removeFromQueue({ index: 1 }) ) expect(afterRemove.queue).toHaveLength(3) - expect(afterRemove.queue.find((t) => t.trackId === removedTrack.trackId)) - .toBeUndefined() + expect( + afterRemove.queue.find((t) => t.trackId === removedTrack.trackId) + ).toBeUndefined() expect(afterRemove.shuffleOriginalQueue).toHaveLength(3) expect( afterRemove.shuffleOriginalQueue.find( diff --git a/packages/embed/.env.dev b/packages/embed/.env.dev index 64ff4943a5c..9ba9b8bcdb8 100644 --- a/packages/embed/.env.dev +++ b/packages/embed/.env.dev @@ -4,6 +4,6 @@ VITE_API_KEY=2dc52ec9a4c31790cab6653de0c637f680faa993 VITE_APP_NAME=audius-embed VITE_AUDIUS_SCHEME=http VITE_ENVIRONMENT=development -VITE_HOSTNAME_REDIRECT=redirect.staging.audius.co -VITE_IDENTITY_ENDPOINT=https://identityservice.staging.audius.co +VITE_HOSTNAME_REDIRECT=audius.co +VITE_IDENTITY_ENDPOINT=http://audius-identity-service-1 VITE_SOLANA_RPC_ENDPOINT=https://carolina-8qh733-fast-mainnet.helius-rpc.com diff --git a/packages/embed/.env.stage b/packages/embed/.env.stage deleted file mode 100644 index e7918d69c8e..00000000000 --- a/packages/embed/.env.stage +++ /dev/null @@ -1,10 +0,0 @@ -VITE_AMPLITUDE_API_PROXY=gain.audius.co -VITE_AMPLITUDE_KEY=72a58ce4ad1f9bafcba0b92bedb6c33d -VITE_API_KEY=2dc52ec9a4c31790cab6653de0c637f680faa993 -VITE_APP_NAME=audius-embed -VITE_AUDIUS_SCHEME=https -VITE_ENVIRONMENT=staging -VITE_HOSTNAME=staging.audius.co -VITE_HOSTNAME_REDIRECT=staging.audius.co -VITE_IDENTITY_ENDPOINT=https://identityservice.staging.audius.co -VITE_SOLANA_RPC_ENDPOINT=https://carolina-8qh733-fast-mainnet.helius-rpc.com diff --git a/packages/embed/.eslintignore b/packages/embed/.eslintignore index 15b3fa1dff6..08e3c2a2f79 100644 --- a/packages/embed/.eslintignore +++ b/packages/embed/.eslintignore @@ -2,5 +2,4 @@ **/assets/* build/* dist/* -build-staging/* build-production/* \ No newline at end of file diff --git a/packages/embed/.gitignore b/packages/embed/.gitignore index 79941b8da78..8e72a161857 100644 --- a/packages/embed/.gitignore +++ b/packages/embed/.gitignore @@ -4,5 +4,4 @@ node_modules /*.DS_Store build dist -build-staging build-production \ No newline at end of file diff --git a/packages/embed/README.md b/packages/embed/README.md index 2398cec3f88..09d7a680f79 100644 --- a/packages/embed/README.md +++ b/packages/embed/README.md @@ -11,7 +11,3 @@ npm run start:prod ## Deploying Deployed via CI - -``` -npx wrangler publish --env staging -``` diff --git a/packages/web/bundlesize.stage.config.json b/packages/web/bundlesize.stage.config.json deleted file mode 100644 index 8ee035b64c9..00000000000 --- a/packages/web/bundlesize.stage.config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "files": [ - { - "path": "./build-ssr-staging/server/chunks/chunk-*.js", - "maxSize": "30 kB" - } - ] -} diff --git a/packages/web/env/.env.stage b/packages/web/env/.env.stage deleted file mode 100644 index 0ecb481060c..00000000000 --- a/packages/web/env/.env.stage +++ /dev/null @@ -1,2 +0,0 @@ -VITE_ENVIRONMENT=staging -VITE_PORT=3001 diff --git a/packages/web/scripts/dist.js b/packages/web/scripts/dist.js index 733575bd4c5..755fbb4615a 100644 --- a/packages/web/scripts/dist.js +++ b/packages/web/scripts/dist.js @@ -109,8 +109,6 @@ const makeBuildParams = (isProduction) => { // Inject data into package.json // https://www.electron.build/configuration/configuration extraMetadata: { - // We set prod & stage to separate values to ensure that - // the app's app-data does not collide (in addition to a different `scheme`). // `productName` controls the app-data location on most platforms. // https://github.com/electron-userland/electron-builder/issues/3429#issuecomment-434024379 productName, diff --git a/packages/web/src/ssr/contest/+onBeforeRender.tsx b/packages/web/src/ssr/contest/+onBeforeRender.tsx index eb05656b78b..b5d0d1eefd7 100644 --- a/packages/web/src/ssr/contest/+onBeforeRender.tsx +++ b/packages/web/src/ssr/contest/+onBeforeRender.tsx @@ -6,8 +6,6 @@ const getApiUrl = () => { switch (env) { case 'production': return 'https://api.audius.co' - case 'staging': - return 'https://api.staging.audius.co' case 'development': default: return process.env.VITE_API_URL || 'http://audius-api' diff --git a/packages/web/src/ssr/metaTags.ts b/packages/web/src/ssr/metaTags.ts index 7067e415166..cbdd0293df5 100644 --- a/packages/web/src/ssr/metaTags.ts +++ b/packages/web/src/ssr/metaTags.ts @@ -43,8 +43,6 @@ export const getPublicUrl = (): string => { switch (env) { case 'production': return 'https://audius.co' - case 'staging': - return 'https://staging.audius.co' default: return 'http://localhost:3000' } diff --git a/packages/web/src/ssr/remixes/+onBeforeRender.tsx b/packages/web/src/ssr/remixes/+onBeforeRender.tsx index 755b3b2acfe..3c37f6eee36 100644 --- a/packages/web/src/ssr/remixes/+onBeforeRender.tsx +++ b/packages/web/src/ssr/remixes/+onBeforeRender.tsx @@ -6,8 +6,6 @@ const getApiUrl = () => { switch (env) { case 'production': return 'https://api.audius.co' - case 'staging': - return 'https://api.staging.audius.co' case 'development': default: return process.env.VITE_API_URL || 'http://audius-api' From 6a175ac4cbd4551c308725c446e2a2d26ce27a12 Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 13:14:49 -0700 Subject: [PATCH 07/60] fix(web): contest cards open in new tab on cmd/middle-click (#14333) --- .../components/contest-card/ContestCard.tsx | 69 +++++++++++++------ 1 file changed, 49 insertions(+), 20 deletions(-) diff --git a/packages/web/src/components/contest-card/ContestCard.tsx b/packages/web/src/components/contest-card/ContestCard.tsx index 5bfcc82ff99..8f137b685ac 100644 --- a/packages/web/src/components/contest-card/ContestCard.tsx +++ b/packages/web/src/components/contest-card/ContestCard.tsx @@ -3,7 +3,6 @@ import { ReactNode, Ref, forwardRef, - useCallback, useEffect, useState } from 'react' @@ -24,7 +23,7 @@ import { Text, useTheme } from '@audius/harmony' -import { useLinkClickHandler } from 'react-router' +import { Link } from 'react-router' import { Avatar } from 'components/avatar/Avatar' import { UserLink } from 'components/link' @@ -59,7 +58,7 @@ export type ContestCardProps = Omit & { */ trackId: ID variant?: ContestCardVariant - onClick?: (e: MouseEvent) => void + onClick?: (e: MouseEvent) => void } const COVER_HEIGHT = 96 @@ -271,15 +270,6 @@ export const ContestCard = forwardRef( const contestDestination = track?.permalink ? contestPage(track.permalink) : '' - const handleNavigate = - useLinkClickHandler(contestDestination) - const handleClick = useCallback( - (e: MouseEvent) => { - onClick?.(e) - if (contestDestination) handleNavigate(e) - }, - [handleNavigate, onClick, contestDestination] - ) if (!track || !user || !remixContest) { return @@ -297,18 +287,26 @@ export const ContestCard = forwardRef( } const status = formatStatus(remixContest.endDate) + const contestTitle = + (remixContest.eventData as any)?.title?.trim() || track.title return ( overlay + // below, which is what lets cmd+click / middle-click open the + // contest page in a new tab the way the browser does for any + // ordinary anchor. + position: 'relative' + }} {...other} > {/* Cover banner */} @@ -337,7 +335,16 @@ export const ContestCard = forwardRef( > {messages.hostedBy} - + {/* UserLink is its own ; lift it above the stretched link + so the artist's profile remains independently clickable + (and nesting two anchors stays invalid HTML — they're + siblings in the stacking context, not parent/child). */} + @@ -364,26 +371,48 @@ export const ContestCard = forwardRef( wordBreak: 'break-word' }} > - {(remixContest.eventData as any)?.title?.trim() || track.title} + {contestTitle} e.stopPropagation()} css={{ overflowX: 'auto', overflowY: 'hidden', minWidth: 0, scrollbarWidth: 'none', msOverflowStyle: 'none', - '&::-webkit-scrollbar': { display: 'none' } + '&::-webkit-scrollbar': { display: 'none' }, + // Elevate the horizontally-scrolling entries row above the + // stretched link so horizontal scroll / pill clicks don't + // accidentally navigate to the contest page. + position: 'relative', + zIndex: 2 }} > {messages.entries(entriesCount)} + + {/* Stretched-link overlay: a real that fills the card so the + browser handles cmd+click and middle-click natively (opening + the contest in a new tab). Interactive descendants + (UserLink, the entries row) opt out via a higher z-index. */} + {contestDestination ? ( + + ) : null} ) } From b5817fcdf0419dd4487defa1edfa31d5f2b27b1e Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 13:15:18 -0700 Subject: [PATCH 08/60] fix(feed): anchor filter button to the right side, match Trending pattern (#14334) --- .../feed-page/components/desktop/FeedPageContent.tsx | 10 ++++++++-- .../feed-page/components/mobile/FeedPageContent.tsx | 7 ++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/web/src/pages/feed-page/components/desktop/FeedPageContent.tsx b/packages/web/src/pages/feed-page/components/desktop/FeedPageContent.tsx index a0001a6c416..6eefea3577d 100644 --- a/packages/web/src/pages/feed-page/components/desktop/FeedPageContent.tsx +++ b/packages/web/src/pages/feed-page/components/desktop/FeedPageContent.tsx @@ -113,8 +113,14 @@ const FeedPageContent = ({ containerRef }: FeedPageContentProps) => { titleRowRef={titleRowRef} icon={IconFeed} primary={messages.feedHeaderTitle} - rightDecorator={ - + bottomBar={ + {isForYou ? null : ( { setHeader(
- + {isForYou ? null : ( Date: Fri, 15 May 2026 13:16:32 -0700 Subject: [PATCH 09/60] feat(mobile): chronological feed filter button uses drawer pattern (#14335) --- .../common/src/store/ui/modals/parentSlice.ts | 1 + packages/common/src/store/ui/modals/types.ts | 1 + packages/mobile/src/app/Drawers.tsx | 2 + .../screens/feed-screen/FeedFilterButton.tsx | 37 +++++ .../screens/feed-screen/FeedFilterDrawer.tsx | 132 ++++++++++++++++++ .../src/screens/feed-screen/FeedFilters.tsx | 58 -------- .../src/screens/feed-screen/FeedScreen.tsx | 36 ++--- .../mobile/src/screens/feed-screen/index.ts | 1 + 8 files changed, 189 insertions(+), 79 deletions(-) create mode 100644 packages/mobile/src/screens/feed-screen/FeedFilterButton.tsx create mode 100644 packages/mobile/src/screens/feed-screen/FeedFilterDrawer.tsx delete mode 100644 packages/mobile/src/screens/feed-screen/FeedFilters.tsx diff --git a/packages/common/src/store/ui/modals/parentSlice.ts b/packages/common/src/store/ui/modals/parentSlice.ts index c9edbd4b658..952be569027 100644 --- a/packages/common/src/store/ui/modals/parentSlice.ts +++ b/packages/common/src/store/ui/modals/parentSlice.ts @@ -26,6 +26,7 @@ export const initialState: BasicModalsState = { TrendingCategory: { isOpen: false }, TrendingTimeRange: { isOpen: false }, TrendingFilter: { isOpen: false }, + FeedFilter: { isOpen: false }, TrendingRewardsExplainer: { isOpen: false }, SocialProof: { isOpen: false }, EditTrack: { isOpen: false }, diff --git a/packages/common/src/store/ui/modals/types.ts b/packages/common/src/store/ui/modals/types.ts index 7a5076fb250..307360dfe97 100644 --- a/packages/common/src/store/ui/modals/types.ts +++ b/packages/common/src/store/ui/modals/types.ts @@ -61,6 +61,7 @@ export type Modals = | 'TrendingCategory' | 'TrendingTimeRange' | 'TrendingFilter' + | 'FeedFilter' | 'TrendingRewardsExplainer' | 'SocialProof' | 'EditTrack' diff --git a/packages/mobile/src/app/Drawers.tsx b/packages/mobile/src/app/Drawers.tsx index 4e407ca93ff..6f7d0405362 100644 --- a/packages/mobile/src/app/Drawers.tsx +++ b/packages/mobile/src/app/Drawers.tsx @@ -52,6 +52,7 @@ import { ReplaceTrackProgressDrawer } from 'app/screens/edit-track-screen/compon import { EarlyReleaseConfirmationDrawer } from 'app/screens/edit-track-screen/components/EarlyReleaseConfirmationDrawer' import { PublishConfirmationDrawer } from 'app/screens/edit-track-screen/components/PublishConfirmationDrawer' import { ConnectNewWalletDrawer } from 'app/screens/external-wallets/components/ConnectNewWalletDrawer' +import { FeedFilterDrawer } from 'app/screens/feed-screen' import { WelcomeDrawer } from 'app/screens/sign-on-screen/components/WelcomeDrawer' import { PickWinnersDrawer } from 'app/screens/track-screen/PickWinnersDrawer' import { @@ -115,6 +116,7 @@ const commonDrawersMap: { [Modal in Modals]?: ComponentType } = { DeactivateAccountConfirmation: DeactivateAccountConfirmationDrawer, TrendingGenreSelection: TrendingFilterDrawer, TrendingFilter: TrendingCombinedFilterDrawer, + FeedFilter: FeedFilterDrawer, Overflow: OverflowMenuDrawer, SignOutConfirmation: SignOutConfirmationDrawer, AddToCollection: AddToCollectionDrawer, diff --git a/packages/mobile/src/screens/feed-screen/FeedFilterButton.tsx b/packages/mobile/src/screens/feed-screen/FeedFilterButton.tsx new file mode 100644 index 00000000000..f92bdc4b442 --- /dev/null +++ b/packages/mobile/src/screens/feed-screen/FeedFilterButton.tsx @@ -0,0 +1,37 @@ +import { FeedFilter } from '@audius/common/models' +import { feedPageSelectors, modalsActions } from '@audius/common/store' +import { useDispatch, useSelector } from 'react-redux' + +import { Flex, IconLeading, SelectablePill } from '@audius/harmony-native' + +import { FEED_FILTER_MODAL } from './FeedFilterDrawer' + +export const FeedFilterButton = () => { + const dispatch = useDispatch() + const feedFilter = useSelector(feedPageSelectors.getFeedFilter) + + const hasActiveFilters = (feedFilter ?? FeedFilter.ALL) !== FeedFilter.ALL + + const handleOpenFilter = () => { + dispatch( + modalsActions.setVisibility({ + modal: FEED_FILTER_MODAL, + visible: true + }) + ) + } + + return ( + + + + ) +} diff --git a/packages/mobile/src/screens/feed-screen/FeedFilterDrawer.tsx b/packages/mobile/src/screens/feed-screen/FeedFilterDrawer.tsx new file mode 100644 index 00000000000..6b7d7aad311 --- /dev/null +++ b/packages/mobile/src/screens/feed-screen/FeedFilterDrawer.tsx @@ -0,0 +1,132 @@ +import { useCallback } from 'react' + +import { FeedFilter } from '@audius/common/models' +import { feedPageActions, feedPageSelectors } from '@audius/common/store' +import { Pressable, View } from 'react-native' +import { useDispatch, useSelector } from 'react-redux' + +import { Flex, Text } from '@audius/harmony-native' +import { RadioButton, Text as CoreText } from 'app/components/core' +import { AppDrawer, useDrawerState } from 'app/components/drawer' +import { makeStyles } from 'app/styles' + +export const FEED_FILTER_MODAL = 'FeedFilter' as const + +const filterLabels: Record = { + [FeedFilter.ALL]: 'All Posts', + [FeedFilter.ORIGINAL]: 'Original Posts', + [FeedFilter.REPOST]: 'Reposts' +} + +const filterOptions: FeedFilter[] = [ + FeedFilter.ALL, + FeedFilter.ORIGINAL, + FeedFilter.REPOST +] + +const messages = { + title: 'Filter Feed', + sectionTitle: 'Post Type', + selected: 'Selected' +} + +const useStyles = makeStyles(({ palette, spacing }) => ({ + grabBar: { + width: 36, + height: 4, + borderRadius: 2, + backgroundColor: palette.neutralLight6 + }, + grabBarContainer: { + paddingTop: spacing(2), + paddingBottom: spacing(1), + alignItems: 'center' + }, + content: { + paddingHorizontal: spacing(4), + paddingTop: spacing(4), + paddingBottom: spacing(6) + }, + sectionTitle: { + marginBottom: spacing(2) + }, + optionRow: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + paddingVertical: spacing(4), + borderBottomWidth: 1, + borderBottomColor: palette.neutralLight8 + } +})) + +export const FeedFilterDrawer = () => { + const styles = useStyles() + const dispatch = useDispatch() + const currentFilter = + useSelector(feedPageSelectors.getFeedFilter) ?? FeedFilter.ALL + + useDrawerState(FEED_FILTER_MODAL) + + const handleSelectFilter = useCallback( + (filter: FeedFilter) => { + dispatch(feedPageActions.setFeedFilter(filter)) + }, + [dispatch] + ) + + const drawerHeader = useCallback( + (_props: { onClose: () => void }) => ( + + + + + + + {messages.title} + + + + ), + [styles] + ) + + return ( + + + + + {messages.sectionTitle} + + + {filterOptions.map((filter) => ( + handleSelectFilter(filter)} + style={styles.optionRow} + > + + + + {filterLabels[filter]} + + + {currentFilter === filter ? ( + + {messages.selected} + + ) : null} + + ))} + + + ) +} diff --git a/packages/mobile/src/screens/feed-screen/FeedFilters.tsx b/packages/mobile/src/screens/feed-screen/FeedFilters.tsx deleted file mode 100644 index b12b33f8c7b..00000000000 --- a/packages/mobile/src/screens/feed-screen/FeedFilters.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { useCallback } from 'react' - -import { FeedFilter } from '@audius/common/models' -import { FilterButton, useTheme } from '@audius/harmony-native' -import { View } from 'react-native' - -const messages = { - allPosts: 'All Posts', - originalPosts: 'Original Posts', - reposts: 'Reposts' -} - -const filterOptions = [ - { label: messages.allPosts, value: FeedFilter.ALL }, - { label: messages.originalPosts, value: FeedFilter.ORIGINAL }, - { label: messages.reposts, value: FeedFilter.REPOST } -] - -type FeedFiltersProps = { - currentFilter: FeedFilter - onSelectFilter: (filter: FeedFilter) => void -} - -export const FeedFilters = ({ - currentFilter, - onSelectFilter -}: FeedFiltersProps) => { - const { spacing, color } = useTheme() - - const handleChange = useCallback( - (value: string | undefined) => { - if (!value) return - onSelectFilter(value as FeedFilter) - }, - [onSelectFilter] - ) - - return ( - - - - ) -} diff --git a/packages/mobile/src/screens/feed-screen/FeedScreen.tsx b/packages/mobile/src/screens/feed-screen/FeedScreen.tsx index dd178d3b74d..26a22c0e014 100644 --- a/packages/mobile/src/screens/feed-screen/FeedScreen.tsx +++ b/packages/mobile/src/screens/feed-screen/FeedScreen.tsx @@ -10,7 +10,7 @@ import { FOR_YOU_INITIAL_PAGE_SIZE, FOR_YOU_LOAD_MORE_PAGE_SIZE } from '@audius/common/api' -import { Name, FeedTab, type FeedFilter } from '@audius/common/models' +import { Name, FeedTab } from '@audius/common/models' import { feedPageActions, feedPageSelectors } from '@audius/common/store' import { useDispatch, useSelector } from 'react-redux' @@ -21,11 +21,11 @@ import { SuggestedFollows } from 'app/components/suggested-follows' import { MobileRootHeader } from 'app/screens/app-screen/MobileRootHeader' import { make, track } from 'app/services/analytics' -import { FeedFilters } from './FeedFilters' +import { FeedFilterButton } from './FeedFilterButton' import { FeedTabs } from './FeedTabs' const { getFeedTab, getFeedFilter } = feedPageSelectors -const { setFeedTab, setFeedFilter } = feedPageActions +const { setFeedTab } = feedPageActions const messages = { header: 'Your Feed', @@ -80,12 +80,17 @@ export const FeedScreen = () => { [dispatch] ) - const handleSelectFilter = useCallback( - (filter: FeedFilter) => { - dispatch(setFeedFilter(filter)) - track(make({ eventName: Name.FEED_CHANGE_VIEW, view: filter })) - }, - [dispatch] + // Memoized so the header isn't a new function reference on every render — + // otherwise Screen's setOptions runs each parent re-render and React + // Navigation rebuilds the header, remounting AccountPictureHeader and + // re-firing the profile-picture image-fetch path. + const renderHeader = useCallback( + () => ( + + {isForYou ? null : } + + ), + [isForYou] ) const lineupProps = isForYou @@ -115,20 +120,9 @@ export const FeedScreen = () => { } return ( - ( - - )} - > + - {isForYou ? null : ( - - )} Date: Fri, 15 May 2026 14:38:19 -0700 Subject: [PATCH 10/60] fix(mobile): contest followers screen blank when limit exceeds 100 (#14337) --- .../screens/contest-screen/ContestFollowersScreen.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mobile/src/screens/contest-screen/ContestFollowersScreen.tsx b/packages/mobile/src/screens/contest-screen/ContestFollowersScreen.tsx index 0ad4f390030..ede3100c46c 100644 --- a/packages/mobile/src/screens/contest-screen/ContestFollowersScreen.tsx +++ b/packages/mobile/src/screens/contest-screen/ContestFollowersScreen.tsx @@ -18,15 +18,17 @@ const messages = { * We reuse the shared `UserList` + `UserListScreen` scaffolding that * powers Followers/Following/Mutuals, wired up to `useEventFollowers` * instead of the per-user follow hooks. The event-followers hook - * isn't paginated today, so we request a healthy upper bound (200) - * and render what comes back — pagination can be wired in later - * without touching this screen if the hook grows it. + * isn't paginated today, so we request the same upper bound the web + * modal uses (100) — values above that come back empty from the + * indexer's response, which is what was producing a blank list. + * Pagination can be wired in later without touching this screen if + * the hook grows it. */ export const ContestFollowersScreen = () => { const { params } = useRoute<'ContestFollowers'>() const { eventId } = params - const { userIds, isPending } = useEventFollowers({ eventId, limit: 200 }) + const { userIds, isPending } = useEventFollowers({ eventId, limit: 100 }) return ( From 28293fdc64467db3b991ae7fb3d52342a2966916 Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 15:20:26 -0700 Subject: [PATCH 11/60] ci(mobile): stop OTA workflow from wiping CodePush release history (#14339) --- .github/workflows/mobile.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/mobile.yml b/.github/workflows/mobile.yml index 64a3e6ccf0f..b662c7dfe9b 100644 --- a/.github/workflows/mobile.yml +++ b/.github/workflows/mobile.yml @@ -197,6 +197,12 @@ jobs: runs-on: ubuntu-latest needs: [mobile-install, mobile-version-check] if: (github.event_name == 'push' && github.ref == 'refs/heads/main' && needs.mobile-version-check.outputs.version_unchanged == 'true') || (github.event_name == 'workflow_dispatch' && (github.event.inputs.ota_channel == 'rc' || github.event.inputs.ota_channel == '')) + # Serialize per-platform publishes so two concurrent runs can't read-modify-write + # the same s3://.../mobile-ota/histories//rc/.json and clobber each + # other's release entry. + concurrency: + group: mobile-ota-release-rc-${{ matrix.platform }} + cancel-in-progress: false strategy: fail-fast: false matrix: @@ -288,8 +294,6 @@ jobs: OTA_APP_VERSION="${MAJOR}.${MINOR}.${OTA_PATCH}" cd packages/mobile - npx code-push create-history --binary-version "$BINARY_VERSION" --platform ${{ matrix.platform }} --identifier "$OTA_CHANNEL" || true - npx code-push release \ --binary-version "$BINARY_VERSION" \ --app-version "$OTA_APP_VERSION" \ @@ -307,6 +311,9 @@ jobs: environment: name: mobile-production-ota url: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} + concurrency: + group: mobile-ota-release-production-${{ matrix.platform }} + cancel-in-progress: false strategy: fail-fast: false matrix: @@ -388,8 +395,6 @@ jobs: OTA_APP_VERSION="${MAJOR}.${MINOR}.${OTA_PATCH}" cd packages/mobile - npx code-push create-history --binary-version "$BINARY_VERSION" --platform ${{ matrix.platform }} --identifier "$OTA_CHANNEL" || true - npx code-push release \ --binary-version "$BINARY_VERSION" \ --app-version "$OTA_APP_VERSION" \ From a2018a13d963fbf597e4bb9487792f701867ae06 Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 15:23:38 -0700 Subject: [PATCH 12/60] [codex] Fix Android profile header dimming (#14341) --- .../profile-screen/ProfileNavOverlay.tsx | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/mobile/src/screens/profile-screen/ProfileNavOverlay.tsx b/packages/mobile/src/screens/profile-screen/ProfileNavOverlay.tsx index d86411c68e4..b5b9a0cca31 100644 --- a/packages/mobile/src/screens/profile-screen/ProfileNavOverlay.tsx +++ b/packages/mobile/src/screens/profile-screen/ProfileNavOverlay.tsx @@ -4,7 +4,7 @@ import { useCurrentUserId, useProfileUser } from '@audius/common/api' import { ShareSource } from '@audius/common/models' import { modalsActions, shareModalUIActions } from '@audius/common/store' import { BlurView } from '@react-native-community/blur' -import { StyleSheet, View } from 'react-native' +import { Platform, StyleSheet, View } from 'react-native' import Animated, { interpolate, useAnimatedStyle @@ -22,7 +22,7 @@ import { import { UserLink } from 'app/components/user-link' import { useNavigation } from 'app/hooks/useNavigation' import { makeStyles } from 'app/styles' -import { isDarkTheme, useThemeVariant } from 'app/utils/theme' +import { isDarkTheme, useThemeColors, useThemeVariant } from 'app/utils/theme' import { useProfileScrollY } from './ProfileScrollContext' @@ -83,6 +83,7 @@ export const ProfileNavOverlay = () => { const navigation = useNavigation() const scrollY = useProfileScrollY() const isDarkMode = isDarkTheme(useThemeVariant()) + const { backgroundSurface } = useThemeColors() const { data: accountId } = useCurrentUserId() const { user_id } = @@ -167,11 +168,21 @@ export const ProfileNavOverlay = () => { pointerEvents='box-none' style={[styles.root, { height: overlayHeight }]} > - + {Platform.OS === 'android' ? ( + + ) : ( + + )} Date: Fri, 15 May 2026 15:30:20 -0700 Subject: [PATCH 13/60] feat(mobile): add queue icon to mini player (#14340) --- .../components/now-playing-drawer/PlayBar.tsx | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/packages/mobile/src/components/now-playing-drawer/PlayBar.tsx b/packages/mobile/src/components/now-playing-drawer/PlayBar.tsx index 2822f12070e..204cb3eb536 100644 --- a/packages/mobile/src/components/now-playing-drawer/PlayBar.tsx +++ b/packages/mobile/src/components/now-playing-drawer/PlayBar.tsx @@ -1,5 +1,10 @@ +import { useCallback } from 'react' + import { useCurrentUserId, useToggleFavoriteTrack } from '@audius/common/api' -import { useGatedContentAccess } from '@audius/common/hooks' +import { + useGatedContentAccess, + useQueueNewFeatureBadge +} from '@audius/common/hooks' import { FavoriteSource, SquareSizes } from '@audius/common/models' import type { Track, User } from '@audius/common/models' import { playbackSelectors } from '@audius/common/store' @@ -7,9 +12,10 @@ import type { Nullable } from '@audius/common/utils' import { TouchableOpacity, Animated, View } from 'react-native' import { useSelector } from 'react-redux' -import { IconLock } from '@audius/harmony-native' +import { IconButton, IconIndent, IconLock } from '@audius/harmony-native' import { FavoriteButton } from 'app/components/favorite-button' import Text from 'app/components/text' +import { useDrawer } from 'app/hooks/useDrawer' import { makeStyles } from 'app/styles' import { useColor } from 'app/utils/theme' import { zIndex } from 'app/utils/zIndex' @@ -23,7 +29,8 @@ import { NOW_PLAYING_HEIGHT, PLAY_BAR_HEIGHT } from './constants' const { getPreviewing } = playbackSelectors const messages = { - preview: 'PREVIEW' + preview: 'PREVIEW', + queueLabel: 'Queue' } const useStyles = makeStyles(({ palette, spacing }) => ({ @@ -59,6 +66,11 @@ const useStyles = makeStyles(({ palette, spacing }) => ({ justifyContent: 'flex-start', gap: spacing(3) }, + queueContainer: { + flexShrink: 0, + alignItems: 'center', + justifyContent: 'center' + }, playContainer: { flexShrink: 1, alignItems: 'center', @@ -151,6 +163,18 @@ export const PlayBar = (props: PlayBarProps) => { source: FavoriteSource.PLAYBAR }) + const { onOpen: openQueue } = useDrawer('Queue') + const { + showBadge: showQueueNewFeatureBadge, + dismiss: dismissQueueNewFeatureBadge + } = useQueueNewFeatureBadge() + const handleOpenQueue = useCallback(() => { + if (showQueueNewFeatureBadge) { + dismissQueueNewFeatureBadge() + } + openQueue() + }, [showQueueNewFeatureBadge, dismissQueueNewFeatureBadge, openQueue]) + const renderFavoriteButton = () => { return ( { ) : null} + + + From 18a1aabb46b642ee091db4d8285c586fe4e5fdf0 Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 15:30:49 -0700 Subject: [PATCH 14/60] fix: mobile contest cards too narrow in Explore carousel (#14338) --- .../components/contest-card/ContestCard.tsx | 6 +----- .../mobile/src/components/core/CardList.tsx | 20 ++++++++++++++++--- .../components/FeaturedRemixContests.tsx | 10 ++++++++++ 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/packages/mobile/src/components/contest-card/ContestCard.tsx b/packages/mobile/src/components/contest-card/ContestCard.tsx index 0cb40254c4d..3474a0128eb 100644 --- a/packages/mobile/src/components/contest-card/ContestCard.tsx +++ b/packages/mobile/src/components/contest-card/ContestCard.tsx @@ -298,11 +298,7 @@ export const ContestCard = (props: ContestCardProps) => { onPress={handlePress} border='default' shadow='mid' - // Floor the card at ~250px so the artist name + badges row in the - // header doesn't clip on the narrowest carousels (the mobile - // explore "Contests" rail was sized to whatever CardList default - // — the QA pass flagged the cards as too skinny). - style={{ overflow: 'hidden', borderRadius: 14, minWidth: 250 }} + style={{ overflow: 'hidden', borderRadius: 14 }} {...other} > {/* Cover banner */} diff --git a/packages/mobile/src/components/core/CardList.tsx b/packages/mobile/src/components/core/CardList.tsx index 53b18255ca6..4464e3c0e38 100644 --- a/packages/mobile/src/components/core/CardList.tsx +++ b/packages/mobile/src/components/core/CardList.tsx @@ -25,6 +25,11 @@ export type CardListProps = Omit, 'data'> & { // Use carousel spacing to override the parent's margins // e.g. make carousel start and end at edge of the screen carouselSpacing?: number + + // Override the per-item slot width in horizontal mode. Defaults to + // `spacing(43)` (172px), which is right for small thumbnail-style cards + // (tracks, playlists) but too narrow for the redesigned contest card. + horizontalCardWidth?: number | `${number}%` } export type LoadingCard = { _loading: true } @@ -60,12 +65,13 @@ const useStyles = makeStyles(({ spacing }) => ({ flexGrow: 0 }, cardHorizontal: { - width: spacing(43), paddingRight: spacing(3), paddingBottom: spacing(3) } })) +const DEFAULT_HORIZONTAL_CARD_WIDTH = 172 + export function CardList(props: CardListProps) { const { renderItem, @@ -78,6 +84,7 @@ export function CardList(props: CardListProps) { totalCount, horizontal: isHorizontal = false, carouselSpacing = 0, + horizontalCardWidth = DEFAULT_HORIZONTAL_CARD_WIDTH, ...other } = props @@ -109,7 +116,13 @@ export function CardList(props: CardListProps) { ) return ( - + {itemElement} ) @@ -119,7 +132,8 @@ export function CardList(props: CardListProps) { renderItem, styles.card, styles.cardHorizontal, - isHorizontal + isHorizontal, + horizontalCardWidth ] ) diff --git a/packages/mobile/src/screens/explore-screen/components/FeaturedRemixContests.tsx b/packages/mobile/src/screens/explore-screen/components/FeaturedRemixContests.tsx index c4ebae34fbf..273ac08c2e0 100644 --- a/packages/mobile/src/screens/explore-screen/components/FeaturedRemixContests.tsx +++ b/packages/mobile/src/screens/explore-screen/components/FeaturedRemixContests.tsx @@ -2,6 +2,7 @@ import React from 'react' import { useAllRemixContests } from '@audius/common/api' import { exploreMessages as messages } from '@audius/common/messages' +import { useWindowDimensions } from 'react-native' import { useTheme } from '@audius/harmony-native' import { ContestCard } from 'app/components/contest-card' @@ -12,8 +13,16 @@ import { useDeferredElement } from '../../../hooks/useDeferredElement' import { ExploreSection } from './ExploreSection' +// Carousel slot width for contest cards. The dedicated /contests screen +// renders cards at roughly full screen width minus its horizontal margins; +// the Explore carousel matches that visual width while leaving a small +// peek of the next card to invite horizontal swipe. +const CONTEST_CARD_PEEK = 48 + export const FeaturedRemixContests = () => { const { spacing } = useTheme() + const { width: windowWidth } = useWindowDimensions() + const contestCardWidth = windowWidth - CONTEST_CARD_PEEK const { InViewWrapper, inView } = useDeferredElement() const { data: allContestTrackIds, isPending: isAllContestsPending } = @@ -27,6 +36,7 @@ export const FeaturedRemixContests = () => { renderItem={({ item }) => } horizontal carouselSpacing={spacing.l} + horizontalCardWidth={contestCardWidth} isLoading={isAllContestsPending} LoadingCardComponent={TrackCardSkeleton} /> From 2a4dd728e65424e59828a01dd142fba7a6290c79 Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 16:46:42 -0700 Subject: [PATCH 15/60] fix(mobile): comment kebab menu desyncs after close (#14342) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary The kebab handler on mobile comments toggled `isOpen` and `isVisible` together, but those two pieces of state intentionally serve different roles: - `isOpen` drives the open/close **animation** - `isVisible` controls whether the drawer is **mounted** (kept true during the close animation, set to false in `onClosed`) Because `onClose` and `onClosed` flip them on separate ticks, there is a brief window during the close animation where `isOpen=false` but `isVisible=true`. A tap on the kebab during that window inverts both via the toggle, leaving the drawer **unmounted while state thinks it's open**. The next tap then has to dig itself out of the broken state, so the kebab appears not to respond. The fix is to make `handlePress` explicitly **open** the menu. Closing is already fully owned by the drawer's `onClose` / `onClosed` callbacks (row tap, backdrop tap, or swipe-down). ## Test plan - [ ] Tap kebab on your own comment → drawer appears with Edit / Delete options - [ ] Tap kebab on another user's comment → drawer appears with Flag, Mute User, etc. - [ ] Tap a row → drawer closes; tap kebab again → drawer reopens on the first tap - [ ] Tap backdrop to dismiss; tap kebab → drawer reopens on the first tap - [ ] Tap kebab rapidly while drawer is animating closed → drawer always opens cleanly, never stuck 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) --- .../mobile/src/components/comments/CommentOverflowMenu.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/src/components/comments/CommentOverflowMenu.tsx b/packages/mobile/src/components/comments/CommentOverflowMenu.tsx index 305298754eb..e9abb19f7a7 100644 --- a/packages/mobile/src/components/comments/CommentOverflowMenu.tsx +++ b/packages/mobile/src/components/comments/CommentOverflowMenu.tsx @@ -238,8 +238,8 @@ export const CommentOverflowMenu = (props: CommentOverflowMenuProps) => { }, [deleteComment, id, parentCommentId, toast]) const handlePress = useCallback(() => { - setIsOpen(!isOpen) - setIsVisible(!isVisible) + setIsOpen(true) + setIsVisible(true) trackEvent( make({ @@ -247,7 +247,7 @@ export const CommentOverflowMenu = (props: CommentOverflowMenuProps) => { commentId: id }) ) - }, [isOpen, isVisible, id]) + }, [id]) return ( <> From 5153b2bef58e8b11438cfb72c4f70c310f818a8d Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Fri, 15 May 2026 20:03:06 -0700 Subject: [PATCH 16/60] chore: remove Sentry from the entire monorepo (#14336) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Drops every Sentry-related dependency (`@sentry/browser`, `@sentry/node`, `@sentry/cli`, `redux-sentry-middleware`, `@types/redux-sentry-middleware`, `toucan-js`) and the `redux-sentry-middleware` wiring in the web store. - Deletes the dedicated Sentry files (`packages/web/src/services/sentry.ts`, `packages/web/src/store/errors/reportToSentry.ts`, `packages/mobile/src/app/sentry.ts`, `packages/mobile/src/utils/reportToSentry.ts`), the iOS dSYM upload script and `sentry.properties` for both platforms. - Replaces ~100 `reportToSentry({...})` call sites with `console.error(...)` (or removes them entirely when they were the only line in a catch). Removes the `sentry` / `reportToSentry` properties from `CommonStoreContext` and `QueryContext`, the `Feature` / `ErrorLevel` / `ReportToSentryArgs` types, and the `SENTRY_DSN` field from `Env` + the web/mobile env files. - Strips Sentry steps from `.github/workflows/{web,mobile}.yml` and the matching `.circleci/src/*.yml` sources (the generated `.circleci/config.yml` was already clean). Removes the `sentryDSN` convict knob and `configureSentry()` call from `identity-service`. ## Test plan - [x] `tsc --noEmit` passes clean for `packages/common`, `packages/web`, and `packages/mobile` (2 pre-existing identity-service errors are unrelated to this change). - [x] `eslint --ext=ts,tsx src` passes clean for `packages/common`, `packages/web`, and `packages/mobile`. - [ ] Smoke test the web app: trigger an error path (e.g. failed comment post) and confirm it surfaces as `console.error` rather than a Sentry capture, with no runtime errors. - [ ] Smoke test the mobile error boundary: force a render error and confirm the toast + `console.error` still fire. - [ ] CI: confirm the `web-deploy-sentry-sourcemaps` job no longer runs and that the mobile build no longer attempts to install `sentry-cli` or upload dSYMs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) --- .circleci/src/commands/@mobile-commands.yml | 5 - .circleci/src/jobs/@web-jobs.yml | 24 - .circleci/src/workflows/web.yml | 8 - .github/workflows/mobile.yml | 16 - .github/workflows/web.yml | 89 --- package-lock.json | 621 +----------------- package.json | 1 - .../api/tan-query/coins/useFanClubByTicker.ts | 2 +- .../src/api/tan-query/coins/useRedeemCoin.ts | 12 +- .../api/tan-query/coins/useRedeemCoinCode.ts | 12 +- .../collection/useDeleteCollection.ts | 14 +- .../src/api/tan-query/comments/useComment.ts | 12 +- .../tan-query/comments/useCommentReplies.ts | 12 +- .../tan-query/comments/useDeleteComment.ts | 11 +- .../tan-query/comments/useDeleteTextPost.ts | 11 +- .../api/tan-query/comments/useEditComment.ts | 11 +- .../tan-query/comments/useEventComments.ts | 12 +- .../api/tan-query/comments/useFanClubFeed.ts | 12 +- .../src/api/tan-query/comments/useMuteUser.ts | 11 +- .../api/tan-query/comments/usePinComment.ts | 11 +- .../api/tan-query/comments/usePostComment.ts | 11 +- .../tan-query/comments/usePostEventComment.ts | 11 +- .../tan-query/comments/usePostTextUpdate.ts | 11 +- .../tan-query/comments/useReactToComment.ts | 11 +- .../tan-query/comments/useReportComment.ts | 11 +- .../tan-query/comments/useTrackComments.ts | 12 +- .../useUpdateCommentNotificationSetting.ts | 11 +- ...seUpdateTrackCommentNotificationSetting.ts | 11 +- .../api/tan-query/comments/useUserComments.ts | 12 +- .../api/tan-query/events/useCreateEvent.ts | 11 +- .../api/tan-query/events/useDeleteEvent.ts | 11 +- .../api/tan-query/events/useEventFollowers.ts | 10 +- .../api/tan-query/events/useFollowEvent.ts | 18 +- .../api/tan-query/events/useUpdateEvent.ts | 11 +- .../src/api/tan-query/jupiter/useSwapCoins.ts | 46 +- .../api/tan-query/tracks/useDeleteTrack.ts | 10 +- .../tan-query/tracks/useDownloadTrackStems.ts | 9 +- .../api/tan-query/tracks/useFavoriteTrack.ts | 12 +- .../tan-query/tracks/useUnfavoriteTrack.ts | 12 +- .../api/tan-query/tracks/useUpdateTrack.ts | 23 +- .../tan-query/upload/usePublishCollection.ts | 7 +- .../api/tan-query/upload/usePublishStems.ts | 2 +- .../api/tan-query/upload/usePublishTracks.ts | 19 +- .../src/api/tan-query/upload/useUpload.ts | 25 +- .../api/tan-query/upload/useUploadFiles.ts | 11 +- .../users/account/useResendRecoveryEmail.ts | 11 +- .../src/api/tan-query/users/useFollowUser.ts | 18 +- .../api/tan-query/users/useUnfollowUser.ts | 18 +- .../api/tan-query/users/useUpdateProfile.ts | 12 +- .../src/api/tan-query/utils/QueryContext.ts | 6 +- .../src/api/tan-query/utils/defaultConfig.ts | 29 +- .../tan-query/wallets/useAssociatedWallets.ts | 14 +- .../api/tan-query/wallets/useAudioBalance.ts | 12 +- .../wallets/useExternalWalletBalance.ts | 16 +- .../src/api/tan-query/wallets/useSendCoins.ts | 17 +- .../src/hooks/chats/useSetInboxPermissions.ts | 9 +- .../hooks/useChangeEmailFormConfiguration.ts | 5 +- packages/common/src/hooks/useShareAction.ts | 19 +- packages/common/src/models/ErrorReporting.ts | 84 --- packages/common/src/models/index.ts | 1 - .../services/audius-backend/AudiusBackend.ts | 8 +- packages/common/src/services/env.ts | 1 - .../src/services/remote-config/defaults.ts | 3 +- .../src/services/remote-config/types.ts | 5 +- packages/common/src/store/account/sagas.ts | 121 +--- packages/common/src/store/buy-usdc/sagas.ts | 14 +- packages/common/src/store/pages/chat/sagas.ts | 175 +---- packages/common/src/store/playback/slice.ts | 3 +- .../src/store/purchase-content/sagas.ts | 9 +- packages/common/src/store/storeContext.ts | 6 - .../src/store/ui/stripe-modal/sagaHelpers.ts | 18 +- .../common/src/store/ui/stripe-modal/sagas.ts | 18 +- .../src/store/ui/withdraw-usdc/sagas.ts | 18 +- packages/common/src/utils/sagaHelpers.ts | 14 +- packages/embed/src/util/logError.js | 1 - packages/identity-service/default-config.json | 1 - packages/identity-service/package.json | 1 - packages/identity-service/src/app.js | 12 - packages/identity-service/src/config.js | 6 - packages/mobile/android/sentry.properties | 4 - .../project.pbxproj | 15 - packages/mobile/ios/Podfile | 4 +- .../ios/scripts/uploadSentryDebugSymbols.sh | 3 - packages/mobile/ios/sentry.properties | 4 - packages/mobile/src/app/App.tsx | 7 +- .../mobile/src/app/AudiusQueryProvider.tsx | 2 - packages/mobile/src/app/ErrorBoundary.tsx | 8 +- packages/mobile/src/app/sentry.ts | 8 - .../src/components/audio/AudioPlayer.tsx | 15 +- .../DownloadTrackArchiveDrawer.tsx | 12 +- .../NavigationContainer.tsx | 7 +- .../send-tokens-drawer/SendTokensDrawer.tsx | 14 +- .../share-drawer/useShareToStory.tsx | 9 +- .../EditCoinDetailsScreen.tsx | 16 +- .../NotificationErrorBoundary.tsx | 9 +- .../src/services/audius-backend-instance.ts | 3 +- packages/mobile/src/services/env/env.dev.ts | 1 - packages/mobile/src/services/env/env.prod.ts | 1 - packages/mobile/src/services/query-client.ts | 3 +- .../remote-config/remote-config-instance.ts | 8 +- packages/mobile/src/store/store.ts | 8 - packages/mobile/src/store/storeContext.ts | 6 - packages/mobile/src/utils/reportToSentry.ts | 66 -- packages/web/package.json | 4 - packages/web/src/app/AppErrorBoundary.tsx | 4 +- packages/web/src/app/AudiusQueryProvider.tsx | 2 - packages/web/src/app/web-player/WebPlayer.tsx | 12 - .../common/store/pages/audio-rewards/sagas.ts | 13 - .../src/common/store/pages/signon/sagas.ts | 164 +---- .../web/src/common/store/pages/track/sagas.ts | 14 +- .../src/common/store/playback/errorSagas.ts | 4 +- .../web/src/common/store/playback/sagas.ts | 4 +- .../store/social/collections/errorSagas.ts | 4 +- .../common/store/social/tracks/errorSagas.ts | 4 +- .../common/store/social/users/errorSagas.ts | 4 +- .../components/error-wrapper/ErrorWrapper.tsx | 15 +- .../componentWithErrorBoundary.tsx | 4 +- .../instagram-auth/InstagramAuth.tsx | 34 +- .../payout-wallet-modal/PayoutWalletModal.tsx | 7 +- .../send-tokens-modal/SendTokensModal.tsx | 20 +- .../web/src/components/x-auth/XAuthButton.tsx | 29 +- packages/web/src/hooks/useClaimFees.ts | 12 +- packages/web/src/hooks/useClaimVestedCoins.ts | 12 +- .../src/hooks/useConnectExternalWallets.ts | 22 +- .../web/src/hooks/useExternalWalletSwap.ts | 21 +- packages/web/src/hooks/useLaunchCoin.ts | 55 +- .../modals/ConnectedWalletsModal.tsx | 16 +- .../EditCoinDetailsPage.tsx | 24 +- .../components/FanClubInfoSection.tsx | 25 +- .../LaunchpadPage.tsx | 96 +-- .../pages/SetupPage.tsx | 13 +- .../fan-clubs-launchpad-page/validation.ts | 18 +- .../useUploadContestCover.ts | 10 +- .../pages/oauth-login-page/OAuthLoginPage.tsx | 5 +- .../oauth-login-page/OAuthSignUpPage.tsx | 7 +- .../web/src/pages/oauth-login-page/hooks.ts | 10 +- .../pages/upload-page/pages/SelectPage.tsx | 15 +- .../audius-backend/audius-backend-instance.ts | 3 +- packages/web/src/services/env/env.dev.ts | 1 - packages/web/src/services/env/env.prod.ts | 1 - packages/web/src/services/query-client.ts | 4 +- .../remote-config/remote-config-instance.ts | 12 +- packages/web/src/services/sentry.ts | 182 ----- packages/web/src/ssr/worker.js | 13 +- .../store/application/ui/stemsUpload/sagas.ts | 2 - packages/web/src/store/configureStore.ts | 135 +--- packages/web/src/store/errors/actions.ts | 17 +- .../web/src/store/errors/reportToSentry.ts | 83 --- packages/web/src/store/errors/sagas.ts | 9 +- packages/web/src/store/reload/sagas.ts | 9 +- packages/web/src/store/storeContext.ts | 16 - packages/web/src/utils/errorSagas.ts | 10 +- 152 files changed, 429 insertions(+), 2954 deletions(-) delete mode 100644 packages/common/src/models/ErrorReporting.ts delete mode 100644 packages/mobile/android/sentry.properties delete mode 100755 packages/mobile/ios/scripts/uploadSentryDebugSymbols.sh delete mode 100644 packages/mobile/ios/sentry.properties delete mode 100644 packages/mobile/src/app/sentry.ts delete mode 100644 packages/mobile/src/utils/reportToSentry.ts delete mode 100644 packages/web/src/services/sentry.ts delete mode 100644 packages/web/src/store/errors/reportToSentry.ts diff --git a/.circleci/src/commands/@mobile-commands.yml b/.circleci/src/commands/@mobile-commands.yml index 850930e0fe7..fa90ea9c1c2 100644 --- a/.circleci/src/commands/@mobile-commands.yml +++ b/.circleci/src/commands/@mobile-commands.yml @@ -38,11 +38,6 @@ mobile-prepare-ios: command: | cd packages/mobile/ios bundle exec pod install - - run: - name: Install Sentry CLI - command: | - curl -sL https://sentry.io/get-cli/ | bash - echo export SENTRY_BINARY=/usr/local/bin/sentry-cli >> "$BASH_ENV" - run: name: Build dependencies no_output_timeout: 60m diff --git a/.circleci/src/jobs/@web-jobs.yml b/.circleci/src/jobs/@web-jobs.yml index 8ac409f4a9c..d908a9f5a2b 100644 --- a/.circleci/src/jobs/@web-jobs.yml +++ b/.circleci/src/jobs/@web-jobs.yml @@ -143,30 +143,6 @@ web-deploy-production-cloudflare: copy-robots: true # - web-deploy-sourcemaps-s3 -web-deploy-sentry-sourcemaps: - working_directory: ~/apps - docker: - - image: cimg/node:20.19 - steps: - - checkout - - attach_workspace: - at: ./ - - run: - name: cut-sentry-release - command: | - cd packages/web - ../../node_modules/.bin/sentry-cli --auth-token ${SENTRY_AUTH_TOKEN} releases --org audius --project audius-client new ${CIRCLE_SHA1} - - run: - name: upload-sourcemaps - command: | - cd packages/web - ../../node_modules/.bin/sentry-cli --auth-token ${SENTRY_AUTH_TOKEN} releases --org audius --project audius-client files ${CIRCLE_SHA1} upload-sourcemaps --no-rewrite build-production/static/js - - run: - name: finalize-release - command: | - cd packages/web - ../../node_modules/.bin/sentry-cli --auth-token ${SENTRY_AUTH_TOKEN} releases --org audius --project audius-client finalize ${CIRCLE_SHA1} - web-dist-mac-production: working_directory: ~/apps # run on macos so dmg can be created and signed. diff --git a/.circleci/src/workflows/web.yml b/.circleci/src/workflows/web.yml index 3a5fcdac6dd..95916d4802a 100644 --- a/.circleci/src/workflows/web.yml +++ b/.circleci/src/workflows/web.yml @@ -70,14 +70,6 @@ jobs: filters: branches: only: /^main$/ - - web-deploy-sentry-sourcemaps: - context: Audius Client - requires: - - web-hold-production - filters: - branches: - only: /^main$/ - # Distribute production desktop binaries on main. - web-hold-dist-mac-production: type: approval diff --git a/.github/workflows/mobile.yml b/.github/workflows/mobile.yml index b662c7dfe9b..ca9306aca00 100644 --- a/.github/workflows/mobile.yml +++ b/.github/workflows/mobile.yml @@ -501,11 +501,6 @@ jobs: cd packages/mobile/ios RCT_NEW_ARCH_ENABLED=0 bundle exec pod install - - name: Install Sentry CLI - run: | - curl -sL https://sentry.io/get-cli/ | bash - echo "$HOME/.sentry-cli/bin" >> $GITHUB_PATH - - name: Build dependencies timeout-minutes: 60 run: npx turbo run build --filter=@audius/mobile @@ -559,9 +554,6 @@ jobs: APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }} APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} run: | cd packages/mobile/ios bundle exec fastlane build_and_upload bundle_id:co.audius.audiusmusic.releasecandidate @@ -888,11 +880,6 @@ jobs: cd packages/mobile/ios RCT_NEW_ARCH_ENABLED=0 bundle exec pod install - - name: Install Sentry CLI - run: | - curl -sL https://sentry.io/get-cli/ | bash - echo "$HOME/.sentry-cli/bin" >> $GITHUB_PATH - - name: Build dependencies timeout-minutes: 60 run: npx turbo run build --filter=@audius/mobile @@ -946,9 +933,6 @@ jobs: APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }} APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} run: | cd packages/mobile/ios bundle exec fastlane build_and_upload bundle_id:co.audius.audiusmusic diff --git a/.github/workflows/web.yml b/.github/workflows/web.yml index 95ba393d1d5..c20c26b16c2 100644 --- a/.github/workflows/web.yml +++ b/.github/workflows/web.yml @@ -837,92 +837,3 @@ jobs: job_url="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" json_content="{ \"blocks\": [{ \"type\": \"section\", \"text\": { \"type\": \"mrkdwn\", \"text\": \"Deployed production <${job_url}|v${deploying_version}> to web \n\" } }]}" curl -f -X POST -H 'Content-type: application/json' --data "$json_content" $SLACK_WEBHOOK - - web-deploy-sentry-sourcemaps: - name: Web Deploy Sentry Sourcemaps - runs-on: ubuntu-latest - needs: [web-build, web-check-ssr-bundlesize] - if: github.ref == 'refs/heads/main' - environment: - name: production - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - - - name: Create concatenated patch file - id: patch-file - run: | - ls -d -- packages/*/patches/*.patch 2>/dev/null | xargs cat > combined-patch-file.txt || touch combined-patch-file.txt - echo "patch_checksum=$(sha256sum combined-patch-file.txt | cut -d' ' -f1)" >> $GITHUB_OUTPUT - - - name: Cache node modules - id: cache-node-modules - uses: actions/cache@v4 - with: - path: | - node_modules - packages/web/node_modules - packages/harmony/node_modules - packages/common/node_modules - packages/libs/node_modules - packages/sdk/node_modules - key: npm-cache-${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}-${{ steps.patch-file.outputs.patch_checksum }} - restore-keys: | - npm-cache-${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}- - - - name: Install dependencies (if cache miss) - if: steps.cache-node-modules.outputs.cache-hit != 'true' - env: - CI: true - SKIP_POD_INSTALL: true - SKIP_ANDROID_INSTALL: true - ANDROID_HOME: /tmp/android-sdk-dummy - NODE_OPTIONS: --max-old-space-size=8192 - run: | - mkdir -p /tmp/android-sdk-dummy - npm ci --prefer-offline - - - name: Run postinstall (if cache hit) - if: steps.cache-node-modules.outputs.cache-hit == 'true' - env: - CI: true - SKIP_POD_INSTALL: true - SKIP_ANDROID_INSTALL: true - ANDROID_HOME: /tmp/android-sdk-dummy - NODE_OPTIONS: --max-old-space-size=8192 - run: | - mkdir -p /tmp/android-sdk-dummy - npm run postinstall - - - name: Download builds - uses: actions/download-artifact@v4 - with: - name: builds - path: packages/web - - - name: Cut Sentry release - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - run: | - cd packages/web - ../../node_modules/.bin/sentry-cli --auth-token ${SENTRY_AUTH_TOKEN} releases --org audius --project audius-client new ${{ github.sha }} - - - name: Upload sourcemaps - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - run: | - cd packages/web - ../../node_modules/.bin/sentry-cli --auth-token ${SENTRY_AUTH_TOKEN} sourcemaps upload --org audius --project audius-client --release ${{ github.sha }} build-production/static/js - - - name: Finalize release - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - run: | - cd packages/web - ../../node_modules/.bin/sentry-cli --auth-token ${SENTRY_AUTH_TOKEN} releases --org audius --project audius-client finalize ${{ github.sha }} - diff --git a/package-lock.json b/package-lock.json index 985b4c4caa0..8acc1252e08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,6 @@ }, "devDependencies": { "@emotion/eslint-plugin": "11.12.0", - "@sentry/cli": "3.1.0", "@tsconfig/strictest": "2.0.2", "@types/keyv": "4.2.0", "@types/react": "19.0.0", @@ -32943,470 +32942,6 @@ "node": "6.* || 8.* || >=10.*" } }, - "node_modules/@sentry-internal/feedback": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.117.0.tgz", - "integrity": "sha512-4X+NnnY17W74TymgLFH7/KPTVYpEtoMMJh8HzVdCmHTOE6j32XKBeBMRaXBhmNYmEgovgyRKKf2KvtSfgw+V1Q==", - "license": "MIT", - "dependencies": { - "@sentry/core": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sentry-internal/replay-canvas": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.117.0.tgz", - "integrity": "sha512-7hjIhwEcoosr+BIa0AyEssB5xwvvlzUpvD5fXu4scd3I3qfX8gdnofO96a8r+LrQm3bSj+eN+4TfKEtWb7bU5A==", - "license": "MIT", - "dependencies": { - "@sentry/core": "7.117.0", - "@sentry/replay": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sentry-internal/tracing": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.117.0.tgz", - "integrity": "sha512-fAIyijNvKBZNA12IcKo+dOYDRTNrzNsdzbm3DP37vJRKVQu19ucqP4Y6InvKokffDP2HZPzFPDoGXYuXkDhUZg==", - "license": "MIT", - "dependencies": { - "@sentry/core": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/browser": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.117.0.tgz", - "integrity": "sha512-29X9HlvDEKIaWp6XKlNPPSNND0U6P/ede5WA2nVHfs1zJLWdZ7/ijuMc0sH/CueEkqHe/7gt94hBcI7HOU/wSw==", - "license": "MIT", - "dependencies": { - "@sentry-internal/feedback": "7.117.0", - "@sentry-internal/replay-canvas": "7.117.0", - "@sentry-internal/tracing": "7.117.0", - "@sentry/core": "7.117.0", - "@sentry/integrations": "7.117.0", - "@sentry/replay": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/cli": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-3.1.0.tgz", - "integrity": "sha512-ngnx6E8XjXpg1uzma45INfKCS8yurb/fl3cZdXTCa2wmek8b4N6WIlmOlTKFTBrV54OauF6mloJxAlpuzoQR6g==", - "dev": true, - "hasInstallScript": true, - "license": "FSL-1.1-MIT", - "dependencies": { - "progress": "^2.0.3", - "proxy-from-env": "^1.1.0", - "undici": "^6.22.0", - "which": "^2.0.2" - }, - "bin": { - "sentry-cli": "bin/sentry-cli" - }, - "engines": { - "node": ">= 18" - }, - "optionalDependencies": { - "@sentry/cli-darwin": "3.1.0", - "@sentry/cli-linux-arm": "3.1.0", - "@sentry/cli-linux-arm64": "3.1.0", - "@sentry/cli-linux-i686": "3.1.0", - "@sentry/cli-linux-x64": "3.1.0", - "@sentry/cli-win32-arm64": "3.1.0", - "@sentry/cli-win32-i686": "3.1.0", - "@sentry/cli-win32-x64": "3.1.0" - } - }, - "node_modules/@sentry/cli-darwin": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-3.1.0.tgz", - "integrity": "sha512-xT1WlCHenGGO29Lq/wKaIthdqZzNzZhlPs7dXrzlBx9DyA2Jnl0g7WEau0oWi8GyJGVRXCJMiCydR//Tb5qVwA==", - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/cli-linux-arm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-3.1.0.tgz", - "integrity": "sha512-kbP3/8/Ct/Jbm569KDXbFIyMyPypIegObvIT7LdSsfdYSZdBd396GV7vUpSGKiLUVVN0xjn8OqQ48AVGfjmuMg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "linux", - "freebsd", - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/cli-linux-arm64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-3.1.0.tgz", - "integrity": "sha512-Jm/iHLKiHxrZYlAq2tT07amiegEVCOAQT9Unilr6djjcZzS2tcI9ThSRQvjP9tFpFRKop+NyNGE3XHXf69r00g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "linux", - "freebsd", - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/cli-linux-i686": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-3.1.0.tgz", - "integrity": "sha512-f/PK/EGK5vFOy7LC4Riwb+BEE20Nk7RbEFEMjvRq26DpETCrZYUGlbpIKvJFKOaUmr79aAkFCA/EjJiYfcQP2Q==", - "cpu": [ - "x86", - "ia32" - ], - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "linux", - "freebsd", - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/cli-linux-x64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-3.1.0.tgz", - "integrity": "sha512-T+v8x1ujhixZrOrH0sVhsW6uLwK4n0WS+B+5xV46WqUKe32cbYotursp2y53ROjgat8SQDGeP/VnC0Qa3Y2fEA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "linux", - "freebsd", - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/cli-win32-arm64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-3.1.0.tgz", - "integrity": "sha512-2DIPq6aW2DC34EDC9J0xwD+9BpFnKdFGdIcQUZMS+5pXlU6V7o8wpZxZAM8TdYNmsPkkQGKp7Dhl/arWpvNgrw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/cli-win32-i686": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-3.1.0.tgz", - "integrity": "sha512-2NuywEiiZn6xJ1yAV2xjv/nuHiy6kZU5XR3RSAIrPdEZD1nBoMsH/gB2FufQw58Ziz/7otFcX+vtGpJjbIT5mQ==", - "cpu": [ - "x86", - "ia32" - ], - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/cli-win32-x64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-3.1.0.tgz", - "integrity": "sha512-Ip405Yqdrr+l9TImsZOJz6c9Nb4zvXcmtOIBKLHc9cowpfXfmlqsHbDp7Xh4+k4L0uLr9i+8ilgQ6ypcuF4UCg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "FSL-1.1-MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@sentry/cli/node_modules/undici": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", - "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, - "node_modules/@sentry/core": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.117.0.tgz", - "integrity": "sha512-1XZ4/d/DEwnfM2zBMloXDwX+W7s76lGKQMgd8bwgPJZjjEztMJ7X0uopKAGwlQcjn242q+hsCBR6C+fSuI5kvg==", - "license": "MIT", - "dependencies": { - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/hub": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.2.5", - "@sentry/utils": "6.2.5", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub/node_modules/@sentry/types": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub/node_modules/@sentry/utils": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.2.5", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub/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" - }, - "node_modules/@sentry/integrations": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.117.0.tgz", - "integrity": "sha512-U3suSZysmU9EiQqg0ga5CxveAyNbi9IVdsapMDq5EQGNcVDvheXtULs+BOc11WYP3Kw2yWB38VDqLepfc/Fg2g==", - "license": "MIT", - "dependencies": { - "@sentry/core": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0", - "localforage": "^1.8.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/minimal": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/hub": "6.2.5", - "@sentry/types": "6.2.5", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal/node_modules/@sentry/types": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal/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" - }, - "node_modules/@sentry/node": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/core": "6.2.5", - "@sentry/hub": "6.2.5", - "@sentry/tracing": "6.2.5", - "@sentry/types": "6.2.5", - "@sentry/utils": "6.2.5", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node/node_modules/@sentry/core": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/hub": "6.2.5", - "@sentry/minimal": "6.2.5", - "@sentry/types": "6.2.5", - "@sentry/utils": "6.2.5", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node/node_modules/@sentry/types": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node/node_modules/@sentry/utils": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.2.5", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node/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" - }, - "node_modules/@sentry/replay": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.117.0.tgz", - "integrity": "sha512-V4DfU+x4UsA4BsufbQ8jHYa5H0q5PYUgso2X1PR31g1fpx7yiYguSmCfz1UryM6KkH92dfTnqXapDB44kXOqzQ==", - "license": "MIT", - "dependencies": { - "@sentry-internal/tracing": "7.117.0", - "@sentry/core": "7.117.0", - "@sentry/types": "7.117.0", - "@sentry/utils": "7.117.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sentry/tracing": { - "version": "6.2.5", - "license": "MIT", - "dependencies": { - "@sentry/hub": "6.2.5", - "@sentry/minimal": "6.2.5", - "@sentry/types": "6.2.5", - "@sentry/utils": "6.2.5", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing/node_modules/@sentry/types": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing/node_modules/@sentry/utils": { - "version": "6.2.5", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.2.5", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing/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" - }, - "node_modules/@sentry/types": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.117.0.tgz", - "integrity": "sha512-5dtdulcUttc3F0Te7ekZmpSp/ebt/CA71ELx0uyqVGjWsSAINwskFD77sdcjqvZWek//WjiYX1+GRKlpJ1QqsA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/utils": { - "version": "7.117.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.117.0.tgz", - "integrity": "sha512-KkcLY8643SGBiDyPvMQOubBkwVX5IPknMHInc7jYC8pDVncGp7C65Wi506bCNPpKCWspUd/0VDNWOOen51/qKA==", - "license": "MIT", - "dependencies": { - "@sentry/types": "7.117.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@shikijs/core": { "version": "1.29.2", "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.29.2.tgz", @@ -38420,97 +37955,6 @@ "redux-saga": "*" } }, - "node_modules/@types/redux-sentry-middleware": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@sentry/browser": "^5.0.0 || ^6.0.0", - "redux": "^4.0.0" - } - }, - "node_modules/@types/redux-sentry-middleware/node_modules/@sentry/browser": { - "version": "6.19.7", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/core": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/redux-sentry-middleware/node_modules/@sentry/core": { - "version": "6.19.7", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/hub": "6.19.7", - "@sentry/minimal": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/redux-sentry-middleware/node_modules/@sentry/hub": { - "version": "6.19.7", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/redux-sentry-middleware/node_modules/@sentry/minimal": { - "version": "6.19.7", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/hub": "6.19.7", - "@sentry/types": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/redux-sentry-middleware/node_modules/@sentry/types": { - "version": "6.19.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/redux-sentry-middleware/node_modules/@sentry/utils": { - "version": "6.19.7", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/redux-sentry-middleware/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, "node_modules/@types/request-ip": { "version": "0.0.41", "dev": true, @@ -51654,6 +51098,7 @@ }, "node_modules/cookie": { "version": "0.4.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -72452,10 +71897,6 @@ "@types/unist": "*" } }, - "node_modules/lru_map": { - "version": "0.3.3", - "license": "MIT" - }, "node_modules/lru-cache": { "version": "5.1.1", "license": "ISC", @@ -89509,10 +88950,6 @@ "hasInstallScript": true, "license": "MIT" }, - "node_modules/redux-sentry-middleware": { - "version": "0.1.8", - "license": "MIT" - }, "node_modules/redux-thunk": { "version": "2.4.2", "license": "MIT", @@ -99140,57 +98577,6 @@ "node": ">=6" } }, - "node_modules/toucan-js": { - "version": "3.3.1", - "license": "MIT", - "dependencies": { - "@sentry/core": "7.76.0", - "@sentry/integrations": "7.76.0", - "@sentry/types": "7.76.0", - "@sentry/utils": "7.76.0" - } - }, - "node_modules/toucan-js/node_modules/@sentry/core": { - "version": "7.76.0", - "license": "MIT", - "dependencies": { - "@sentry/types": "7.76.0", - "@sentry/utils": "7.76.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/toucan-js/node_modules/@sentry/integrations": { - "version": "7.76.0", - "license": "MIT", - "dependencies": { - "@sentry/core": "7.76.0", - "@sentry/types": "7.76.0", - "@sentry/utils": "7.76.0", - "localforage": "^1.8.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/toucan-js/node_modules/@sentry/types": { - "version": "7.76.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/toucan-js/node_modules/@sentry/utils": { - "version": "7.76.0", - "license": "MIT", - "dependencies": { - "@sentry/types": "7.76.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/touch": { "version": "3.1.0", "dev": true, @@ -126430,7 +125816,6 @@ "@optimizely/optimizely-sdk": "4.6.0", "@sendgrid/client": "7.7.0", "@sendgrid/mail": "7.7.0", - "@sentry/node": "6.2.5", "@solana/buffer-layout": "4.0.1", "@solana/buffer-layout-utils": "0.2.0", "@solana/spl-token": "0.3.8", @@ -138750,7 +138135,6 @@ "@reown/appkit-adapter-solana": "1.7.1", "@reown/appkit-adapter-wagmi": "1.7.1", "@reown/appkit-wallet-button": "1.7.1", - "@sentry/browser": "^7.117.0", "@solana/spl-token": "0.3.8", "@solana/web3.js": "1.98.0", "@stripe/crypto": "0.0.4", @@ -138814,12 +138198,10 @@ "redux": "4.1.1", "redux-persist": "6.0.0", "redux-saga": "1.1.3", - "redux-sentry-middleware": "0.1.8", "redux-thunk": "2.4.2", "reselect": "4.0.0", "semver": "6.3.0", "tar": "6.1.11", - "toucan-js": "3.3.1", "type-fest": "4.26.1", "typed-redux-saga": "1.3.1", "typesafe-actions": "5.1.0", @@ -138858,7 +138240,6 @@ "@types/react-table": "7.7.12", "@types/react-twitter-auth": "0.0.4", "@types/react-virtualized": "9.21.21", - "@types/redux-sentry-middleware": "0.2.1", "@types/resize-observer-browser": "0.1.7", "@vitejs/plugin-react-swc": "4.2.2", "abort-controller": "3.0.0", diff --git a/package.json b/package.json index 3acbcf6cb42..820eecc361c 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,6 @@ }, "devDependencies": { "@emotion/eslint-plugin": "11.12.0", - "@sentry/cli": "3.1.0", "@tsconfig/strictest": "2.0.2", "@types/keyv": "4.2.0", "@types/react": "19.0.0", diff --git a/packages/common/src/api/tan-query/coins/useFanClubByTicker.ts b/packages/common/src/api/tan-query/coins/useFanClubByTicker.ts index 98a97d91cdb..269698ab01d 100644 --- a/packages/common/src/api/tan-query/coins/useFanClubByTicker.ts +++ b/packages/common/src/api/tan-query/coins/useFanClubByTicker.ts @@ -20,7 +20,7 @@ import { useFanClub, getFanClubQueryKey } from './useFanClub' /** * Function to check if a coin ticker is available for use. * Returns true if available, false if taken. - * Handles 404 errors gracefully without reporting them to Sentry. + * Swallows 404 errors so they are treated as "available". */ export const fetchCoinTickerAvailability = async ( ticker: string, diff --git a/packages/common/src/api/tan-query/coins/useRedeemCoin.ts b/packages/common/src/api/tan-query/coins/useRedeemCoin.ts index 49ce0e9aab9..392629c1aaf 100644 --- a/packages/common/src/api/tan-query/coins/useRedeemCoin.ts +++ b/packages/common/src/api/tan-query/coins/useRedeemCoin.ts @@ -1,7 +1,6 @@ import { Id } from '@audius/sdk' import { useMutation, useQueryClient } from '@tanstack/react-query' -import { Feature } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QUERY_KEYS } from '../queryKeys' @@ -15,7 +14,7 @@ type RedeemCoinParams = { } export const useRedeemCoin = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const { data: currentUserId } = useCurrentUserId() @@ -47,13 +46,8 @@ export const useRedeemCoin = () => { queryKey: getFanClubQueryKey(mint) }) }, - onError: (error: Error, args, _context) => { - reportToSentry({ - error, - additionalInfo: args, - name: 'RedeemCoin', - feature: Feature.FanClubs - }) + onError: (error: Error, _args, _context) => { + console.error(error) // Toast generic error message toast({ diff --git a/packages/common/src/api/tan-query/coins/useRedeemCoinCode.ts b/packages/common/src/api/tan-query/coins/useRedeemCoinCode.ts index e3c68c6b191..26ea104bb81 100644 --- a/packages/common/src/api/tan-query/coins/useRedeemCoinCode.ts +++ b/packages/common/src/api/tan-query/coins/useRedeemCoinCode.ts @@ -1,7 +1,6 @@ import { Id } from '@audius/sdk' import { useMutation, useQueryClient } from '@tanstack/react-query' -import { Feature } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QUERY_KEYS } from '../queryKeys' @@ -16,7 +15,7 @@ type RedeemCoinCodeParams = { } export const useRedeemCoinCode = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const { data: currentUserId } = useCurrentUserId() @@ -49,13 +48,8 @@ export const useRedeemCoinCode = () => { queryKey: getFanClubQueryKey(mint) }) }, - onError: (error: Error, args, _context) => { - reportToSentry({ - error, - additionalInfo: args, - name: 'RedeemCoinCode', - feature: Feature.FanClubs - }) + onError: (error: Error, _args, _context) => { + console.error(error) // TODO: Should 'Please try again' be added to the end of the message? // Toast generic error message diff --git a/packages/common/src/api/tan-query/collection/useDeleteCollection.ts b/packages/common/src/api/tan-query/collection/useDeleteCollection.ts index 3dfd339fae2..20a9bc17800 100644 --- a/packages/common/src/api/tan-query/collection/useDeleteCollection.ts +++ b/packages/common/src/api/tan-query/collection/useDeleteCollection.ts @@ -5,7 +5,6 @@ import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' import { useAppContext } from '~/context/appContext' import { Name } from '~/models/Analytics' -import { Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { accountActions } from '~/store' @@ -25,7 +24,7 @@ type MutationContext = { } export const useDeleteCollection = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() const { data: currentUserId } = useCurrentUserId() @@ -88,7 +87,7 @@ export const useDeleteCollection = () => { return { previousCollection } }, - onError: (error, { collectionId }, context?: MutationContext) => { + onError: (error, _args, context?: MutationContext) => { // Roll back optimistic updates if the mutation fails if (context?.previousCollection) { const collection = context.previousCollection @@ -101,14 +100,7 @@ export const useDeleteCollection = () => { }) } - reportToSentry({ - error, - additionalInfo: { - collectionId - }, - feature: Feature.Edit, - name: 'Delete Collection' - }) + console.error(error) }, onSuccess: async (_, { collectionId }) => { // Invalidate and refetch collection queries to ensure cache consistency diff --git a/packages/common/src/api/tan-query/comments/useComment.ts b/packages/common/src/api/tan-query/comments/useComment.ts index 2f6a17018cc..7b9c5233f95 100644 --- a/packages/common/src/api/tan-query/comments/useComment.ts +++ b/packages/common/src/api/tan-query/comments/useComment.ts @@ -6,14 +6,14 @@ import { useDispatch } from 'react-redux' import { commentFromSDK } from '~/adapters' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { messages } from './types' import { getCommentQueryKey } from './utils' export const useComment = (commentId: ID | null | undefined) => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const dispatch = useDispatch() const queryRes = useQuery({ @@ -36,14 +36,10 @@ export const useComment = (commentId: ID | null | undefined) => { useEffect(() => { if (error) { - reportToSentry({ - error, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) dispatch(toast({ content: messages.loadError('comments') })) } - }, [error, dispatch, reportToSentry]) + }, [error, dispatch]) return queryRes } diff --git a/packages/common/src/api/tan-query/comments/useCommentReplies.ts b/packages/common/src/api/tan-query/comments/useCommentReplies.ts index 509facc7af8..728ca6bfd32 100644 --- a/packages/common/src/api/tan-query/comments/useCommentReplies.ts +++ b/packages/common/src/api/tan-query/comments/useCommentReplies.ts @@ -6,7 +6,7 @@ import { useDispatch } from 'react-redux' import { replyCommentFromSDK, transformAndCleanList } from '~/adapters' import { useQueryContext } from '~/api/tan-query/utils' -import { Comment, Feature, ID } from '~/models' +import { Comment, ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QueryOptions } from '../types' @@ -27,7 +27,7 @@ export const useCommentReplies = ( { commentId, pageSize = COMMENT_REPLIES_PAGE_SIZE }: GetRepliesArgs, options?: QueryOptions ) => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() const startingLimit = 3 // comments will load in with 3 already so we don't start pagination at 0 @@ -80,14 +80,10 @@ export const useCommentReplies = ( useEffect(() => { if (error) { - reportToSentry({ - error, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) dispatch(toast({ content: messages.loadError('replies') })) } - }, [error, dispatch, reportToSentry]) + }, [error, dispatch]) const { data: replies } = useComments(replyIds) diff --git a/packages/common/src/api/tan-query/comments/useDeleteComment.ts b/packages/common/src/api/tan-query/comments/useDeleteComment.ts index eaab048aed7..499d7d8dca1 100644 --- a/packages/common/src/api/tan-query/comments/useDeleteComment.ts +++ b/packages/common/src/api/tan-query/comments/useDeleteComment.ts @@ -4,7 +4,7 @@ import { cloneDeep } from 'lodash' import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' -import { Comment, Feature, ID, ReplyComment } from '~/models' +import { Comment, ID, ReplyComment } from '~/models' import { toast } from '~/store/ui/toast/slice' import { messages } from './types' @@ -23,7 +23,7 @@ export type DeleteCommentArgs = { } export const useDeleteComment = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() return useMutation({ @@ -100,12 +100,7 @@ export const useDeleteComment = () => { onError: (error: Error, args) => { const { trackId, currentSort } = args - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) // Toast standard error message dispatch(toast({ content: messages.mutationError('deleting') })) // Since this mutation handles sort data, its difficult to undo the optimistic update so we just re-load everything diff --git a/packages/common/src/api/tan-query/comments/useDeleteTextPost.ts b/packages/common/src/api/tan-query/comments/useDeleteTextPost.ts index f0e6faef09d..ceee8c06e73 100644 --- a/packages/common/src/api/tan-query/comments/useDeleteTextPost.ts +++ b/packages/common/src/api/tan-query/comments/useDeleteTextPost.ts @@ -4,7 +4,7 @@ import { cloneDeep } from 'lodash' import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { FanClubFeedItem, getFanClubFeedQueryKey } from './useFanClubFeed' @@ -18,7 +18,7 @@ export type DeleteTextPostArgs = { } export const useDeleteTextPost = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() return useMutation({ @@ -60,12 +60,7 @@ export const useDeleteTextPost = () => { }) }, onError: (error: Error, args) => { - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) dispatch(toast({ content: 'There was an error deleting the post.' })) // Reset to server state queryClient.invalidateQueries({ diff --git a/packages/common/src/api/tan-query/comments/useEditComment.ts b/packages/common/src/api/tan-query/comments/useEditComment.ts index e8f15d60b65..86da25874c7 100644 --- a/packages/common/src/api/tan-query/comments/useEditComment.ts +++ b/packages/common/src/api/tan-query/comments/useEditComment.ts @@ -3,7 +3,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { CommentOrReply, messages } from './types' @@ -20,7 +20,7 @@ export type EditCommentArgs = { } export const useEditComment = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() return useMutation({ @@ -62,12 +62,7 @@ export const useEditComment = () => { }, onError: (error: Error, args, context) => { const { commentId } = args - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) // Toast standard error message dispatch(toast({ content: messages.mutationError('editing') })) diff --git a/packages/common/src/api/tan-query/comments/useEventComments.ts b/packages/common/src/api/tan-query/comments/useEventComments.ts index b1c8147cb2c..6f1bc7dba70 100644 --- a/packages/common/src/api/tan-query/comments/useEventComments.ts +++ b/packages/common/src/api/tan-query/comments/useEventComments.ts @@ -6,7 +6,7 @@ import { useDispatch } from 'react-redux' import { commentFromSDK } from '~/adapters' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QUERY_KEYS } from '../queryKeys' @@ -54,7 +54,7 @@ export const useEventComments = ({ pageSize = EVENT_COMMENTS_PAGE_SIZE, enabled = true }: UseEventCommentsArgs) => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() const { data: currentUserId } = useCurrentUserId() @@ -100,11 +100,7 @@ export const useEventComments = ({ useEffect(() => { if (error) { - reportToSentry({ - error, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) dispatch( toast({ content: @@ -112,7 +108,7 @@ export const useEventComments = ({ }) ) } - }, [error, dispatch, reportToSentry]) + }, [error, dispatch]) return queryRes } diff --git a/packages/common/src/api/tan-query/comments/useFanClubFeed.ts b/packages/common/src/api/tan-query/comments/useFanClubFeed.ts index 6440ee73299..6e8fbafa707 100644 --- a/packages/common/src/api/tan-query/comments/useFanClubFeed.ts +++ b/packages/common/src/api/tan-query/comments/useFanClubFeed.ts @@ -6,7 +6,7 @@ import { useDispatch } from 'react-redux' import { commentFromSDK } from '~/adapters' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QUERY_KEYS } from '../queryKeys' @@ -46,7 +46,7 @@ export const useFanClubFeed = ({ pageSize = FAN_CLUB_FEED_PAGE_SIZE, enabled = true }: UseFanClubFeedArgs) => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() const { data: currentUserId } = useCurrentUserId() @@ -99,18 +99,14 @@ export const useFanClubFeed = ({ useEffect(() => { if (error) { - reportToSentry({ - error, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) dispatch( toast({ content: 'There was an error loading the feed. Please try again.' }) ) } - }, [error, dispatch, reportToSentry]) + }, [error, dispatch]) return queryRes } diff --git a/packages/common/src/api/tan-query/comments/useMuteUser.ts b/packages/common/src/api/tan-query/comments/useMuteUser.ts index 5fd789795bb..94ef3047b7c 100644 --- a/packages/common/src/api/tan-query/comments/useMuteUser.ts +++ b/packages/common/src/api/tan-query/comments/useMuteUser.ts @@ -3,7 +3,7 @@ import { cloneDeep } from 'lodash' import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' -import { Comment, Feature, ID } from '~/models' +import { Comment, ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { messages } from './types' @@ -22,7 +22,7 @@ export type MuteUserArgs = { } export const useMuteUser = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() @@ -94,12 +94,7 @@ export const useMuteUser = () => { }, onError: (error: Error, args) => { const { trackId, currentSort } = args - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) // Generic toast error dispatch(toast({ content: messages.muteUserError })) diff --git a/packages/common/src/api/tan-query/comments/usePinComment.ts b/packages/common/src/api/tan-query/comments/usePinComment.ts index b59c8acd111..23766ee67ed 100644 --- a/packages/common/src/api/tan-query/comments/usePinComment.ts +++ b/packages/common/src/api/tan-query/comments/usePinComment.ts @@ -4,7 +4,7 @@ import { cloneDeep } from 'lodash' import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { Nullable } from '~/utils' @@ -23,7 +23,7 @@ export type PinCommentArgs = { } export const usePinComment = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() return useMutation({ @@ -88,12 +88,7 @@ export const usePinComment = () => { }, onError: (error: Error, args) => { const { trackId, currentSort, previousPinnedCommentId } = args - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) // Toast standard error message dispatch(toast({ content: messages.mutationError('pinning') })) queryClient.setQueryData( diff --git a/packages/common/src/api/tan-query/comments/usePostComment.ts b/packages/common/src/api/tan-query/comments/usePostComment.ts index f068348d38a..7048bccdffc 100644 --- a/packages/common/src/api/tan-query/comments/usePostComment.ts +++ b/packages/common/src/api/tan-query/comments/usePostComment.ts @@ -3,7 +3,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { cloneDeep } from 'lodash' import { useQueryContext } from '~/api/tan-query/utils' -import { Comment, Feature, ID } from '~/models' +import { Comment, ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { @@ -26,7 +26,7 @@ export type PostCommentArgs = { } export const usePostComment = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() return useMutation({ @@ -113,12 +113,7 @@ export const usePostComment = () => { }, onError: (error: Error, args) => { const { trackId, currentSort } = args - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) // Undo comment count change subtractCommentCount(queryClient, trackId) // Toast generic error message diff --git a/packages/common/src/api/tan-query/comments/usePostEventComment.ts b/packages/common/src/api/tan-query/comments/usePostEventComment.ts index 0a7242d67e6..9fe45937f52 100644 --- a/packages/common/src/api/tan-query/comments/usePostEventComment.ts +++ b/packages/common/src/api/tan-query/comments/usePostEventComment.ts @@ -2,7 +2,7 @@ import { Id } from '@audius/sdk' import { useMutation, useQueryClient } from '@tanstack/react-query' import { useQueryContext } from '~/api/tan-query/utils' -import { Comment, Feature, ID } from '~/models' +import { Comment, ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QUERY_KEYS } from '../queryKeys' @@ -31,7 +31,7 @@ export type PostEventCommentArgs = { * the event's owner, so there's no client-side branching here. */ export const usePostEventComment = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() return useMutation({ @@ -153,12 +153,7 @@ export const usePostEventComment = () => { // "I pressed send and it disappeared" experience. Mirrors how the // track-comment hook (usePostComment) handles success. onError: (error: Error, args) => { - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) toast({ content: 'There was an error posting your comment. Please try again.' }) diff --git a/packages/common/src/api/tan-query/comments/usePostTextUpdate.ts b/packages/common/src/api/tan-query/comments/usePostTextUpdate.ts index 4aed18ed4fd..53aa1ceebf6 100644 --- a/packages/common/src/api/tan-query/comments/usePostTextUpdate.ts +++ b/packages/common/src/api/tan-query/comments/usePostTextUpdate.ts @@ -2,7 +2,7 @@ import { Id } from '@audius/sdk' import { useMutation, useQueryClient } from '@tanstack/react-query' import { useQueryContext } from '~/api/tan-query/utils' -import { Comment, Feature, ID } from '~/models' +import { Comment, ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { getFanClubFeedQueryKey } from './useFanClubFeed' @@ -18,7 +18,7 @@ export type PostTextUpdateArgs = { } export const usePostTextUpdate = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() return useMutation({ @@ -93,12 +93,7 @@ export const usePostTextUpdate = () => { }) }, onError: (error: Error, args) => { - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) toast({ content: 'There was an error posting your update. Please try again.' }) diff --git a/packages/common/src/api/tan-query/comments/useReactToComment.ts b/packages/common/src/api/tan-query/comments/useReactToComment.ts index bd891a92e26..24bcd5ff0c3 100644 --- a/packages/common/src/api/tan-query/comments/useReactToComment.ts +++ b/packages/common/src/api/tan-query/comments/useReactToComment.ts @@ -7,7 +7,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { CommentOrReply, messages } from './types' @@ -24,7 +24,7 @@ export type ReactToCommentArgs = { } export const useReactToComment = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() return useMutation({ @@ -81,12 +81,7 @@ export const useReactToComment = () => { }, onError: (error: Error, args, context) => { const { commentId } = args - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) // Toast standard error message dispatch(toast({ content: messages.mutationError('reacting to') })) diff --git a/packages/common/src/api/tan-query/comments/useReportComment.ts b/packages/common/src/api/tan-query/comments/useReportComment.ts index cfe0d94f9d2..642993b156f 100644 --- a/packages/common/src/api/tan-query/comments/useReportComment.ts +++ b/packages/common/src/api/tan-query/comments/useReportComment.ts @@ -4,7 +4,7 @@ import { cloneDeep } from 'lodash' import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' -import { Comment, Feature, ID, ReplyComment } from '~/models' +import { Comment, ID, ReplyComment } from '~/models' import { toast } from '~/store/ui/toast/slice' import { messages } from './types' @@ -23,7 +23,7 @@ export type ReportCommentArgs = { } export const useReportComment = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() return useMutation({ @@ -76,12 +76,7 @@ export const useReportComment = () => { }, onError: (error: Error, args) => { const { trackId, currentSort } = args - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) // Generic toast error dispatch(toast({ content: messages.mutationError('reporting') })) diff --git a/packages/common/src/api/tan-query/comments/useTrackComments.ts b/packages/common/src/api/tan-query/comments/useTrackComments.ts index aa91c56d2c5..a6872592c7d 100644 --- a/packages/common/src/api/tan-query/comments/useTrackComments.ts +++ b/packages/common/src/api/tan-query/comments/useTrackComments.ts @@ -10,7 +10,7 @@ import { useDispatch } from 'react-redux' import { commentFromSDK, transformAndCleanList } from '~/adapters' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QueryOptions } from '../types' @@ -36,7 +36,7 @@ export const useTrackComments = ( }: GetCommentsByTrackArgs, options?: QueryOptions ) => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const isMutating = useIsMutating() const queryClient = useQueryClient() const dispatch = useDispatch() @@ -83,14 +83,10 @@ export const useTrackComments = ( useEffect(() => { if (error) { - reportToSentry({ - error, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) dispatch(toast({ content: messages.loadError('comments') })) } - }, [error, dispatch, reportToSentry]) + }, [error, dispatch]) const { data: comments } = useComments(commentIds) diff --git a/packages/common/src/api/tan-query/comments/useUpdateCommentNotificationSetting.ts b/packages/common/src/api/tan-query/comments/useUpdateCommentNotificationSetting.ts index ad2b6dd400b..f81ebfbfae6 100644 --- a/packages/common/src/api/tan-query/comments/useUpdateCommentNotificationSetting.ts +++ b/packages/common/src/api/tan-query/comments/useUpdateCommentNotificationSetting.ts @@ -3,7 +3,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { CommentOrReply, messages } from './types' @@ -16,7 +16,7 @@ export type UpdateCommentNotificationSettingArgs = { } export const useUpdateCommentNotificationSetting = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() return useMutation({ @@ -46,12 +46,7 @@ export const useUpdateCommentNotificationSetting = () => { }, onError: (error: Error, args) => { const { commentId } = args - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) dispatch( toast({ content: messages.updateCommentNotificationSettingError }) ) diff --git a/packages/common/src/api/tan-query/comments/useUpdateTrackCommentNotificationSetting.ts b/packages/common/src/api/tan-query/comments/useUpdateTrackCommentNotificationSetting.ts index e14fbfde506..e8d00273951 100644 --- a/packages/common/src/api/tan-query/comments/useUpdateTrackCommentNotificationSetting.ts +++ b/packages/common/src/api/tan-query/comments/useUpdateTrackCommentNotificationSetting.ts @@ -3,7 +3,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { messages } from './types' @@ -15,7 +15,7 @@ export type UpdateTrackCommentNotificationSettingArgs = { } export const useUpdateTrackCommentNotificationSetting = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() @@ -38,12 +38,7 @@ export const useUpdateTrackCommentNotificationSetting = () => { }, onError: (error: Error, args) => { const { trackId } = args - reportToSentry({ - error, - additionalInfo: args, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) dispatch(toast({ content: messages.muteUserError })) queryClient.resetQueries({ diff --git a/packages/common/src/api/tan-query/comments/useUserComments.ts b/packages/common/src/api/tan-query/comments/useUserComments.ts index 3b4f5652936..81255eef905 100644 --- a/packages/common/src/api/tan-query/comments/useUserComments.ts +++ b/packages/common/src/api/tan-query/comments/useUserComments.ts @@ -10,7 +10,7 @@ import { useDispatch } from 'react-redux' import { commentFromSDK, transformAndCleanList } from '~/adapters' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QueryOptions } from '../types' @@ -31,7 +31,7 @@ export const useUserComments = ( }, options?: QueryOptions ) => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const { data: currentUserId } = useCurrentUserId() const isMutating = useIsMutating() const queryClient = useQueryClient() @@ -75,14 +75,10 @@ export const useUserComments = ( useEffect(() => { if (error) { - reportToSentry({ - error, - name: 'Comments', - feature: Feature.Comments - }) + console.error(error) dispatch(toast({ content: messages.loadError('comments') })) } - }, [error, dispatch, reportToSentry]) + }, [error, dispatch]) const { data: comments } = useComments(commentIds) diff --git a/packages/common/src/api/tan-query/events/useCreateEvent.ts b/packages/common/src/api/tan-query/events/useCreateEvent.ts index 68ab0c4877d..7b70b18543e 100644 --- a/packages/common/src/api/tan-query/events/useCreateEvent.ts +++ b/packages/common/src/api/tan-query/events/useCreateEvent.ts @@ -3,7 +3,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { cloneDeep } from 'lodash' import { useQueryContext } from '~/api/tan-query/utils' -import { Event, Feature, ID } from '~/models' +import { Event, ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QUERY_KEYS } from '../queryKeys' @@ -21,7 +21,7 @@ export type CreateEventArgs = { } export const useCreateEvent = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() return useMutation({ @@ -87,12 +87,7 @@ export const useCreateEvent = () => { return { prevEntityState, prevEventTypeState } }, onError: (error: Error, args, context) => { - reportToSentry({ - error, - additionalInfo: args, - name: 'Events', - feature: Feature.Events - }) + console.error(error) // Revert the optimistic updates queryClient.resetQueries({ diff --git a/packages/common/src/api/tan-query/events/useDeleteEvent.ts b/packages/common/src/api/tan-query/events/useDeleteEvent.ts index d5a3278e07a..3fae7299d16 100644 --- a/packages/common/src/api/tan-query/events/useDeleteEvent.ts +++ b/packages/common/src/api/tan-query/events/useDeleteEvent.ts @@ -2,7 +2,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { cloneDeep } from 'lodash' import { useQueryContext } from '~/api/tan-query/utils' -import { Event, Feature, ID } from '~/models' +import { Event, ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { getEventQueryKey, getEventIdsByEntityIdQueryKey } from './utils' @@ -13,7 +13,7 @@ export type DeleteEventArgs = { } export const useDeleteEvent = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() return useMutation({ @@ -111,12 +111,7 @@ export const useDeleteEvent = () => { ) } - reportToSentry({ - error, - additionalInfo: args, - name: 'Events', - feature: Feature.Events - }) + console.error(error) toast({ content: 'There was an error deleting the event. Please try again' diff --git a/packages/common/src/api/tan-query/events/useEventFollowers.ts b/packages/common/src/api/tan-query/events/useEventFollowers.ts index 73574dff4e4..036d12644ec 100644 --- a/packages/common/src/api/tan-query/events/useEventFollowers.ts +++ b/packages/common/src/api/tan-query/events/useEventFollowers.ts @@ -3,7 +3,7 @@ import { useQuery, useQueryClient } from '@tanstack/react-query' import { userMetadataListFromSDK } from '~/adapters/user' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { QUERY_KEYS } from '../queryKeys' import { QueryKey, QueryOptions } from '../types' @@ -34,7 +34,7 @@ export const useEventFollowers = ( { eventId, limit = DEFAULT_LIMIT }: UseEventFollowersArgs, options?: QueryOptions ) => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const { data: currentUserId } = useCurrentUserId() const queryClient = useQueryClient() @@ -54,11 +54,7 @@ export const useEventFollowers = ( if (users.length) primeUserData({ users, queryClient }) return users.map((u) => u.user_id) } catch (error) { - reportToSentry({ - error: error as Error, - name: 'Events', - feature: Feature.Events - }) + console.error('Events', error as Error) return [] } }, diff --git a/packages/common/src/api/tan-query/events/useFollowEvent.ts b/packages/common/src/api/tan-query/events/useFollowEvent.ts index 6e549a9de0a..b1e3e38324a 100644 --- a/packages/common/src/api/tan-query/events/useFollowEvent.ts +++ b/packages/common/src/api/tan-query/events/useFollowEvent.ts @@ -2,7 +2,7 @@ import { encodeHashId } from '@audius/sdk' import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature, ID } from '~/models' +import { ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QUERY_KEYS } from '../queryKeys' @@ -65,7 +65,7 @@ export const useEventFollowState = (eventId: ID | null | undefined) => { } export const useFollowEvent = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() return useMutation({ @@ -96,11 +96,7 @@ export const useFollowEvent = () => { getEventFollowStateQueryKey(eventId, userId), ctx?.prev ?? { isFollowed: false, followerCount: 0 } ) - reportToSentry({ - error, - name: 'Events', - feature: Feature.Events - }) + console.error(error) toast({ content: 'Could not follow contest. Please try again.' }) }, onSettled: (_data, _err, { userId, eventId }) => { @@ -117,7 +113,7 @@ export const useFollowEvent = () => { } export const useUnfollowEvent = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() return useMutation({ @@ -142,11 +138,7 @@ export const useUnfollowEvent = () => { getEventFollowStateQueryKey(eventId, userId), ctx?.prev ?? { isFollowed: true, followerCount: 0 } ) - reportToSentry({ - error, - name: 'Events', - feature: Feature.Events - }) + console.error(error) toast({ content: 'Could not unfollow contest. Please try again.' }) }, onSettled: (_data, _err, { userId, eventId }) => { diff --git a/packages/common/src/api/tan-query/events/useUpdateEvent.ts b/packages/common/src/api/tan-query/events/useUpdateEvent.ts index 3ff305ef47c..0694a48e4f7 100644 --- a/packages/common/src/api/tan-query/events/useUpdateEvent.ts +++ b/packages/common/src/api/tan-query/events/useUpdateEvent.ts @@ -2,7 +2,7 @@ import { EventEntityTypeEnum, EventEventTypeEnum } from '@audius/sdk' import { useMutation, useQueryClient } from '@tanstack/react-query' import { useQueryContext } from '~/api/tan-query/utils' -import { Event, Feature, ID } from '~/models' +import { Event, ID } from '~/models' import { toast } from '~/store/ui/toast/slice' import { QUERY_KEYS } from '../queryKeys' @@ -20,7 +20,7 @@ export type UpdateEventArgs = { } export const useUpdateEvent = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() return useMutation({ @@ -53,12 +53,7 @@ export const useUpdateEvent = () => { return { previousEvent: currentEvent } }, onError: (error: Error, args, context) => { - reportToSentry({ - error, - additionalInfo: args, - name: 'Events', - feature: Feature.Events - }) + console.error(error) // Revert the optimistic updates if (context?.previousEvent) { diff --git a/packages/common/src/api/tan-query/jupiter/useSwapCoins.ts b/packages/common/src/api/tan-query/jupiter/useSwapCoins.ts index 867ffb437d0..d2757271115 100644 --- a/packages/common/src/api/tan-query/jupiter/useSwapCoins.ts +++ b/packages/common/src/api/tan-query/jupiter/useSwapCoins.ts @@ -13,7 +13,6 @@ import { } from '~/api' import { QUERY_KEYS } from '~/api/tan-query/queryKeys' import type { QueryContextType } from '~/api/tan-query/utils/QueryContext' -import { Feature } from '~/models' import { FollowSource } from '~/models/Analytics' import type { User } from '~/models/User' import { JupiterQuoteResult } from '~/services/Jupiter' @@ -230,15 +229,13 @@ const autoFollowArtistOnCoinPurchase = async ({ queryClient, audiusSdk, dispatch, - followUser, - reportToSentry + followUser }: { outputMint: string queryClient: ReturnType audiusSdk: QueryContextType['audiusSdk'] dispatch: ReturnType followUser: ReturnType['mutate'] - reportToSentry: QueryContextType['reportToSentry'] }) => { if (!outputMint || NON_FAN_CLUB_MINTS.includes(outputMint)) { return @@ -275,12 +272,7 @@ const autoFollowArtistOnCoinPurchase = async ({ source: FollowSource.OVERFLOW }) } catch (error) { - reportToSentry({ - name: 'AutoFollowArtistOnCoinPurchaseError', - error: error as Error, - feature: Feature.TanQuery, - additionalInfo: { outputMint } - }) + console.error('AutoFollowArtistOnCoinPurchaseError', error as Error) } } @@ -290,8 +282,7 @@ const autoFollowArtistOnCoinPurchase = async ({ */ export const useSwapCoins = () => { const queryClient = useQueryClient() - const { solanaWalletService, reportToSentry, audiusSdk, env } = - useQueryContext() + const { solanaWalletService, audiusSdk, env } = useQueryContext() const { data: user } = useCurrentAccountUser() const { coins } = useTradeableCoins() const dispatch = useDispatch() @@ -334,18 +325,17 @@ export const useSwapCoins = () => { errorStage = result.errorStage } - reportToSentry({ - name: `JupiterSwap${result.errorStage || errorStage}Error`, - error: new Error(result.error?.message || 'Unknown swap error'), - feature: Feature.TanQuery, - additionalInfo: { + console.error( + `JupiterSwap${result.errorStage || errorStage}Error`, + new Error(result.error?.message || 'Unknown swap error'), + { params, signature, errorStage: result.errorStage || errorStage, firstQuoteResponse: firstQuoteResult?.quote, secondQuoteResponse: secondQuoteResult?.quote } - }) + ) // Throw error so React Query calls onError instead of onSuccess throw new Error(result.error?.message || 'Swap failed') @@ -353,17 +343,12 @@ export const useSwapCoins = () => { return result } catch (error: unknown) { - reportToSentry({ - name: `JupiterSwap${errorStage}Error`, - error: error as Error, - feature: Feature.TanQuery, - additionalInfo: { - params, - signature, - errorStage, - firstQuoteResponse: firstQuoteResult?.quote, - secondQuoteResponse: secondQuoteResult?.quote - } + console.error(`JupiterSwap${errorStage}Error`, error, { + params, + signature, + errorStage, + firstQuoteResponse: firstQuoteResult?.quote, + secondQuoteResponse: secondQuoteResult?.quote }) return getSwapErrorResponse({ @@ -383,8 +368,7 @@ export const useSwapCoins = () => { queryClient, audiusSdk, dispatch, - followUser, - reportToSentry + followUser }) }, onMutate: () => { diff --git a/packages/common/src/api/tan-query/tracks/useDeleteTrack.ts b/packages/common/src/api/tan-query/tracks/useDeleteTrack.ts index acf8cd3be1b..d873ed25e1c 100644 --- a/packages/common/src/api/tan-query/tracks/useDeleteTrack.ts +++ b/packages/common/src/api/tan-query/tracks/useDeleteTrack.ts @@ -4,7 +4,6 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { useQueryContext } from '~/api/tan-query/utils' import { useAppContext } from '~/context/appContext' import { Name } from '~/models/Analytics' -import { Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { Track } from '~/models/Track' import { UserMetadata } from '~/models/User' @@ -27,7 +26,7 @@ type MutationContext = { } export const useDeleteTrack = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const { data: currentUserId } = useCurrentUserId() const { data: currentUser } = useUser(currentUserId) @@ -134,12 +133,7 @@ export const useDeleteTrack = () => { }) } - reportToSentry({ - error, - additionalInfo: { trackId }, - name: 'Delete Track', - feature: Feature.Edit - }) + console.error(error) } }) } diff --git a/packages/common/src/api/tan-query/tracks/useDownloadTrackStems.ts b/packages/common/src/api/tan-query/tracks/useDownloadTrackStems.ts index 1b402577157..ea3d4424e70 100644 --- a/packages/common/src/api/tan-query/tracks/useDownloadTrackStems.ts +++ b/packages/common/src/api/tan-query/tracks/useDownloadTrackStems.ts @@ -2,7 +2,6 @@ import { Id } from '@audius/sdk' import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' import { useQueryContext } from '~/api/tan-query/utils' -import { Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { QUERY_KEYS } from '../queryKeys' @@ -39,7 +38,7 @@ export const getDownloadTrackStemsQueryKey = (trackId: ID) => { } export const useDownloadTrackStems = ({ trackId }: { trackId: ID }) => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const { data: currentUserId } = useCurrentUserId() @@ -76,11 +75,7 @@ export const useDownloadTrackStems = ({ trackId }: { trackId: ID }) => { ) }, onError: (error) => { - reportToSentry({ - error, - name: 'Failed to initiate stems archive download', - feature: Feature.Remixes - }) + console.error(error) } }) } diff --git a/packages/common/src/api/tan-query/tracks/useFavoriteTrack.ts b/packages/common/src/api/tan-query/tracks/useFavoriteTrack.ts index 7ff9c3197f2..61cab5a2172 100644 --- a/packages/common/src/api/tan-query/tracks/useFavoriteTrack.ts +++ b/packages/common/src/api/tan-query/tracks/useFavoriteTrack.ts @@ -5,7 +5,6 @@ import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' import { useAppContext } from '~/context/appContext' import { Name } from '~/models/Analytics' -import { Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { Track } from '~/models/Track' import { accountActions } from '~/store/account' @@ -23,7 +22,7 @@ type FavoriteTrackArgs = { } export const useFavoriteTrack = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() const { data: currentUserId } = useCurrentUserId() @@ -151,7 +150,7 @@ export const useFavoriteTrack = () => { // Dispatch the saveTrackSucceeded action dispatch(tracksSocialActions.saveTrackSucceeded(trackId)) }, - onError: (error, { trackId }, context) => { + onError: (error, _args, context) => { if (!context) return // Revert optimistic updates @@ -162,12 +161,7 @@ export const useFavoriteTrack = () => { }) dispatch(accountActions.decrementTrackSaveCount()) - reportToSentry({ - error, - additionalInfo: { trackId }, - name: 'Favorite Track', - feature: Feature.Social - }) + console.error(error) } }) } diff --git a/packages/common/src/api/tan-query/tracks/useUnfavoriteTrack.ts b/packages/common/src/api/tan-query/tracks/useUnfavoriteTrack.ts index bb5ec596285..e741cee2594 100644 --- a/packages/common/src/api/tan-query/tracks/useUnfavoriteTrack.ts +++ b/packages/common/src/api/tan-query/tracks/useUnfavoriteTrack.ts @@ -5,7 +5,6 @@ import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' import { useAppContext } from '~/context/appContext' import { Name } from '~/models/Analytics' -import { Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { Track } from '~/models/Track' import { accountActions } from '~/store/account' @@ -25,7 +24,7 @@ export type UnfavoriteTrackArgs = { } export const useUnfavoriteTrack = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() const { data: currentUserId } = useCurrentUserId() @@ -122,7 +121,7 @@ export const useUnfavoriteTrack = () => { onSuccess: async (_, { trackId }) => { dispatch(tracksSocialActions.unsaveTrackSucceeded(trackId)) }, - onError: (error, { trackId }, context) => { + onError: (error, _args, context) => { if (!context) return // Revert optimistic updates @@ -133,12 +132,7 @@ export const useUnfavoriteTrack = () => { }) dispatch(accountActions.incrementTrackSaveCount()) - reportToSentry({ - error, - additionalInfo: { trackId }, - name: 'Unfavorite Track', - feature: Feature.Social - }) + console.error(error) } }) } diff --git a/packages/common/src/api/tan-query/tracks/useUpdateTrack.ts b/packages/common/src/api/tan-query/tracks/useUpdateTrack.ts index 2e6a77c1c4f..ee0f491b272 100644 --- a/packages/common/src/api/tan-query/tracks/useUpdateTrack.ts +++ b/packages/common/src/api/tan-query/tracks/useUpdateTrack.ts @@ -10,7 +10,6 @@ import { trackMetadataForUploadToSdk } from '~/adapters/track' import { useQueryContext } from '~/api/tan-query/utils' import { Track, UserTrackMetadata } from '~/models' import { Name } from '~/models/Analytics' -import { Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { TrackAccessType, @@ -103,7 +102,7 @@ const applyEditTrackFormatting = ( } export const useUpdateTrack = () => { - const { audiusSdk, reportToSentry, analytics } = useQueryContext() + const { audiusSdk, analytics } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() const store = useStore() @@ -148,12 +147,7 @@ export const useUpdateTrack = () => { ethAddress, recordAnalytics: analytics.track }).catch((error) => { - reportToSentry({ - error, - additionalInfo: { trackId, userId, ethAddress }, - feature: Feature.Edit, - name: 'Ensure USDC userbank on track edit' - }) + console.error(error) }) } @@ -334,7 +328,7 @@ export const useUpdateTrack = () => { ) } }, - onError: (error, { trackId, metadata }, context?: MutationContext) => { + onError: (error, { trackId }, context?: MutationContext) => { // If the mutation fails, roll back track data if (context?.previousTrack) { primeTrackData({ @@ -370,16 +364,7 @@ export const useUpdateTrack = () => { }) ) - reportToSentry({ - error, - additionalInfo: { - trackId, - userId, - metadata - }, - feature: Feature.Edit, - name: 'Edit Track' - }) + console.error(error) } }) } diff --git a/packages/common/src/api/tan-query/upload/usePublishCollection.ts b/packages/common/src/api/tan-query/upload/usePublishCollection.ts index 12a7bd0d3e1..f4f51089dd2 100644 --- a/packages/common/src/api/tan-query/upload/usePublishCollection.ts +++ b/packages/common/src/api/tan-query/upload/usePublishCollection.ts @@ -34,7 +34,7 @@ import { type PublishCollectionContext = Pick< QueryContextType, - 'audiusSdk' | 'analytics' | 'dispatch' | 'reportToSentry' + 'audiusSdk' | 'analytics' | 'dispatch' > & { userId: number } @@ -139,7 +139,7 @@ const getPublishCollectionOptions = (context: PublishCollectionContext) => export const usePublishCollection = ( options?: Partial> ) => { - const { audiusSdk, analytics, reportToSentry } = useQueryContext() + const { audiusSdk, analytics } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() const { data: account = null } = useCurrentAccount() @@ -152,8 +152,7 @@ export const usePublishCollection = ( audiusSdk, userId: userId!, dispatch, - analytics, - reportToSentry + analytics }), onSuccess: async (playlist) => { diff --git a/packages/common/src/api/tan-query/upload/usePublishStems.ts b/packages/common/src/api/tan-query/upload/usePublishStems.ts index 7437cacad5e..29a09705d4f 100644 --- a/packages/common/src/api/tan-query/upload/usePublishStems.ts +++ b/packages/common/src/api/tan-query/upload/usePublishStems.ts @@ -15,7 +15,7 @@ const { updateProgress } = uploadActions type PublishStemsContext = Pick< QueryContextType, - 'audiusSdk' | 'analytics' | 'dispatch' | 'reportToSentry' + 'audiusSdk' | 'analytics' | 'dispatch' > & { userId: number } diff --git a/packages/common/src/api/tan-query/upload/usePublishTracks.ts b/packages/common/src/api/tan-query/upload/usePublishTracks.ts index c34440e3f8c..3c5295d1a7f 100644 --- a/packages/common/src/api/tan-query/upload/usePublishTracks.ts +++ b/packages/common/src/api/tan-query/upload/usePublishTracks.ts @@ -5,8 +5,7 @@ import { trackMetadataForUploadToSdk } from '~/adapters' import { isContentUSDCPurchaseGated, type USDCPurchaseConditions, - Name, - Feature + Name } from '~/models' import { createUserBankIfNeeded } from '~/services/audius-backend' import { ProgressStatus, uploadActions } from '~/store' @@ -26,7 +25,7 @@ const { updateProgress } = uploadActions type PublishTracksContext = Pick< QueryContextType, - 'audiusSdk' | 'analytics' | 'dispatch' | 'reportToSentry' + 'audiusSdk' | 'analytics' | 'dispatch' > & { userId: number ethAddress?: string | null @@ -51,7 +50,6 @@ export const publishTracks = async ( kind, audiusSdk, dispatch, - reportToSentry, analytics: { make, track } } = context @@ -74,12 +72,7 @@ export const publishTracks = async ( ethAddress, recordAnalytics: track }).catch((error) => { - reportToSentry({ - error, - additionalInfo: { userId, ethAddress }, - feature: Feature.Upload, - name: 'Ensure USDC userbank on track upload' - }) + console.error(error) }) } @@ -147,11 +140,7 @@ export const publishTracks = async ( progress: { status: ProgressStatus.ERROR } }) ) - reportToSentry({ - error: e as Error, - name: 'Upload: Track Publish', - feature: Feature.Upload - }) + console.error('Upload: Track Publish', e as Error) console.error('Error publishing track:', e) return { result: null, error: e as Error } } diff --git a/packages/common/src/api/tan-query/upload/useUpload.ts b/packages/common/src/api/tan-query/upload/useUpload.ts index a05e5ddedc1..54dcaf50307 100644 --- a/packages/common/src/api/tan-query/upload/useUpload.ts +++ b/packages/common/src/api/tan-query/upload/useUpload.ts @@ -4,12 +4,7 @@ import { HashId, type UploadTrackFilesTask } from '@audius/sdk' import { useDispatch } from 'react-redux' import { fileToSdk } from '~/adapters' -import { - Name, - type StemUploadWithFile, - isContentFollowGated, - Feature -} from '~/models' +import { Name, type StemUploadWithFile, isContentFollowGated } from '~/models' import { type TrackForUpload, uploadActions, @@ -165,8 +160,7 @@ export const useUpload = ( const dispatch = useDispatch() const { audiusSdk, - analytics: { make, track }, - reportToSentry + analytics: { make, track } } = useQueryContext() const { mutateAsync: publishTracksAsync } = usePublishTracks() @@ -524,19 +518,7 @@ export const useUpload = ( kind: uploadType === UploadType.ALBUM ? 'album' : 'playlist' }) ) - reportToSentry({ - error: err as Error, - name: 'Upload: Collection Publish', - additionalInfo: { - collectionType: uploadType, - trackCount: tracks.length, - tracks: tracks.map((t) => ({ - title: t.metadata.title, - hasStems: !!t.metadata.stems?.length - })) - }, - feature: Feature.Upload - }) + console.error('Upload: Collection Publish', err as Error) dispatch(uploadTracksFailed()) onError?.(err as Error) } @@ -552,7 +534,6 @@ export const useUpload = ( publishTracksAsync, uploadCollectionArtwork, publishCollectionAsync, - reportToSentry, onError, onSuccess ] diff --git a/packages/common/src/api/tan-query/upload/useUploadFiles.ts b/packages/common/src/api/tan-query/upload/useUploadFiles.ts index e623bb9cfb0..f6443155477 100644 --- a/packages/common/src/api/tan-query/upload/useUploadFiles.ts +++ b/packages/common/src/api/tan-query/upload/useUploadFiles.ts @@ -2,7 +2,6 @@ import { useCallback } from 'react' import type { UploadTrackFilesTask } from '@audius/sdk' -import { Feature } from '~/models' import { uploadActions, ProgressStatus } from '~/store' import { useQueryContext } from '../utils' @@ -13,7 +12,7 @@ type UploadTrackFilesTaskWithClientId = UploadTrackFilesTask & { } export const useUploadFiles = () => { - const { dispatch, reportToSentry } = useQueryContext() + const { dispatch } = useQueryContext() const uploadFiles = useCallback( async (tasks: UploadTrackFilesTaskWithClientId[]) => { return await Promise.all( @@ -30,11 +29,7 @@ export const useUploadFiles = () => { progress: { status: ProgressStatus.ERROR } }) ) - reportToSentry({ - error: e as Error, - name: 'Upload: Upload Track File', - feature: Feature.Upload - }) + console.error('Upload: Upload Track File', e as Error) return { clientId: u.clientId, audioUploadResponse: null, @@ -45,7 +40,7 @@ export const useUploadFiles = () => { }) ) }, - [dispatch, reportToSentry] + [dispatch] ) return uploadFiles } diff --git a/packages/common/src/api/tan-query/users/account/useResendRecoveryEmail.ts b/packages/common/src/api/tan-query/users/account/useResendRecoveryEmail.ts index 483a5dca322..0422095cdab 100644 --- a/packages/common/src/api/tan-query/users/account/useResendRecoveryEmail.ts +++ b/packages/common/src/api/tan-query/users/account/useResendRecoveryEmail.ts @@ -11,8 +11,7 @@ import { useQueryContext } from '../../utils' * packages/web/src/common/store/recovery-email/sagas.ts. */ export const useResendRecoveryEmail = () => { - const { authService, identityService, analytics, reportToSentry } = - useQueryContext() + const { authService, identityService, analytics } = useQueryContext() const { getHostUrl } = useAppContext() return useMutation({ @@ -33,10 +32,10 @@ export const useResendRecoveryEmail = () => { ) }, onError: (error) => { - reportToSentry({ - error: error instanceof Error ? error : new Error(String(error)), - name: 'Resend Recovery: Failed to send recovery email' - }) + console.error( + 'Resend Recovery: Failed to send recovery email', + error instanceof Error ? error : new Error(String(error)) + ) } }) } diff --git a/packages/common/src/api/tan-query/users/useFollowUser.ts b/packages/common/src/api/tan-query/users/useFollowUser.ts index 412373c322f..4411ce22c91 100644 --- a/packages/common/src/api/tan-query/users/useFollowUser.ts +++ b/packages/common/src/api/tan-query/users/useFollowUser.ts @@ -6,7 +6,6 @@ import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils' import { useAppContext } from '~/context/appContext' import { Name, FollowSource } from '~/models/Analytics' -import { Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { UserMetadata } from '~/models/User' @@ -26,7 +25,7 @@ type MutationContext = { } export const useFollowUser = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const { data: currentUserId } = useCurrentUserId() const { @@ -115,11 +114,7 @@ export const useFollowUser = () => { return { previousUser } }, - onError: ( - error, - { followeeUserId }, - context: MutationContext | undefined - ) => { + onError: (error, _args, context: MutationContext | undefined) => { const { previousUser } = context ?? {} if (previousUser) { @@ -130,14 +125,7 @@ export const useFollowUser = () => { }) } - reportToSentry({ - error, - additionalInfo: { - followeeUserId - }, - feature: Feature.Social, - name: 'Follow User' - }) + console.error(error) } }) } diff --git a/packages/common/src/api/tan-query/users/useUnfollowUser.ts b/packages/common/src/api/tan-query/users/useUnfollowUser.ts index 474b3fbaecd..ddcb2650176 100644 --- a/packages/common/src/api/tan-query/users/useUnfollowUser.ts +++ b/packages/common/src/api/tan-query/users/useUnfollowUser.ts @@ -5,7 +5,6 @@ import { useDispatch } from 'react-redux' import { useQueryContext } from '~/api/tan-query/utils/QueryContext' import { useAppContext } from '~/context/appContext' import { Name, FollowSource } from '~/models/Analytics' -import { Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { UserMetadata } from '~/models/User' import { removeFolloweeId } from '~/store/gated-content/slice' @@ -25,7 +24,7 @@ type MutationContext = { } export const useUnfollowUser = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const dispatch = useDispatch() const { @@ -104,11 +103,7 @@ export const useUnfollowUser = () => { return { previousUser } }, - onError: ( - error, - { followeeUserId }, - context: MutationContext | undefined - ) => { + onError: (error, _args, context: MutationContext | undefined) => { const { previousUser } = context ?? {} if (previousUser) { @@ -119,14 +114,7 @@ export const useUnfollowUser = () => { }) } - reportToSentry({ - error, - additionalInfo: { - followeeUserId - }, - feature: Feature.Social, - name: 'Unfollow User' - }) + console.error(error) } }) } diff --git a/packages/common/src/api/tan-query/users/useUpdateProfile.ts b/packages/common/src/api/tan-query/users/useUpdateProfile.ts index 1c6c7a7dbcc..61e04fcaeb9 100644 --- a/packages/common/src/api/tan-query/users/useUpdateProfile.ts +++ b/packages/common/src/api/tan-query/users/useUpdateProfile.ts @@ -3,7 +3,6 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { userMetadataToSdk } from '~/adapters/user' import { primeUserData, useQueryContext } from '~/api/tan-query/utils' -import { Feature } from '~/models/ErrorReporting' import { UserMetadata, WriteableUserMetadata } from '~/models/User' import { dataURLtoFile } from '~/utils' import { squashNewLines } from '~/utils/formatUtil' @@ -16,7 +15,7 @@ export type MutationContext = { } export const useUpdateProfile = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() const { data: currentUserId } = useCurrentUserId() @@ -92,14 +91,7 @@ export const useUpdateProfile = () => { }) } - reportToSentry({ - error, - additionalInfo: { - metadata - }, - feature: Feature.Edit, - name: 'Edit Profile' - }) + console.error(error) }, onSettled: (_, __) => { // Always refetch after error or success to ensure cache is in sync with server diff --git a/packages/common/src/api/tan-query/utils/QueryContext.ts b/packages/common/src/api/tan-query/utils/QueryContext.ts index abafa33581b..4a5d81f9891 100644 --- a/packages/common/src/api/tan-query/utils/QueryContext.ts +++ b/packages/common/src/api/tan-query/utils/QueryContext.ts @@ -16,8 +16,7 @@ import { import { AllTrackingEvents, AnalyticsEvent, - IdentifyTraits, - ReportToSentryArgs + IdentifyTraits } from '../../../models' export type QueryContextType = { @@ -27,7 +26,6 @@ export type QueryContextType = { solanaWalletService: SolanaWalletService identityService: IdentityService dispatch: Dispatch - reportToSentry: (args: ReportToSentryArgs) => void env: Env fetch: typeof fetch remoteConfigInstance: RemoteConfigInstance @@ -96,8 +94,6 @@ export function* getQueryContext(): Generator { remoteConfigInstance: yield* getContext< QueryContextType['remoteConfigInstance'] >('remoteConfigInstance'), - reportToSentry: - yield* getContext('reportToSentry'), analytics: yield* getContext('analytics'), nftClient: null, imageUtils: yield* getContext('imageUtils') diff --git a/packages/common/src/api/tan-query/utils/defaultConfig.ts b/packages/common/src/api/tan-query/utils/defaultConfig.ts index 2c34fb97402..f610f48879d 100644 --- a/packages/common/src/api/tan-query/utils/defaultConfig.ts +++ b/packages/common/src/api/tan-query/utils/defaultConfig.ts @@ -1,11 +1,5 @@ import { Query, QueryKey } from '@tanstack/react-query' -import { - ErrorLevel, - Feature, - ReportToSentryArgs -} from '~/models/ErrorReporting' - export const MAX_RETRIES = 3 export const HTTP_STATUSES_TO_NOT_RETRY = [400, 401, 403, 404] @@ -24,26 +18,15 @@ export const defaultRetryConfig = (failureCount: number, error: any) => { return true } -type ReportToSentry = (args: ReportToSentryArgs) => Promise - export const queryErrorHandler = ( err: unknown, - query: Query, - reportToSentry: ReportToSentry + query: Query ) => { const error = err instanceof Error ? err : new Error(String(err)) - reportToSentry({ - error, - level: ErrorLevel.Error, - feature: Feature.TanQuery, - name: `Query Error: ${query.queryKey[0] as string}`, - additionalInfo: { - queryHookMetadata: { - queryKey: query.queryKey, - isActive: query.isActive, - isStale: query.isStale, - isDisabled: query.isDisabled - } - } + console.error(`Query Error: ${query.queryKey[0] as string}`, error, { + queryKey: query.queryKey, + isActive: query.isActive, + isStale: query.isStale, + isDisabled: query.isDisabled }) } diff --git a/packages/common/src/api/tan-query/wallets/useAssociatedWallets.ts b/packages/common/src/api/tan-query/wallets/useAssociatedWallets.ts index 3d7deac1368..26e42c63fa9 100644 --- a/packages/common/src/api/tan-query/wallets/useAssociatedWallets.ts +++ b/packages/common/src/api/tan-query/wallets/useAssociatedWallets.ts @@ -90,7 +90,7 @@ type AddConnectedWalletParams = { export const useAddAssociatedWallet = () => { const queryClient = useQueryClient() - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const { data: currentUserId = null } = useCurrentUserId() // for priming cache @@ -150,10 +150,7 @@ export const useAddAssociatedWallet = () => { getConnectedWalletsQueryKey({ userId: currentUserId }), context?.previousAssociatedWallets ) - reportToSentry({ - error, - name: 'Add Connected Wallet' - }) + console.error(error) } }) } @@ -164,7 +161,7 @@ export type RemoveConnectedWalletParams = { export const useRemoveAssociatedWallet = () => { const queryClient = useQueryClient() - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const { data: currentUserId } = useCurrentUserId() // for priming cache @@ -217,10 +214,7 @@ export const useRemoveAssociatedWallet = () => { type: 'error' }) ) - reportToSentry({ - error, - name: 'Remove Connected Wallet' - }) + console.error(error) } }) } diff --git a/packages/common/src/api/tan-query/wallets/useAudioBalance.ts b/packages/common/src/api/tan-query/wallets/useAudioBalance.ts index 66d895d5ea6..36201abbdcf 100644 --- a/packages/common/src/api/tan-query/wallets/useAudioBalance.ts +++ b/packages/common/src/api/tan-query/wallets/useAudioBalance.ts @@ -16,7 +16,6 @@ import { type QueryContextType } from '~/api/tan-query/utils/QueryContext' import { Chain, ID } from '~/models' -import { Feature } from '~/models/ErrorReporting' import { toErrorWithMessage } from '~/utils/error' import { QUERY_KEYS } from '../queryKeys' @@ -43,7 +42,7 @@ export const getWalletAudioBalanceQueryKey = ({ type FetchAudioBalanceContext = Pick< QueryContextType, - 'audiusSdk' | 'audiusBackend' | 'reportToSentry' + 'audiusSdk' | 'audiusBackend' > const getWalletAudioBalanceQueryFn = @@ -54,7 +53,7 @@ const getWalletAudioBalanceQueryFn = ReturnType >) => { const [_ignored, chain, address, { includeStaked }] = queryKey - const { audiusSdk, audiusBackend, reportToSentry } = context + const { audiusSdk, audiusBackend } = context try { const sdk = await audiusSdk() if (chain === Chain.Eth) { @@ -81,12 +80,7 @@ const getWalletAudioBalanceQueryFn = return AUDIO(wAUDIO(BigInt(wAudioSolBalance.toString()))).value } } catch (error) { - reportToSentry({ - error: toErrorWithMessage(error), - name: 'AudioBalanceFetchError', - feature: Feature.TanQuery, - additionalInfo: { address, chain } - }) + console.error('AudioBalanceFetchError', toErrorWithMessage(error)) throw error } } diff --git a/packages/common/src/api/tan-query/wallets/useExternalWalletBalance.ts b/packages/common/src/api/tan-query/wallets/useExternalWalletBalance.ts index 1eec95ec376..9c8798e17e0 100644 --- a/packages/common/src/api/tan-query/wallets/useExternalWalletBalance.ts +++ b/packages/common/src/api/tan-query/wallets/useExternalWalletBalance.ts @@ -9,7 +9,6 @@ import { useQueryContext, type QueryContextType } from '~/api/tan-query/utils/QueryContext' -import { Feature } from '~/models/ErrorReporting' import { TOKEN_LISTING_MAP } from '~/store' import { toErrorWithMessage } from '~/utils/error' @@ -47,11 +46,11 @@ export const getExternalWalletBalanceQueryKey = ({ type FetchExternalWalletBalanceContext = Pick< QueryContextType, - 'audiusSdk' | 'env' | 'reportToSentry' + 'audiusSdk' | 'env' > const getExternalWalletBalanceQueryFn = - (context: FetchExternalWalletBalanceContext) => + (_context: FetchExternalWalletBalanceContext) => async ({ queryKey }: QueryFunctionContext< @@ -61,7 +60,6 @@ const getExternalWalletBalanceQueryFn = if (!walletAddress || !mint) { throw new Error('Wallet address and mint are required') } - const { reportToSentry } = context try { // Call Jupiter API to get balances const response = await fetch( @@ -93,12 +91,10 @@ const getExternalWalletBalanceQueryFn = // Convert raw balance to FixedDecimal with proper decimals return new FixedDecimal(tokenBalance.uiAmount, tokenBalance.decimals) } catch (error) { - reportToSentry({ - error: toErrorWithMessage(error), - name: 'ExternalWalletBalanceFetchError', - feature: Feature.TanQuery, - additionalInfo: { walletAddress, mint } - }) + console.error( + 'ExternalWalletBalanceFetchError', + toErrorWithMessage(error) + ) throw error } } diff --git a/packages/common/src/api/tan-query/wallets/useSendCoins.ts b/packages/common/src/api/tan-query/wallets/useSendCoins.ts index 0e999a6e23d..07f1c1a0743 100644 --- a/packages/common/src/api/tan-query/wallets/useSendCoins.ts +++ b/packages/common/src/api/tan-query/wallets/useSendCoins.ts @@ -38,8 +38,7 @@ export type SendCoinsResult = { */ export const useSendCoins = ({ mint }: { mint: string }) => { const queryClient = useQueryClient() - const { audiusBackend, audiusSdk, reportToSentry, analytics, env } = - useQueryContext() + const { audiusBackend, audiusSdk, analytics, env } = useQueryContext() const { data: walletAddresses } = useWalletAddresses() const { data: currentUser } = useCurrentAccountUser() @@ -203,16 +202,10 @@ export const useSendCoins = ({ mint }: { mint: string }) => { } } - if (reportToSentry) { - reportToSentry({ - error: error instanceof Error ? error : new Error(error as string), - name: 'Send Coins', - additionalInfo: { - amount: amount.toString(), - mint - } - }) - } + console.error( + 'Send Coins', + error instanceof Error ? error : new Error(error as string) + ) } }) } diff --git a/packages/common/src/hooks/chats/useSetInboxPermissions.ts b/packages/common/src/hooks/chats/useSetInboxPermissions.ts index bf0c34d2ef7..f7ac1fa37ab 100644 --- a/packages/common/src/hooks/chats/useSetInboxPermissions.ts +++ b/packages/common/src/hooks/chats/useSetInboxPermissions.ts @@ -18,7 +18,7 @@ const { fetchPermissions } = chatActions const { getChatPermissionsStatus, getUserChatPermissions } = chatSelectors export const useSetInboxPermissions = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const dispatch = useDispatch() const { data: userId } = useCurrentUserId() const permissions = useSelector((state: CommonState) => @@ -50,10 +50,7 @@ export const useSetInboxPermissions = () => { }) ) } catch (e) { - reportToSentry({ - name: 'Chats', - error: e as Error - }) + console.error('Chats', e as Error) track( make({ eventName: Name.CHANGE_INBOX_SETTINGS_FAILURE, @@ -62,7 +59,7 @@ export const useSetInboxPermissions = () => { ) } }, - [audiusSdk, doFetchPermissions, track, make, reportToSentry] + [audiusSdk, doFetchPermissions, track, make] ) return { diff --git a/packages/common/src/hooks/useChangeEmailFormConfiguration.ts b/packages/common/src/hooks/useChangeEmailFormConfiguration.ts index 26533eb937a..4167a55b851 100644 --- a/packages/common/src/hooks/useChangeEmailFormConfiguration.ts +++ b/packages/common/src/hooks/useChangeEmailFormConfiguration.ts @@ -71,7 +71,6 @@ export const useChangeEmailFormConfiguration = (onComplete: () => void) => { () => toFormikValidationSchema(emailSchema(queryContext, queryClient)), [queryContext, queryClient] ) - const reportToSentry = queryContext.reportToSentry const validationSchema = page === ChangeEmailPage.ConfirmPassword @@ -136,11 +135,11 @@ export const useChangeEmailFormConfiguration = (onComplete: () => void) => { } else { helpers.setFieldError('otp', messages.somethingWrong) helpers.setFieldError('email', messages.somethingWrong) - reportToSentry({ error: e as Error, name: 'ChangeEmail' }) + console.error('ChangeEmail', e as Error) } } }, - [setPage, onComplete, authService, reportToSentry] + [setPage, onComplete, authService] ) const onSubmit = useCallback( diff --git a/packages/common/src/hooks/useShareAction.ts b/packages/common/src/hooks/useShareAction.ts index 2c37cd539e9..aba50855e79 100644 --- a/packages/common/src/hooks/useShareAction.ts +++ b/packages/common/src/hooks/useShareAction.ts @@ -5,9 +5,9 @@ import { Id } from '@audius/sdk' import { useCurrentUserId } from '~/api/tan-query/users/account/useCurrentUserId' import { useQueryContext } from '~/api/tan-query/utils/QueryContext' -/** Sends an EntityManager share action. Fire and forget. Will report to sentry if it fails. */ +/** Sends an EntityManager share action. Fire and forget. Logs to console if it fails. */ export const useShareAction = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const { data: userId } = useCurrentUserId() return useCallback( @@ -34,17 +34,12 @@ export const useShareAction = () => { }) } } catch (error) { - reportToSentry({ - error: error as Error, - name: 'Failed to send EntityManager share action', - additionalInfo: { - userId, - entityId, - entityType - } - }) + console.error( + 'Failed to send EntityManager share action', + error as Error + ) } }, - [audiusSdk, userId, reportToSentry] + [audiusSdk, userId] ) } diff --git a/packages/common/src/models/ErrorReporting.ts b/packages/common/src/models/ErrorReporting.ts deleted file mode 100644 index cc619255850..00000000000 --- a/packages/common/src/models/ErrorReporting.ts +++ /dev/null @@ -1,84 +0,0 @@ -export enum ErrorLevel { - /** - * FATAL - * What to use for: anything that results in app crash / "Something went wrong" - * These are high prio for on-call to look into, and generally should trigger an alert of some kind. - * Applies to scenarios that are completely unrecoverable other than to refresh client - */ - 'Fatal' = 'Fatal', - - /** - * ERROR - * What to use for: Unexpected breakage but recoverable for the user. - * e.g. click button but fails & shows error toast. Generally applies things that can be "retried" by the user - */ - 'Error' = 'Error', - - /** - * WARNING - * What to use for: Something not ideal but within realm of expected behavior - * e.g. api call failure - */ - 'Warning' = 'Warning', - - // Misc levels that we generally don't use with sentry since we typically send these to generic console - 'Debug' = 'Debug', - 'Info' = 'Info', - 'Log' = 'Log' -} -export type AdditionalErrorReportInfo = Record - -/** - * Areas of our app that we want to group sentry logs together in - * Used to create query-able sentry tags - */ -export enum Feature { - SignUp = 'sign-up', - SignIn = 'sign-in', - Upload = 'upload', - Playback = 'playback', - Purchase = 'purchase', - Comments = 'comments', - Chats = 'chats', - Social = 'social', - Notifications = 'notifications', - Rewards = 'rewards', - Edit = 'edit', - Events = 'events', - Remixes = 'remixes', - TanQuery = 'tan-query', - SendTokens = 'send-tokens', - FanClubs = 'fan-clubs' -} - -export type ReportToSentryArgs = { - /** - * The raw JS `Error` to report to sentry. Note: strings are not allowed; - * if you don't have an error object to log just create one via new Error('message') - */ - error: Error - /** - * The severity level that we should report to sentry - * Defaults to ErrorLevel.Error - */ - level?: ErrorLevel - /** - * Any additional info to report (can be any object, but ) - * is generally the right way to report. - */ - additionalInfo?: AdditionalErrorReportInfo - /** - * An optional name to assign to the Error - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name - */ - name?: string - /** - * Adds queryable sentry tags - * https://docs.sentry.io/platforms/javascript/enriching-events/tags/ - */ - tags?: Record - /** - * Which core flow of the app the error should be bucketed in - */ - feature?: Feature -} diff --git a/packages/common/src/models/index.ts b/packages/common/src/models/index.ts index 72f892aa328..40d7610b4b3 100644 --- a/packages/common/src/models/index.ts +++ b/packages/common/src/models/index.ts @@ -9,7 +9,6 @@ export * from './Collection' export * from './Color' export * from './DogEar' export * from './DownloadQuality' -export * from './ErrorReporting' export * from './Favorite' export * from './FeedFilter' export * from './FeedTab' diff --git a/packages/common/src/services/audius-backend/AudiusBackend.ts b/packages/common/src/services/audius-backend/AudiusBackend.ts index 180bcabbeda..3e61f8db9b5 100644 --- a/packages/common/src/services/audius-backend/AudiusBackend.ts +++ b/packages/common/src/services/audius-backend/AudiusBackend.ts @@ -28,7 +28,6 @@ import dayjs from '~/utils/dayjs' import { ID, ComputedUserProperties, WriteableUserMetadata } from '../../models' import { AnalyticsEvent } from '../../models/Analytics' -import { ReportToSentryArgs } from '../../models/ErrorReporting' import * as schemas from '../../schemas' import { FeatureFlags, @@ -124,12 +123,7 @@ type AudiusBackendParams = { nativeMobile: Maybe recaptchaSiteKey: Maybe recordAnalytics: (event: AnalyticsEvent, callback?: () => void) => void - reportError: ({ - level, - additionalInfo, - error, - name - }: ReportToSentryArgs) => void | Promise + reportError: (args: { error: Error }) => void | Promise registryAddress: Maybe entityManagerAddress: Maybe remoteConfigInstance: RemoteConfigInstance diff --git a/packages/common/src/services/env.ts b/packages/common/src/services/env.ts index d7d9f805ba1..eac4c2418e4 100644 --- a/packages/common/src/services/env.ts +++ b/packages/common/src/services/env.ts @@ -61,7 +61,6 @@ export type Env = { REOWN_PROJECT_ID: string SAFARI_WEB_PUSH_ID: string SCHEME: string - SENTRY_DSN: string SOL_BRIDGE_ADDRESS: Nullable SOL_TOKEN_BRIDGE_ADDRESS: Nullable SOLANA_CLUSTER_ENDPOINT: string diff --git a/packages/common/src/services/remote-config/defaults.ts b/packages/common/src/services/remote-config/defaults.ts index 31277de6989..f204018b946 100644 --- a/packages/common/src/services/remote-config/defaults.ts +++ b/packages/common/src/services/remote-config/defaults.ts @@ -90,8 +90,7 @@ export const remoteConfigDoubleDefaults: { [key in DoubleKeys]: number | null } = { [DoubleKeys.SHOW_ARTIST_RECOMMENDATIONS_FALLBACK_PERCENT]: 0.3333, - [DoubleKeys.SHOW_ARTIST_RECOMMENDATIONS_PERCENT]: 1.0, - [DoubleKeys.SENTRY_REPLAY_ERROR_SAMPLE_RATE]: 0.0 + [DoubleKeys.SHOW_ARTIST_RECOMMENDATIONS_PERCENT]: 1.0 } export const remoteConfigBooleanDefaults: { [key in BooleanKeys]: boolean | null diff --git a/packages/common/src/services/remote-config/types.ts b/packages/common/src/services/remote-config/types.ts index deaf39200f3..e3feca2ce87 100644 --- a/packages/common/src/services/remote-config/types.ts +++ b/packages/common/src/services/remote-config/types.ts @@ -244,10 +244,7 @@ export enum DoubleKeys { /** * How often we should show suggested follows after a user follows another user */ - SHOW_ARTIST_RECOMMENDATIONS_PERCENT = 'SHOW_ARTIST_RECOMMENDATIONS_PERCENT', - - /** How many Sentry error recordings we sample. Value ranges from 0.0-1.0 */ - SENTRY_REPLAY_ERROR_SAMPLE_RATE = 'SENTRY_REPLAY_ERROR_SAMPLE_RATE' + SHOW_ARTIST_RECOMMENDATIONS_PERCENT = 'SHOW_ARTIST_RECOMMENDATIONS_PERCENT' } export enum StringKeys { diff --git a/packages/common/src/store/account/sagas.ts b/packages/common/src/store/account/sagas.ts index e4f427ab383..18ee14e2e0a 100644 --- a/packages/common/src/store/account/sagas.ts +++ b/packages/common/src/store/account/sagas.ts @@ -19,7 +19,7 @@ import { getWalletAccountSaga } from '~/api' import { getAccountStatusQueryKey } from '~/api/tan-query/users/account/useAccountStatus' -import { AccountUserMetadata, ErrorLevel, Status, UserMetadata } from '~/models' +import { AccountUserMetadata, Status, UserMetadata } from '~/models' import { getContext } from '~/store/effects' import { chatActions } from '~/store/pages/chat' import { UPLOAD_TRACKS_SUCCEEDED } from '~/store/upload/actions' @@ -84,28 +84,6 @@ function* handleUploadTrack() { yield* put(setHasTracks(true)) } -/** - * Sets the sentry user so that alerts are tied to a user - */ -function* setSentryUser( - user: Pick, - traits: Record -) { - const sentry = yield* getContext('sentry') - if (traits.isVerified) { - sentry.setTag('isVerified', `${traits.isVerified}`) - } - if (traits.managerUserId) { - sentry.setTag('isManagerMode', 'true') - } - const scope = sentry.getCurrentScope() - scope.setUser({ - id: `${user.user_id}`, - username: user.handle, - ...traits - }) -} - function* initializeMetricsForUser({ accountUser, web3WalletAddress @@ -165,7 +143,6 @@ function* initializeMetricsForUser({ } yield* call([analytics, analytics.identify], traits) - yield* call(setSentryUser, accountUser, traits) } } @@ -177,7 +154,6 @@ export function* fetchAccountAsync({ const audiusBackendInstance = yield* getContext('audiusBackendInstance') const remoteConfigInstance = yield* getContext('remoteConfigInstance') const localStorage = yield* getContext('localStorage') - const reportToSentry = yield* getContext('reportToSentry') const sdk = yield* getSDK() const queryClient = yield* getContext('queryClient') @@ -202,10 +178,7 @@ export function* fetchAccountAsync({ wallet = accountWalletAddressOverride ?? web3WalletAddress } catch (e) { if (!(e instanceof HedgehogWalletNotFoundError)) { - yield* call(reportToSentry, { - name: 'FetchAccountAsync', - error: e as Error - }) + console.error('FetchAccountAsync', e) } } if (!wallet || !web3WalletAddress) { @@ -261,10 +234,7 @@ export function* fetchAccountAsync({ try { yield* call(recordIPIfNotRecent, user.handle) } catch (e) { - yield* call(reportToSentry, { - name: 'FetchAccountAsync', - error: e as Error - }) + console.error('FetchAccountAsync', e) } } @@ -315,7 +285,6 @@ export function* fetchAccountAsync({ function* fetchLocalAccountAsync() { const localStorage = yield* getContext('localStorage') - const reportToSentry = yield* getContext('reportToSentry') const sdk = yield* getSDK() const queryClient = yield* getContext('queryClient') @@ -345,10 +314,7 @@ function* fetchLocalAccountAsync() { wallet = accountWalletAddressOverride ?? web3WalletAddress } catch (e) { if (!(e instanceof HedgehogWalletNotFoundError)) { - yield* call(reportToSentry, { - name: 'FetchLocalAccountAsync', - error: e as Error - }) + console.error('FetchLocalAccountAsync', e) } } @@ -428,21 +394,15 @@ function* recordIPIfNotRecent(handle: string): SagaIterator { function* associateTwitterAccount(action: ReturnType) { const { uuid: twitterId, profile } = action.payload const identityService = yield* getContext('identityService') - const reportToSentry = yield* getContext('reportToSentry') const queryClient = yield* getContext('queryClient') const userId = yield* call(queryCurrentUserId) const accountUser = yield* call(queryAccountUser) const handle = accountUser?.handle if (!userId || !handle) { - reportToSentry({ - error: new Error('Missing userId or handle'), - name: 'Failed to associate Twitter Account', - additionalInfo: { - handle, - userId, - twitterId - } - }) + console.error( + 'Failed to associate Twitter Account', + new Error('Missing userId or handle') + ) return } @@ -464,36 +424,22 @@ function* associateTwitterAccount(action: ReturnType) { } } catch (err) { const error = err instanceof Error ? err : new Error(err as string) - reportToSentry({ - error, - name: 'Failed to associate Twitter Account', - additionalInfo: { - handle, - userId, - twitterId - } - }) + console.error(error) } } function* associateInstagramAccount(action: ReturnType) { const { uuid: instagramId, profile } = action.payload const identityService = yield* getContext('identityService') - const reportToSentry = yield* getContext('reportToSentry') const queryClient = yield* getContext('queryClient') const userId = yield* call(queryCurrentUserId) const accountUser = yield* call(queryAccountUser) const handle = accountUser?.handle if (!userId || !handle) { - reportToSentry({ - error: new Error('Missing userId or handle'), - name: 'Failed to associate Instagram Account', - additionalInfo: { - handle, - userId, - instagramId - } - }) + console.error( + 'Failed to associate Instagram Account', + new Error('Missing userId or handle') + ) return } @@ -515,36 +461,22 @@ function* associateInstagramAccount(action: ReturnType) { } } catch (err) { const error = err instanceof Error ? err : new Error(err as string) - reportToSentry({ - error, - name: 'Failed to associate Instagram Account', - additionalInfo: { - handle, - userId, - instagramId - } - }) + console.error(error) } } function* associateTikTokAccount(action: ReturnType) { const { uuid: tikTokId, profile } = action.payload const identityService = yield* getContext('identityService') - const reportToSentry = yield* getContext('reportToSentry') const queryClient = yield* getContext('queryClient') const userId = yield* call(queryCurrentUserId) const accountUser = yield* call(queryAccountUser) const handle = accountUser?.handle if (!userId || !handle) { - reportToSentry({ - error: new Error('Missing userId or handle'), - name: 'Failed to associate TikTok Account', - additionalInfo: { - handle, - userId, - tikTokId - } - }) + console.error( + 'Failed to associate TikTok Account', + new Error('Missing userId or handle') + ) return } @@ -566,15 +498,7 @@ function* associateTikTokAccount(action: ReturnType) { } } catch (err) { const error = err instanceof Error ? err : new Error(err as string) - reportToSentry({ - error, - name: 'Failed to associate TikTok Account', - additionalInfo: { - handle, - userId, - tikTokId - } - }) + console.error(error) } } @@ -596,12 +520,9 @@ function* watchFetchAccountFailed() { fetchAccountFailed.type, function* (action: ReturnType) { const userId = yield* call(queryCurrentUserId) - const reportToSentry = yield* getContext('reportToSentry') if (userId) { - yield* call(reportToSentry, { - level: ErrorLevel.Error, - error: new Error(`Fetch account failed: ${action.payload.reason}`), - additionalInfo: { userId } + console.error(`Fetch account failed: ${action.payload.reason}`, { + userId }) } } diff --git a/packages/common/src/store/buy-usdc/sagas.ts b/packages/common/src/store/buy-usdc/sagas.ts index 5416392dd91..abe58ddeaeb 100644 --- a/packages/common/src/store/buy-usdc/sagas.ts +++ b/packages/common/src/store/buy-usdc/sagas.ts @@ -12,7 +12,6 @@ import { call, put, race, take, takeLeading } from 'typed-redux-saga' import { queryHasAccount, queryAccountUser, queryWalletAddresses } from '~/api' import { Name } from '~/models/Analytics' -import { ErrorLevel } from '~/models/ErrorReporting' import { PurchaseVendor } from '~/models/PurchaseContent' import { Status } from '~/models/Status' import { StringUSDC } from '~/models/Wallet' @@ -217,7 +216,6 @@ function* doBuyUSDC({ portalHostName } }: ReturnType) { - const reportToSentry = yield* getContext('reportToSentry') const { track, make } = yield* getContext('analytics') const solanaWalletService = yield* getContext('solanaWalletService') const config = yield* call(getBuyUSDCRemoteConfig) @@ -336,11 +334,7 @@ function* doBuyUSDC({ e instanceof BuyUSDCError ? e : new BuyUSDCError(BuyUSDCErrorCode.OnrampError, `${e}`) - yield* call(reportToSentry, { - level: ErrorLevel.Error, - error, - additionalInfo: { userBank } - }) + console.error('BuyUSDC onramp failed', error, { userBank }) yield* put(buyUSDCFlowFailed({ error })) yield* call( track, @@ -359,7 +353,6 @@ function* recoverPurchaseIfNecessary() { const hasAccount = yield* call(queryHasAccount) if (!hasAccount) return - const reportToSentry = yield* getContext('reportToSentry') const { track, make } = yield* getContext('analytics') const audiusBackendInstance = yield* getContext('audiusBackendInstance') const solanaWalletService = yield* getContext('solanaWalletService') @@ -465,10 +458,7 @@ function* recoverPurchaseIfNecessary() { ) } catch (e) { yield* put(recoveryStatusChanged({ status: Status.ERROR })) - yield* call(reportToSentry, { - level: ErrorLevel.Error, - error: e as Error - }) + console.error('BuyUSDC recovery failed', e) yield* call( track, make({ diff --git a/packages/common/src/store/pages/chat/sagas.ts b/packages/common/src/store/pages/chat/sagas.ts index 70f008387ee..d44a8f9f571 100644 --- a/packages/common/src/store/pages/chat/sagas.ts +++ b/packages/common/src/store/pages/chat/sagas.ts @@ -26,7 +26,6 @@ import { queryUsers } from '~/api' import { Name } from '~/models/Analytics' -import { Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { Status } from '~/models/Status' import { inboxUnavailableModalActions } from '~/store/ui/modals' @@ -126,12 +125,7 @@ function* doFetchUnreadMessagesCount() { ) } catch (e) { yield* put(fetchUnreadMessagesCountFailed()) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -195,12 +189,7 @@ export function* doFetchLatestChats() { ) } catch (e) { yield* put(fetchMoreChatsFailed()) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -223,12 +212,7 @@ function* doFetchMoreChats() { yield* put(fetchMoreChatsSucceeded(response)) } catch (e) { yield* put(fetchMoreChatsFailed()) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -288,15 +272,7 @@ function* doFetchLatestMessages( ) } catch (e) { yield* put(fetchMoreMessagesFailed({ chatId })) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - additionalInfo: { - chatId - }, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -350,15 +326,7 @@ function* doFetchMoreMessages(action: ReturnType) { ) } catch (e) { yield* put(fetchMoreMessagesFailed({ chatId })) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - additionalInfo: { - chatId - }, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -398,18 +366,7 @@ function* doSetMessageReaction(action: ReturnType) { ) } catch (e) { yield* put(setMessageReactionFailed(action.payload)) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - additionalInfo: { - chatId, - messageId, - reaction, - userId - }, - feature: Feature.Chats - }) + console.error('Chats', e as Error) yield* call( track, make({ @@ -480,16 +437,8 @@ function* doCreateChat(action: ReturnType) { }) ) } - const reportToSentry = yield* getContext('reportToSentry') if (!isForbiddenError) { - reportToSentry({ - name: 'Chats', - error: e as Error, - additionalInfo: { - userIds - }, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } yield* call(track, make({ eventName: Name.CREATE_CHAT_FAILURE })) } @@ -557,17 +506,7 @@ function* doCreateChatBlast(action: ReturnType) { content: 'Something went wrong. Failed to create chat blast.' }) ) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - additionalInfo: { - audience, - audienceContentId, - audienceContentType - }, - feature: Feature.Chats - }) + console.error('Chats', e as Error) yield* call( track, @@ -596,15 +535,7 @@ function* doMarkChatAsRead(action: ReturnType) { yield* put(markChatAsReadSucceeded({ chatId })) } catch (e) { yield* put(markChatAsReadFailed({ chatId })) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - additionalInfo: { - chatId - }, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -626,12 +557,7 @@ function* doMarkAllChatsAsRead() { content: 'Failed to mark messages as read.' }) ) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -717,16 +643,7 @@ function* doSendMessage(action: ReturnType) { } } } - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - additionalInfo: { - chatId, - messageId: messageIdToUse - }, - feature: Feature.Chats - }) + console.error('Chats', e as Error) yield* call(track, make({ eventName: Name.SEND_MESSAGE_FAILURE })) } } @@ -762,12 +679,7 @@ function* doFetchBlockees() { }) ) } catch (e) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -784,12 +696,7 @@ function* doFetchBlockers() { }) ) } catch (e) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -808,12 +715,7 @@ function* doBlockUser(action: ReturnType) { make({ eventName: Name.BLOCK_USER_SUCCESS, blockedUserId: userId }) ) } catch (e) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - feature: Feature.Chats - }) + console.error('Chats', e as Error) yield* call( track, make({ eventName: Name.BLOCK_USER_FAILURE, blockedUserId: userId }) @@ -830,12 +732,7 @@ function* doUnblockUser(action: ReturnType) { }) yield* put(fetchBlockees()) } catch (e) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -862,12 +759,7 @@ function* doFetchPermissions(action: ReturnType) { }) ) } catch (e) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -891,17 +783,7 @@ function* doFetchLinkUnfurlMetadata( fetchLinkUnfurlSucceeded({ chatId, messageId, unfurlMetadata: data[0] }) ) } catch (e) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - additionalInfo: { - chatId, - messageId, - href - }, - feature: Feature.Chats - }) + console.error('Chats', e as Error) } } @@ -922,32 +804,15 @@ function* doDeleteChat(action: ReturnType) { yield* put(deleteChatSucceeded({ chatId })) yield* call(track, make({ eventName: Name.DELETE_CHAT_SUCCESS })) } catch (e) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - name: 'Chats', - error: e as Error, - additionalInfo: { - chatId - }, - feature: Feature.Chats - }) + console.error('Chats', e as Error) yield* call(track, make({ eventName: Name.DELETE_CHAT_FAILURE })) } } function* doLogError({ payload: { error } }: ReturnType) { const { track, make } = yield* getContext('analytics') - const reportToSentry = yield* getContext('reportToSentry') - const { code, url } = error - reportToSentry({ - name: 'Chats', - error, - additionalInfo: { - code, - url - }, - feature: Feature.Chats - }) + const { code } = error + console.error(error) yield* call(track, make({ eventName: Name.CHAT_WEBSOCKET_ERROR, code })) } diff --git a/packages/common/src/store/playback/slice.ts b/packages/common/src/store/playback/slice.ts index 8ddd547a38f..529d21fbfcd 100644 --- a/packages/common/src/store/playback/slice.ts +++ b/packages/common/src/store/playback/slice.ts @@ -1,6 +1,6 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit' -import { Feature, ID } from '../../models' +import { ID } from '../../models' import { Maybe, Nullable } from '../../utils' import { @@ -156,7 +156,6 @@ type ErrorPayload = { error: string trackId: ID info: string - feature?: Feature } type SetRetriesPayload = { retries: number } diff --git a/packages/common/src/store/purchase-content/sagas.ts b/packages/common/src/store/purchase-content/sagas.ts index a3a01de1e9c..54cb685a6b1 100644 --- a/packages/common/src/store/purchase-content/sagas.ts +++ b/packages/common/src/store/purchase-content/sagas.ts @@ -29,7 +29,6 @@ import { import { isPurchaseableAlbum, PurchaseableContentMetadata } from '~/hooks' import { Collection } from '~/models' import { FavoriteSource, Name } from '~/models/Analytics' -import { ErrorLevel, Feature } from '~/models/ErrorReporting' import { ID } from '~/models/Identifiers' import { PurchaseAccess, @@ -632,7 +631,6 @@ function* doStartPurchaseContentFlow({ } }: ReturnType) { const usdcConfig = yield* call(getBuyUSDCRemoteConfig) - const reportToSentry = yield* getContext('reportToSentry') const { track, make } = yield* getContext('analytics') const audiusSdk = yield* getContext('audiusSdk') const sdk = yield* call(audiusSdk) @@ -886,12 +884,7 @@ function* doStartPurchaseContentFlow({ return } - yield* call(reportToSentry, { - level: ErrorLevel.Error, - error, - additionalInfo: { contentId, contentType }, - feature: Feature.Purchase - }) + console.error('Purchase failed', error, { contentId, contentType }) yield* put(purchaseContentFlowFailed({ error })) yield* put(updateGatedContentStatus({ contentId, status: 'LOCKED' })) yield* call( diff --git a/packages/common/src/store/storeContext.ts b/packages/common/src/store/storeContext.ts index 36dff0e096c..92a01c3625d 100644 --- a/packages/common/src/store/storeContext.ts +++ b/packages/common/src/store/storeContext.ts @@ -13,7 +13,6 @@ import { AnalyticsEvent, IdentifyTraits, LineupState, - ReportToSentryArgs, Track } from '../models' import { AudioPlayer } from '../services/audio-player' @@ -68,11 +67,6 @@ export type CommonStoreContext = { ) => (state: CommonState) => LineupState audioPlayer: AudioPlayer nftClient: null - sentry: { - setTag: (key: string, value: string) => void - getCurrentScope: () => { setUser: (user: any) => void } - } - reportToSentry: (args: ReportToSentryArgs) => void trackDownload: TrackDownload instagramAppId?: string instagramRedirectUrl?: string diff --git a/packages/common/src/store/ui/stripe-modal/sagaHelpers.ts b/packages/common/src/store/ui/stripe-modal/sagaHelpers.ts index 1b1070187e1..fd911bc4aba 100644 --- a/packages/common/src/store/ui/stripe-modal/sagaHelpers.ts +++ b/packages/common/src/store/ui/stripe-modal/sagaHelpers.ts @@ -1,7 +1,6 @@ import { call } from 'typed-redux-saga' import { Name, StripeEventFields } from '~/models/Analytics' -import { ErrorLevel } from '~/models/ErrorReporting' import { getContext } from '~/store/effects' import { StripeSessionData } from './types' @@ -33,7 +32,6 @@ export function* reportStripeFlowAnalytics( session: StripeSessionData, previousSession?: StripeSessionData ) { - const reportToSentry = yield* getContext('reportToSentry') const { track, make } = yield* getContext('analytics') if (!previousSession || session.status !== previousSession.status) { @@ -59,12 +57,8 @@ export function* reportStripeFlowAnalytics( ) break case 'rejected': - yield* call(reportToSentry, { - level: ErrorLevel.Error, - error: new Error('Stripe onramp session status: rejected'), - additionalInfo: { - session: cleanedSession - } + console.error('Stripe onramp session status: rejected', { + session: cleanedSession }) yield* call( track, @@ -93,12 +87,8 @@ export function* reportStripeFlowAnalytics( ) break case 'error': - yield* call(reportToSentry, { - level: ErrorLevel.Error, - error: new Error('Stripe onramp session status: error'), - additionalInfo: { - session: cleanedSession - } + console.error('Stripe onramp session status: error', { + session: cleanedSession }) yield* call( track, diff --git a/packages/common/src/store/ui/stripe-modal/sagas.ts b/packages/common/src/store/ui/stripe-modal/sagas.ts index 4438e556a2e..6da689cbbcd 100644 --- a/packages/common/src/store/ui/stripe-modal/sagas.ts +++ b/packages/common/src/store/ui/stripe-modal/sagas.ts @@ -10,7 +10,6 @@ import { } from 'typed-redux-saga' import { Name } from '~/models/Analytics' -import { ErrorLevel } from '~/models/ErrorReporting' import { IdentityRequestError } from '~/services/auth/identity' import { getContext } from '~/store/effects' @@ -41,7 +40,6 @@ function* handleInitializeStripeModal({ payload: { amount, destinationCurrency, destinationWallet } }: ReturnType) { const identityService = yield* getContext('identityService') - const reportToSentry = yield* getContext('reportToSentry') const { track, make } = yield* getContext('analytics') const { onrampFailed } = yield* select(getStripeModalState) try { @@ -79,16 +77,12 @@ function* handleInitializeStripeModal({ }) } yield* put(setVisibility({ modal: 'StripeOnRamp', visible: 'closing' })) - yield* call(reportToSentry, { - level: ErrorLevel.Error, - error, - additionalInfo: { - code, - stripeErrorMessage, - type, - amount, - destinationCurrency - } + console.error('Stripe session creation error', error, { + code, + stripeErrorMessage, + type, + amount, + destinationCurrency }) yield* call( track, diff --git a/packages/common/src/store/ui/withdraw-usdc/sagas.ts b/packages/common/src/store/ui/withdraw-usdc/sagas.ts index 4c36e054760..3d00689468c 100644 --- a/packages/common/src/store/ui/withdraw-usdc/sagas.ts +++ b/packages/common/src/store/ui/withdraw-usdc/sagas.ts @@ -166,22 +166,19 @@ function* doWithdrawUSDCCoinflow({ }) yield* put(cleanupWithdrawUSDC()) yield* put(closeWithdrawUSDCModal()) - // Buy USDC recovery already logs to sentry and makes an analytics event - // so add some logs to help discern which flow the recovery was triggered - // from and help aid in debugging should this ever hit. + // Buy USDC recovery already logs and makes an analytics event, so add + // some logs to help discern which flow the recovery was triggered from + // and help aid in debugging should this ever hit. if (action.payload.status === Status.ERROR) { - // Breadcrumb hint: console.warn( 'Failed to transfer funds back from root wallet:', rootSolanaAccount.publicKey.toBase58() ) - // Console error for sentry issue console.error('Failed to recover funds from Coinflow Withdraw') } } } catch (e: unknown) { console.error('Withdraw USDC failed', e) - const reportToSentry = yield* getContext('reportToSentry') yield* put(withdrawUSDCFailed({ error: e as Error })) const responseErrorFields = yield* call(getResponseErrorAnalyticsFields, e) @@ -195,9 +192,7 @@ function* doWithdrawUSDCCoinflow({ }) ) - reportToSentry({ - error: e as Error - }) + console.error(e as Error) } } @@ -274,7 +269,6 @@ function* doWithdrawUSDCManualTransfer({ }) } catch (e: unknown) { console.error('Withdraw USDC failed', e) - const reportToSentry = yield* getContext('reportToSentry') yield* put(withdrawUSDCFailed({ error: e as Error })) const responseErrorFields = yield* call(getResponseErrorAnalyticsFields, e) @@ -288,9 +282,7 @@ function* doWithdrawUSDCManualTransfer({ }) ) - reportToSentry({ - error: e as Error - }) + console.error(e as Error) } } diff --git a/packages/common/src/utils/sagaHelpers.ts b/packages/common/src/utils/sagaHelpers.ts index eb84865befa..1b48b68d5c9 100644 --- a/packages/common/src/utils/sagaHelpers.ts +++ b/packages/common/src/utils/sagaHelpers.ts @@ -18,7 +18,6 @@ import { Action } from 'typesafe-actions' // this import needs to be very specific for SSR bundlesize import { getAccountStatusQueryKey } from '~/api/tan-query/users/account/useAccountStatus' -import { ErrorLevel, ReportToSentryArgs } from '~/models' import { waitForReachability } from '~/store/reachability/sagas' import { toast } from '~/store/ui/toast/slice' @@ -187,18 +186,7 @@ export function* sagaWithErrorHandler(saga: () => Generator) { break } catch (e) { yield* put(toast({ content: messages.somethingWrong })) - console.warn(`Saga ${saga.name} failed, restarting...`, e) - - // Force typing of reportToSentry. We're not able to pull it in - // from getContext in ~common as that would require the store. - const reportToSentry: (args: ReportToSentryArgs) => void = - yield* getContext('reportToSentry') as any - - yield* call(reportToSentry, { - name: 'Uncaught Saga Error', - level: ErrorLevel.Error, - error: e as Error - }) + console.error(`Uncaught Saga Error in ${saga.name}`, e) } } } diff --git a/packages/embed/src/util/logError.js b/packages/embed/src/util/logError.js index 816bf7a02e8..ef43b8bcb2f 100644 --- a/packages/embed/src/util/logError.js +++ b/packages/embed/src/util/logError.js @@ -7,5 +7,4 @@ export const logError = (...args) => { ) { console.error(args) } - // TODO: Add Sentry logging } diff --git a/packages/identity-service/default-config.json b/packages/identity-service/default-config.json index 8c674097101..c08a7aa3583 100644 --- a/packages/identity-service/default-config.json +++ b/packages/identity-service/default-config.json @@ -63,7 +63,6 @@ "recaptchaServiceKey": "", "hCaptchaSecret": "", "solanaFeePayerWallets": "[]", - "sentryDSN": "", "solanaEndpoint": "https://api.mainnet-beta.solana.com", "solanaEndpointListensProgram": "https://api.mainnet-beta.solana.com", "stripeSecretKey": "" diff --git a/packages/identity-service/package.json b/packages/identity-service/package.json index cc581485aef..c4c15bef374 100644 --- a/packages/identity-service/package.json +++ b/packages/identity-service/package.json @@ -42,7 +42,6 @@ "@optimizely/optimizely-sdk": "4.6.0", "@sendgrid/client": "7.7.0", "@sendgrid/mail": "7.7.0", - "@sentry/node": "6.2.5", "@solana/buffer-layout": "4.0.1", "@solana/buffer-layout-utils": "0.2.0", "@solana/spl-token": "0.3.8", diff --git a/packages/identity-service/src/app.js b/packages/identity-service/src/app.js index fe5c35bfd56..31727758958 100644 --- a/packages/identity-service/src/app.js +++ b/packages/identity-service/src/app.js @@ -6,7 +6,6 @@ const sgClient = require('@sendgrid/client') const { redisClient, Lock } = require('./redis') const { createFpClient } = require('./fpClient') const optimizelySDK = require('@optimizely/optimizely-sdk') -const Sentry = require('@sentry/node') const cluster = require('cluster') const config = require('./config.js') const txRelay = require('./relay/txRelay') @@ -37,7 +36,6 @@ class App { this.express = express() this.redisClient = redisClient this.fpClient = createFpClient(config.get('fpServerApiKey')) - this.configureSentry() this.configureSendGrid() this.optimizelyPromise = null @@ -160,15 +158,6 @@ class App { ) } - configureSentry() { - const dsn = config.get('sentryDSN') - if (dsn) { - Sentry.init({ - dsn - }) - } - } - configureOptimizely() { const sdkKey = config.get('optimizelySdkKey') const optimizelyClientInstance = optimizelySDK.createInstance({ @@ -400,7 +389,6 @@ class App { function errorHandler(err, req, res, next) { req.logger.error('Internal server error') req.logger.error(err.stack) - Sentry.captureException(err) sendResponse(req, res, errorResponseServerError('Internal server error')) } this.express.use(errorHandler) diff --git a/packages/identity-service/src/config.js b/packages/identity-service/src/config.js index 542aad789f6..50bc37da610 100644 --- a/packages/identity-service/src/config.js +++ b/packages/identity-service/src/config.js @@ -695,12 +695,6 @@ const config = convict({ default: '', env: 'aaoAddress' }, - sentryDSN: { - doc: 'Sentry DSN key', - format: String, - env: 'sentryDSN', - default: '' - }, ethGasMultiplier: { doc: 'Constant value to multiply the configured FAST gas price by - in order to optimize tx success', format: Number, diff --git a/packages/mobile/android/sentry.properties b/packages/mobile/android/sentry.properties deleted file mode 100644 index e5b10f50347..00000000000 --- a/packages/mobile/android/sentry.properties +++ /dev/null @@ -1,4 +0,0 @@ -defaults.url=https://sentry.io/ -defaults.org=audius -defaults.project=audius-client -auth.token=ffe6cd7871b44b1ab42ed98e644fdc9240f1eac620b8406e8795232679e5fceb diff --git a/packages/mobile/ios/AudiusReactNative.xcodeproj/project.pbxproj b/packages/mobile/ios/AudiusReactNative.xcodeproj/project.pbxproj index 8af9e63935f..363384b1db2 100644 --- a/packages/mobile/ios/AudiusReactNative.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/AudiusReactNative.xcodeproj/project.pbxproj @@ -253,7 +253,6 @@ A1B2C3D4E5F6A7B8C9D0E1F2 /* Bundle React Native code and images */, 13B07F8E1A680F5B00A75B9A /* Resources */, 838AABE123CE404D004B2DA3 /* ShellScript */, - 18A5B1D0CA1543ABB2DC5C65 /* Upload Debug Symbols to Sentry */, CBD3B687421F14165031EAF0 /* [CP] Embed Pods Frameworks */, B73C21C532E1201FEFBAECDA /* [CP] Copy Pods Resources */, 23A43AB82E37E73000CDCDF2 /* Embed Foundation Extensions */, @@ -355,20 +354,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 18A5B1D0CA1543ABB2DC5C65 /* Upload Debug Symbols to Sentry */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Upload Debug Symbols to Sentry"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "${SRCROOT}/scripts/uploadSentryDebugSymbols.sh\n"; - }; 4F8185A02FC4BDA0C345B32B /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; diff --git a/packages/mobile/ios/Podfile b/packages/mobile/ios/Podfile index cff6c13dbf0..3d5fc4dfe6b 100644 --- a/packages/mobile/ios/Podfile +++ b/packages/mobile/ios/Podfile @@ -84,9 +84,7 @@ target 'AudiusReactNative' do if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle" target.build_configurations.each do |config| config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' - if target.name != "Sentry" - config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO' - end + config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO' end end end diff --git a/packages/mobile/ios/scripts/uploadSentryDebugSymbols.sh b/packages/mobile/ios/scripts/uploadSentryDebugSymbols.sh deleted file mode 100755 index 09c9246eff8..00000000000 --- a/packages/mobile/ios/scripts/uploadSentryDebugSymbols.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -# Sentry has been removed from mobile -echo "Sentry debug symbol upload disabled" \ No newline at end of file diff --git a/packages/mobile/ios/sentry.properties b/packages/mobile/ios/sentry.properties deleted file mode 100644 index e5b10f50347..00000000000 --- a/packages/mobile/ios/sentry.properties +++ /dev/null @@ -1,4 +0,0 @@ -defaults.url=https://sentry.io/ -defaults.org=audius -defaults.project=audius-client -auth.token=ffe6cd7871b44b1ab42ed98e644fdc9240f1eac620b8406e8795232679e5fceb diff --git a/packages/mobile/src/app/App.tsx b/packages/mobile/src/app/App.tsx index 1dfadc9ee5c..f0994701e5c 100644 --- a/packages/mobile/src/app/App.tsx +++ b/packages/mobile/src/app/App.tsx @@ -42,9 +42,6 @@ import { Drawers } from './Drawers' import ErrorBoundary from './ErrorBoundary' import { ThemeProvider } from './ThemeProvider' import './registerNiceModals' -import { initSentry, navigationIntegration } from './sentry' - -initSentry() // Wire the platform-agnostic bridge so common (sagas/services) can drive // nice-modal-react without depending on the package directly. @@ -130,9 +127,7 @@ const App = () => { - + {/* NiceModal-managed modals (e.g. diff --git a/packages/mobile/src/app/AudiusQueryProvider.tsx b/packages/mobile/src/app/AudiusQueryProvider.tsx index 1e96fc7ad77..f5147338ed4 100644 --- a/packages/mobile/src/app/AudiusQueryProvider.tsx +++ b/packages/mobile/src/app/AudiusQueryProvider.tsx @@ -14,7 +14,6 @@ import { authService, solanaWalletService } from 'app/services/sdk/auth' import { identityService } from 'app/services/sdk/identity' import { store } from 'app/store' import { generatePlaylistArtwork } from 'app/utils/generatePlaylistArtwork' -import { reportToSentry } from 'app/utils/reportToSentry' type AudiusQueryProviderProps = { children: ReactNode @@ -27,7 +26,6 @@ export const queryContext = { identityService, solanaWalletService, dispatch: store.dispatch, - reportToSentry, env, fetch, remoteConfigInstance, diff --git a/packages/mobile/src/app/ErrorBoundary.tsx b/packages/mobile/src/app/ErrorBoundary.tsx index 8637abdca16..68064a9a06b 100644 --- a/packages/mobile/src/app/ErrorBoundary.tsx +++ b/packages/mobile/src/app/ErrorBoundary.tsx @@ -1,13 +1,11 @@ import type { ReactNode } from 'react' import { PureComponent, useEffect } from 'react' -import { ErrorLevel } from '@audius/common/models' import type { Nullable } from '@audius/common/utils' import { useToast } from 'app/hooks/useToast' import { make, track } from 'app/services/analytics' import { EventNames } from 'app/types/analytics' -import { reportToSentry } from 'app/utils/reportToSentry' type ErrorToastProps = { error: Nullable @@ -39,11 +37,7 @@ class ErrorBoundary extends PureComponent { componentDidCatch(error: Error | null, errorInfo: any) { // On catch set the error state so it triggers a toast this.setState({ error: error?.message }) - reportToSentry({ - level: ErrorLevel.Fatal, - error: error ?? new Error('Unknown error caught by'), - additionalInfo: errorInfo - }) + console.error(error ?? new Error('Unknown error caught by'), errorInfo) track( make({ eventName: EventNames.APP_ERROR, diff --git a/packages/mobile/src/app/sentry.ts b/packages/mobile/src/app/sentry.ts deleted file mode 100644 index c9665de5cf0..00000000000 --- a/packages/mobile/src/app/sentry.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Sentry removed from mobile - using only console logging and other error tracking - -export const navigationIntegration = null - -export const initSentry = () => { - // No-op: Sentry disabled for mobile - // console.log('Sentry disabled for mobile app') -} diff --git a/packages/mobile/src/components/audio/AudioPlayer.tsx b/packages/mobile/src/components/audio/AudioPlayer.tsx index 1572b5f8287..83f4bbf644b 100644 --- a/packages/mobile/src/components/audio/AudioPlayer.tsx +++ b/packages/mobile/src/components/audio/AudioPlayer.tsx @@ -2,7 +2,7 @@ import { useRef, useEffect, useCallback, useState, useMemo } from 'react' import { useCurrentUserId, useTracks, useUsers } from '@audius/common/api' import { useCurrentTrack } from '@audius/common/hooks' -import { ErrorLevel, Feature, Name, SquareSizes } from '@audius/common/models' +import { Name, SquareSizes } from '@audius/common/models' import type { ID, Track } from '@audius/common/models' import { playbackActions, @@ -57,7 +57,6 @@ import { addOfflineEntries, OfflineDownloadStatus } from 'app/store/offline-downloads/slice' -import { reportToSentry } from 'app/utils/reportToSentry' import { useChromecast } from './GoogleCast' import { useSavePodcastProgress } from './useSavePodcastProgress' @@ -296,17 +295,7 @@ const useQueueSync = (isAudioSetup: boolean) => { : track.duration } } catch (e) { - reportToSentry({ - level: ErrorLevel.Error, - name: 'AudioPlayer: makeTrackData failed', - additionalInfo: { - track, - playerBehavior, - trackOwner: queueTrackOwnersMap[track?.owner_id ?? ''] - }, - feature: Feature.Playback, - error: e - }) + console.error('AudioPlayer: makeTrackData failed', e) return unlistedTrackFallbackTrackData } }, diff --git a/packages/mobile/src/components/download-track-archive-drawer/DownloadTrackArchiveDrawer.tsx b/packages/mobile/src/components/download-track-archive-drawer/DownloadTrackArchiveDrawer.tsx index 55993a7852d..70c8eba9332 100644 --- a/packages/mobile/src/components/download-track-archive-drawer/DownloadTrackArchiveDrawer.tsx +++ b/packages/mobile/src/components/download-track-archive-drawer/DownloadTrackArchiveDrawer.tsx @@ -8,7 +8,7 @@ import { } from '@audius/common/api' import { useAppContext } from '@audius/common/context' import type { ID } from '@audius/common/models' -import { Feature, Name } from '@audius/common/models' +import { Name } from '@audius/common/models' import type { DownloadFile } from '@audius/common/services' import { useDownloadTrackArchiveModal } from '@audius/common/store' @@ -23,7 +23,6 @@ import { } from '@audius/harmony-native' import Drawer from 'app/components/drawer' import { env } from 'app/services/env' -import { reportToSentry } from 'app/utils/reportToSentry' import { DrawerHeader } from '../core/DrawerHeader' import LoadingSpinner from '../loading-spinner' @@ -58,14 +57,7 @@ const useDownloadFile = () => { setSuccess(true) } catch (e) { setError(e as Error) - reportToSentry({ - additionalInfo: { - file - }, - name: 'Failed to download track archive', - error: e as Error, - feature: Feature.Remixes - }) + console.error('Failed to download track archive', e as Error) } finally { setFetching(false) setAbortController(null) diff --git a/packages/mobile/src/components/navigation-container/NavigationContainer.tsx b/packages/mobile/src/components/navigation-container/NavigationContainer.tsx index 6eda5173a8d..ba927cad4e4 100644 --- a/packages/mobile/src/components/navigation-container/NavigationContainer.tsx +++ b/packages/mobile/src/components/navigation-container/NavigationContainer.tsx @@ -19,7 +19,6 @@ import { navigationThemes } from './navigationThemes' type NavigationContainerProps = { children: ReactNode - navigationIntegration: any // Sentry removed - kept for compatibility } export const navigationRef = createNavigationContainerRef() @@ -29,7 +28,7 @@ export const navigationRef = createNavigationContainerRef() * and configures linking */ const NavigationContainer = (props: NavigationContainerProps) => { - const { children, navigationIntegration } = props + const { children } = props const theme = useThemeVariant() const { data: accountHandle } = useCurrentAccountUser({ select: (user) => user?.handle @@ -187,10 +186,6 @@ const NavigationContainer = (props: NavigationContainerProps) => { const onReady = () => { routeNameRef.current = getPrimaryRoute(navigationRef.getRootState()) - // Sentry removed - navigationIntegration is null - if (navigationIntegration?.registerNavigationContainer) { - navigationIntegration.registerNavigationContainer(navigationRef) - } } return ( diff --git a/packages/mobile/src/components/send-tokens-drawer/SendTokensDrawer.tsx b/packages/mobile/src/components/send-tokens-drawer/SendTokensDrawer.tsx index 8c27ab95f7c..c6a26ce3a36 100644 --- a/packages/mobile/src/components/send-tokens-drawer/SendTokensDrawer.tsx +++ b/packages/mobile/src/components/send-tokens-drawer/SendTokensDrawer.tsx @@ -3,12 +3,10 @@ import { useState, useEffect } from 'react' import { useSendCoins } from '@audius/common/api' import { walletMessages } from '@audius/common/messages' import type { SolanaWalletAddress, User } from '@audius/common/models' -import { ErrorLevel, Feature } from '@audius/common/models' import { useSendTokensModal } from '@audius/common/store' import { Divider, Flex } from '@audius/harmony-native' import Drawer from 'app/components/drawer/Drawer' -import { reportToSentry } from 'app/utils/reportToSentry' import { DrawerHeader } from '../drawer/DrawerHeader' @@ -130,17 +128,7 @@ export const SendTokensDrawer = () => { } setError(errorMessage) - reportToSentry({ - level: ErrorLevel.Error, - error: error as Error, - additionalInfo: { - amount: state.amount.toString(), - destinationAddress: state.destinationAddress, - mint: state.selectedMint, - errorString - }, - feature: Feature.SendTokens - }) + console.error(error as Error) setState((prev) => ({ ...prev, step: 'failure' })) } } diff --git a/packages/mobile/src/components/share-drawer/useShareToStory.tsx b/packages/mobile/src/components/share-drawer/useShareToStory.tsx index c9179999e81..b068d652578 100644 --- a/packages/mobile/src/components/share-drawer/useShareToStory.tsx +++ b/packages/mobile/src/components/share-drawer/useShareToStory.tsx @@ -4,7 +4,7 @@ import EventEmitter from 'events' import path from 'path' import { useCurrentUserId } from '@audius/common/api' -import { ErrorLevel, SquareSizes } from '@audius/common/models' +import { SquareSizes } from '@audius/common/models' import type { Color } from '@audius/common/models' import { modalsActions } from '@audius/common/store' import type { ShareContent } from '@audius/common/store' @@ -51,7 +51,6 @@ import { pickTwoMostDominantAndVibrant } from 'app/utils/dominantColors' import { isImageUriSource } from 'app/utils/image' -import { reportToSentry } from 'app/utils/reportToSentry' import { getTrackRoute } from 'app/utils/routes' import { DrawerHeader } from '../core/DrawerHeader' @@ -209,11 +208,7 @@ export const useShareToStory = ({ const handleError = useCallback( (platform: ShareToStoryPlatform, error: Error, name?: string) => { - reportToSentry({ - level: ErrorLevel.Error, - error, - name - }) + console.error(error) toast({ content: messages.shareToStoryError, type: 'error' }) track( make({ diff --git a/packages/mobile/src/screens/coin-details-screen/EditCoinDetailsScreen.tsx b/packages/mobile/src/screens/coin-details-screen/EditCoinDetailsScreen.tsx index 6875298f9db..77ef64dd304 100644 --- a/packages/mobile/src/screens/coin-details-screen/EditCoinDetailsScreen.tsx +++ b/packages/mobile/src/screens/coin-details-screen/EditCoinDetailsScreen.tsx @@ -20,7 +20,6 @@ import { useFormikContext, Formik } from 'formik' import { Image as RNImage, View, StyleSheet } from 'react-native' import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view' import LinearGradient from 'react-native-linear-gradient' -import { reportToSentry } from 'store/errors/reportToSentry' import { IconInstagram, @@ -332,20 +331,7 @@ export const EditCoinDetailsScreen = () => { }) navigation.goBack() } catch (e) { - await reportToSentry({ - name: 'EditCoinDetails', - error: - e instanceof Error - ? e - : new Error( - e instanceof Object && 'message' in e - ? (e.message as string) - : 'Unknown Error' - ), - additionalInfo: { - raw: e - } - }) + await console.error('EditCoinDetails', e instanceof Error) throw e // Re-throw to let Formik handle the error } } diff --git a/packages/mobile/src/screens/notifications-screen/NotificationErrorBoundary.tsx b/packages/mobile/src/screens/notifications-screen/NotificationErrorBoundary.tsx index a083fda0983..f10bba1a8c6 100644 --- a/packages/mobile/src/screens/notifications-screen/NotificationErrorBoundary.tsx +++ b/packages/mobile/src/screens/notifications-screen/NotificationErrorBoundary.tsx @@ -1,8 +1,6 @@ import type { ReactNode } from 'react' import { PureComponent } from 'react' -import { Feature } from '@audius/common/models' - type NotificationErrorBoundaryProps = { children: ReactNode } @@ -14,12 +12,7 @@ export class NotificationErrorBoundary extends PureComponent console.error(error), registryAddress: env.REGISTRY_ADDRESS, entityManagerAddress: env.ENTITY_MANAGER_ADDRESS, remoteConfigInstance, diff --git a/packages/mobile/src/services/env/env.dev.ts b/packages/mobile/src/services/env/env.dev.ts index e86529e87a5..e9075beb3fa 100644 --- a/packages/mobile/src/services/env/env.dev.ts +++ b/packages/mobile/src/services/env/env.dev.ts @@ -64,7 +64,6 @@ export const env: Env = { REWARDS_MANAGER_TOKEN_PDA: 'FRk4j95RG2kSk3BHXBPVgKszFc2rLQ8K6RS83k3dmzvQ', SAFARI_WEB_PUSH_ID: 'web.co.audius', SCHEME: 'audius', - SENTRY_DSN: 'https://4b15a7a2f2e2459997408b39a0c4942c@s.audius.co/1851611', SOL_BRIDGE_ADDRESS: null, SOL_TOKEN_BRIDGE_ADDRESS: null, SOLANA_CLUSTER_ENDPOINT: 'http://audius-solana-test-validator-1', diff --git a/packages/mobile/src/services/env/env.prod.ts b/packages/mobile/src/services/env/env.prod.ts index 392146d67c2..40ef040d25a 100644 --- a/packages/mobile/src/services/env/env.prod.ts +++ b/packages/mobile/src/services/env/env.prod.ts @@ -64,7 +64,6 @@ export const env: Env = { REWARDS_MANAGER_TOKEN_PDA: '3V9opXNpHmPPymKeq7CYD8wWMH8wzFXmqEkNdzfsZhYq', SAFARI_WEB_PUSH_ID: 'web.co.audius', SCHEME: 'audius', - SENTRY_DSN: 'https://e26d2b01488f4b538ea235de6466c40a@s.audius.co/1457231', SOL_BRIDGE_ADDRESS: 'worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth', SOL_TOKEN_BRIDGE_ADDRESS: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb', SOLANA_CLUSTER_ENDPOINT: diff --git a/packages/mobile/src/services/query-client.ts b/packages/mobile/src/services/query-client.ts index 30ac2235215..73dd9eb7c56 100644 --- a/packages/mobile/src/services/query-client.ts +++ b/packages/mobile/src/services/query-client.ts @@ -2,14 +2,13 @@ import { defaultRetryConfig, queryErrorHandler } from '@audius/common/api' import { QueryCache, QueryClient } from '@tanstack/react-query' import { env } from 'app/services/env' -import { reportToSentry } from 'app/utils/reportToSentry' export const queryClient = new QueryClient({ // In order to have a default error catcher, we need to use a custom query cache // ref: https://tkdodo.eu/blog/react-query-error-handling queryCache: new QueryCache({ onError(error, query) { - queryErrorHandler(error, query, reportToSentry) + queryErrorHandler(error, query) } }), defaultOptions: { diff --git a/packages/mobile/src/services/remote-config/remote-config-instance.ts b/packages/mobile/src/services/remote-config/remote-config-instance.ts index 18f6d59239c..7b6fb80bed6 100644 --- a/packages/mobile/src/services/remote-config/remote-config-instance.ts +++ b/packages/mobile/src/services/remote-config/remote-config-instance.ts @@ -1,4 +1,3 @@ -import { ErrorLevel } from '@audius/common/models' import type { Environment } from '@audius/common/services' import { remoteConfig } from '@audius/common/services' import CodePush from '@bravemobile/react-native-code-push' @@ -9,7 +8,6 @@ import Config from 'react-native-config' import VersionNumber from 'react-native-version-number' import { env } from 'app/services/env' -import { reportToSentry } from 'app/utils/reportToSentry' import packageInfo from '../../../package.json' @@ -60,11 +58,7 @@ export const remoteConfigInstance = remoteConfig({ }, errorHandler: { handleError: (error) => { - reportToSentry({ - level: ErrorLevel.Error, - error, - name: 'Optimizely failed to load' - }) + console.error(error) } } }) diff --git a/packages/mobile/src/store/store.ts b/packages/mobile/src/store/store.ts index d027438b75d..afba1910079 100644 --- a/packages/mobile/src/store/store.ts +++ b/packages/mobile/src/store/store.ts @@ -1,4 +1,3 @@ -import { ErrorLevel } from '@audius/common/models' import type { CommonState, RemoteConfigState } from '@audius/common/store' import { chatMiddleware, @@ -24,7 +23,6 @@ import thunk from 'redux-thunk' import { queryClient } from 'app/services/query-client' import { audiusSdk } from 'app/services/sdk/audius-sdk' -import { reportToSentry } from 'app/utils/reportToSentry' import type { DrawersState } from './drawers/slice' import drawers from './drawers/slice' @@ -83,12 +81,6 @@ const onSagaError = ( }) ) - reportToSentry({ - level: ErrorLevel.Fatal, - error, - additionalInfo: errorInfo - }) - // Automatically restart the app if the session is longer // than 30 seconds. Don't want to restart for shorter sessions // because it could result in a restart loop diff --git a/packages/mobile/src/store/storeContext.ts b/packages/mobile/src/store/storeContext.ts index 1eefd604d57..b8e9b69df7d 100644 --- a/packages/mobile/src/store/storeContext.ts +++ b/packages/mobile/src/store/storeContext.ts @@ -23,7 +23,6 @@ import { signAndSendTransaction } from 'app/store/utils/phantomWalletConnect' import { generatePlaylistArtwork } from 'app/utils/generatePlaylistArtwork' -import { reportToSentry } from 'app/utils/reportToSentry' import share from 'app/utils/share' export const storeContext: CommonStoreContext = { @@ -45,11 +44,6 @@ export const storeContext: CommonStoreContext = { env, explore, nftClient: null, - sentry: { - setTag: () => {}, // Sentry removed - no-op - getCurrentScope: () => ({ setUser: () => {} }) // Sentry removed - no-op - }, - reportToSentry, // Shim in main, but defined in native-reloaded branch audioPlayer, trackDownload, diff --git a/packages/mobile/src/utils/reportToSentry.ts b/packages/mobile/src/utils/reportToSentry.ts deleted file mode 100644 index 103619344b8..00000000000 --- a/packages/mobile/src/utils/reportToSentry.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { ErrorLevel } from '@audius/common/models' -import type { ReportToSentryArgs } from '@audius/common/models' -import { getErrorMessage, isResponseError } from '@audius/common/utils' - -type ConsoleLoggingMethod = keyof Pick< - Console, - 'log' | 'warn' | 'error' | 'info' | 'debug' -> - -const jsLoggerMapping: { [level in ErrorLevel]: ConsoleLoggingMethod } = { - Warning: 'warn', - Fatal: 'error', - Debug: 'debug', - Error: 'error', - Info: 'info', - Log: 'log' -} - -/** - * Helper fn that logs errors to console - * Note: Sentry has been removed from mobile - */ -export const reportToSentry = async ({ - level = ErrorLevel.Error, - additionalInfo, - error, - tags, - name, - feature -}: ReportToSentryArgs) => { - try { - let enrichedAdditionalInfo = additionalInfo - - if (isResponseError(error)) { - const responseBody = - (await error.response.json().catch()) ?? - (await error.response.text().catch()) - enrichedAdditionalInfo = { - ...additionalInfo, - response: error.response, - requestId: error.response.headers.get('X-Request-ID'), - responseBody - } - } - - if (name) { - error.name = `${name}: ${error.name}` - } - - // Call JS console method using the specified level - const consoleMethod = - jsLoggerMapping[level || ErrorLevel.Log] || jsLoggerMapping.Log - // eslint-disable-next-line no-console - console[consoleMethod](error, 'More info in console.debug') - if (enrichedAdditionalInfo || tags || feature) { - console.debug('Additional error info:', { - additionalInfo: enrichedAdditionalInfo, - tags, - feature, - level - }) - } - } catch (err) { - console.error(`Got error trying to log error: ${getErrorMessage(err)}`) - } -} diff --git a/packages/web/package.json b/packages/web/package.json index 0cfdb9444a3..766c62a2444 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -95,7 +95,6 @@ "@reown/appkit-adapter-solana": "1.7.1", "@reown/appkit-adapter-wagmi": "1.7.1", "@reown/appkit-wallet-button": "1.7.1", - "@sentry/browser": "^7.117.0", "@solana/spl-token": "0.3.8", "@solana/web3.js": "1.98.0", "@stripe/crypto": "0.0.4", @@ -159,12 +158,10 @@ "redux": "4.1.1", "redux-persist": "6.0.0", "redux-saga": "1.1.3", - "redux-sentry-middleware": "0.1.8", "redux-thunk": "2.4.2", "reselect": "4.0.0", "semver": "6.3.0", "tar": "6.1.11", - "toucan-js": "3.3.1", "type-fest": "4.26.1", "typed-redux-saga": "1.3.1", "typesafe-actions": "5.1.0", @@ -207,7 +204,6 @@ "@types/react-table": "7.7.12", "@types/react-twitter-auth": "0.0.4", "@types/react-virtualized": "9.21.21", - "@types/redux-sentry-middleware": "0.2.1", "@types/resize-observer-browser": "0.1.7", "@vitejs/plugin-react-swc": "4.2.2", "abort-controller": "3.0.0", diff --git a/packages/web/src/app/AppErrorBoundary.tsx b/packages/web/src/app/AppErrorBoundary.tsx index f7fcfb330e1..429f089c254 100644 --- a/packages/web/src/app/AppErrorBoundary.tsx +++ b/packages/web/src/app/AppErrorBoundary.tsx @@ -1,6 +1,5 @@ import { ReactNode, useCallback } from 'react' -import { ErrorLevel } from '@audius/common/models' import { ErrorBoundary, ErrorBoundaryProps } from 'react-error-boundary' import { useDispatch } from 'react-redux' @@ -22,8 +21,7 @@ export const AppErrorBoundary = ({ children }: AppErrorBoundaryProps) => { name: 'ReactErrorBoundary', message: error.message, shouldRedirect: true, - additionalInfo: errorInfo, - level: ErrorLevel.Fatal + additionalInfo: errorInfo }) ) }, diff --git a/packages/web/src/app/AudiusQueryProvider.tsx b/packages/web/src/app/AudiusQueryProvider.tsx index 7e28673ca77..befbcc3cb0d 100644 --- a/packages/web/src/app/AudiusQueryProvider.tsx +++ b/packages/web/src/app/AudiusQueryProvider.tsx @@ -14,7 +14,6 @@ import { import { env } from 'services/env' import { getFeatureEnabled } from 'services/remote-config/featureFlagHelpers' import { remoteConfigInstance } from 'services/remote-config/remote-config-instance' -import { reportToSentry } from 'store/errors/reportToSentry' import { generatePlaylistArtwork } from 'utils/imageProcessingUtil' type AudiusQueryProviderProps = { @@ -33,7 +32,6 @@ export const AudiusQueryProvider = (props: AudiusQueryProviderProps) => { identityService, solanaWalletService, dispatch, - reportToSentry, env, fetch, remoteConfigInstance, diff --git a/packages/web/src/app/web-player/WebPlayer.tsx b/packages/web/src/app/web-player/WebPlayer.tsx index 8cf115de535..8569ad471a3 100644 --- a/packages/web/src/app/web-player/WebPlayer.tsx +++ b/packages/web/src/app/web-player/WebPlayer.tsx @@ -337,18 +337,6 @@ const validSearchCategories = [ 'playlists' ] -// Lazy load Sentry - initialize on first user interaction or after app loads -if (typeof window !== 'undefined') { - // Initialize Sentry after a short delay to not block initial render - setTimeout(() => { - import('services/sentry').then(({ initializeSentry }) => { - initializeSentry().catch((err) => { - console.error('Failed to initialize Sentry:', err) - }) - }) - }, 100) -} - // Wrapper components for routes that need params or location const SearchCategoryLegacyRedirect = () => { const params = useParams<{ category?: string; query?: string }>() diff --git a/packages/web/src/common/store/pages/audio-rewards/sagas.ts b/packages/web/src/common/store/pages/audio-rewards/sagas.ts index 5d99a9bbcbb..8ee04761564 100644 --- a/packages/web/src/common/store/pages/audio-rewards/sagas.ts +++ b/packages/web/src/common/store/pages/audio-rewards/sagas.ts @@ -8,7 +8,6 @@ import { ChallengeRewardID, SpecifierWithAmount, Name, - Feature, ChallengeName } from '@audius/common/models' import { @@ -54,7 +53,6 @@ import { all } from 'typed-redux-saga' -import { reportToSentry } from 'store/errors/reportToSentry' import { waitForRead } from 'utils/sagaHelpers' import { foregroundPollingDaemon, @@ -358,17 +356,6 @@ function* claimSingleChallengeRewardAsync( ) if (res.error instanceof Errors.AntiAbuseOracleAttestationError) { aaoError = res.error - } else { - yield* call(reportToSentry, { - error, - name: 'ClaimRewards', - additionalInfo: { - challengeId, - specifier: res.specifier, - amount: res.amount - }, - feature: Feature.Rewards - }) } } const errorMessage = 'Some specifiers failed to claim' diff --git a/packages/web/src/common/store/pages/signon/sagas.ts b/packages/web/src/common/store/pages/signon/sagas.ts index 9d1de0b7d88..868b5ef274b 100644 --- a/packages/web/src/common/store/pages/signon/sagas.ts +++ b/packages/web/src/common/store/pages/signon/sagas.ts @@ -16,10 +16,8 @@ import { FavoriteSource, ID, FollowSource, - ErrorLevel, InstagramUser, TikTokUser, - Feature, Status } from '@audius/common/models' import { @@ -72,7 +70,6 @@ import { import { identify, make } from 'common/store/analytics/actions' import { UiErrorCode } from 'store/errors/actions' -import { reportToSentry } from 'store/errors/reportToSentry' import { setHasRequestedBrowserPermission } from 'utils/browserNotifications' import { push as pushRoute } from 'utils/navigation' import { restrictedHandles } from 'utils/restrictedHandles' @@ -156,12 +153,10 @@ function* fetchDefaultFollowArtists() { const defaultFollowUserIds = yield* call(getDefautFollowUserIds) yield* call(queryUsers, Array.from(defaultFollowUserIds)) } catch (e: any) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: e, - name: 'Sign Up: Unable to fetch default follow artists (aka Audius acct)', - feature: Feature.SignUp - }) + console.error( + 'Sign Up: Unable to fetch default follow artists (aka Audius acct)', + e + ) } } @@ -176,12 +171,7 @@ function* fetchReferrer( if (!user) return yield* put(signOnActions.setReferrer(user.user_id)) } catch (e: any) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: e, - name: 'Sign Up: fetchReferrer failed', - feature: Feature.SignUp - }) + console.error('Sign Up: fetchReferrer failed', e) } } } @@ -292,12 +282,7 @@ function* validateHandle( if (onValidate) onValidate(false) } } catch (err: any) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: err, - name: 'Sign Up: validateHandle failed', - feature: Feature.SignUp - }) + console.error('Sign Up: validateHandle failed', err) yield* put(signOnActions.validateHandleFailed(err.message)) if (onValidate) onValidate(true) } @@ -334,13 +319,7 @@ function* checkEmail(action: ReturnType) { } } } catch (error) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: error as Error, - level: ErrorLevel.Error, - name: 'Sign Up: email check failed', - feature: Feature.SignUp - }) + console.error('Sign Up: email check failed', error as Error) yield* put(toast({ content: messages.emailCheckFailed })) if (action.onError) { yield* call(action.onError) @@ -368,13 +347,10 @@ function* sendPostSignInRecoveryEmail({ try { yield* call(sendRecoveryEmail) } catch (err) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: err instanceof Error ? err : new Error(err as string), - name: 'Sign Up: Failed to send recovery email', - additionalInfo: { handle, email }, - feature: Feature.SignUp - }) + console.error( + 'Sign Up: Failed to send recovery email', + err instanceof Error ? err : new Error(err as string) + ) } } @@ -382,7 +358,6 @@ function* createGuestAccount( action: ReturnType ) { const { guestEmail } = action - const reportToSentry = yield* getContext('reportToSentry') const localStorage = yield* getContext('localStorage') const audiusBackendInstance = yield* getContext('audiusBackendInstance') const queryClient = yield* getContext('queryClient') @@ -444,19 +419,13 @@ function* createGuestAccount( }, () => {}, function* ({ error: err }: { error: Error }) { - reportToSentry({ - error: err as Error, - level: ErrorLevel.Fatal, - name: 'Sign Up: Failed to create guest account', - feature: Feature.SignUp - }) + console.error('Sign Up: Failed to create guest account', err as Error) } ) ) } function* signUp() { - const reportToSentry = yield* getContext('reportToSentry') const localStorage = yield* getContext('localStorage') const queryClient = yield* getContext('queryClient') @@ -482,18 +451,8 @@ function* signUp() { confirmerActions.requestConfirmation( handle, function* () { - const reportToSentry = yield* getContext('reportToSentry') const isNativeMobile = yield* getContext('isNativeMobile') - const createUserMetadata = { - name, - handle, - profilePicture: (signOn.profileImage?.file as File) || null, - coverPhoto: (signOn.coverPhoto?.file as File) || null, - isVerified: signOn.verified, - location - } - let userId: ID try { if (isGuest) { @@ -700,19 +659,7 @@ function* signUp() { location }) ) - reportToSentry({ - error, - level: ErrorLevel.Warning, - name: 'Sign Up: User rate limited', - additionalInfo: { - handle, - email, - location, - formFields: createUserMetadata, - hasWallet: alreadyExisted - }, - feature: Feature.SignUp - }) + console.error(error) } else if (blocked) { params.message = 'User was blocked' params.uiErrorCode = UiErrorCode.RELAY_BLOCKED @@ -723,32 +670,9 @@ function* signUp() { location }) ) - reportToSentry({ - error, - level: ErrorLevel.Warning, - name: 'Sign Up: User was blocked', - additionalInfo: { - handle, - email, - location, - formFields: createUserMetadata, - hasWallet: alreadyExisted - }, - feature: Feature.SignUp - }) + console.error(error) } else { - reportToSentry({ - error, - name: 'Sign Up: Other Error', - additionalInfo: { - handle, - email, - location, - formFields: createUserMetadata, - hasWallet: alreadyExisted - }, - feature: Feature.SignUp - }) + console.error(error) } yield* put(signOnActions.signUpFailed(params)) } @@ -780,13 +704,7 @@ function* signUp() { yield* put(signOnActions.signUpTimeout()) } if (error) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error, - name: 'Sign Up: Unknown error in signUp saga', - additionalInfo: { message, timeout }, - feature: Feature.SignUp - }) + console.error(error) } if (message) { console.debug(message) @@ -797,11 +715,7 @@ function* signUp() { ) ) } catch (error) { - reportToSentry({ - error: error as Error, - name: 'Sign Up: Unknown error in signUp saga', - feature: Feature.SignUp - }) + console.error('Sign Up: Unknown error in signUp saga', error as Error) } } @@ -877,9 +791,7 @@ function* signIn(action: ReturnType) { ) yield* put(make(Name.SIGN_IN_WITH_INCOMPLETE_ACCOUNT, { handle: '' })) - yield* call(reportToSentry, { - error: new Error('Failed to fetch account') - }) + console.error('Failed to fetch account') yield* put(toastActions.toast({ content: messages.incompleteAccount })) yield* put( @@ -1011,12 +923,7 @@ function* signIn(action: ReturnType) { } } } catch (err: any) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: err, - name: 'Sign In: unknown error', - feature: Feature.SignIn - }) + console.error('Sign In: unknown error', err) yield* put(signOnActions.signInFailed(err)) } } @@ -1031,13 +938,7 @@ function* followCollections( yield* put(saveCollection(collectionId, favoriteSource)) } } catch (err) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: err as Error, - name: 'Sign Up: Follow collections failed', - additionalInfo: { collectionIds, favoriteSource }, - feature: Feature.SignUp - }) + console.error('Sign Up: Follow collections failed', err as Error) } } @@ -1102,17 +1003,10 @@ function* followArtists( }) const followAction = success || failed if (failed) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: new Error(failed.error), - name: 'Sign Up: Artist follow failed during sign up', - additionalInfo: { - userId: failed.userId, - userIdsToFollow, - skipDefaultFollows - }, - feature: Feature.SignUp - }) + console.error( + 'Sign Up: Artist follow failed during sign up', + new Error(failed.error) + ) } const userIndex = userIdsToFollow.findIndex( (fId) => fId === followAction?.userId @@ -1126,12 +1020,10 @@ function* followArtists( // So we wait until both the user is indexed and the follow user actions are finished yield* call(audiusBackendInstance.updateUserLocationTimezone, { sdk }) } catch (err: any) { - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: err, - name: 'Sign Up: Unkown error while following artists on sign up', - feature: Feature.SignUp - }) + console.error( + 'Sign Up: Unkown error while following artists on sign up', + err + ) } } diff --git a/packages/web/src/common/store/pages/track/sagas.ts b/packages/web/src/common/store/pages/track/sagas.ts index a80c68d8a24..f746490ed6f 100644 --- a/packages/web/src/common/store/pages/track/sagas.ts +++ b/packages/web/src/common/store/pages/track/sagas.ts @@ -7,8 +7,7 @@ import { queryTrack, updateTrackData } from '@audius/common/api' -import { Feature } from '@audius/common/models' -import { getContext, getSDK, trackPageActions } from '@audius/common/store' +import { getSDK, trackPageActions } from '@audius/common/store' import { dayjs } from '@audius/common/utils' import { Id, OptionalId } from '@audius/sdk' import { call, takeEvery } from 'typed-redux-saga' @@ -70,13 +69,10 @@ function* watchTrackPageMakePublic() { } catch (error) { // Roll back the optimistic update. yield* call(updateTrackData, [track]) - const reportToSentry = yield* getContext('reportToSentry') - reportToSentry({ - error: error instanceof Error ? error : new Error(String(error)), - name: 'Make Track Public', - additionalInfo: { trackId }, - feature: Feature.Edit - }) + console.error( + 'Make Track Public', + error instanceof Error ? error : new Error(String(error)) + ) } } ) diff --git a/packages/web/src/common/store/playback/errorSagas.ts b/packages/web/src/common/store/playback/errorSagas.ts index 38219c11d18..694a47e8a0c 100644 --- a/packages/web/src/common/store/playback/errorSagas.ts +++ b/packages/web/src/common/store/playback/errorSagas.ts @@ -1,4 +1,3 @@ -import { Feature } from '@audius/common/models' import { playbackActions } from '@audius/common/store' import { createErrorSagas } from 'utils/errorSagas' @@ -15,8 +14,7 @@ const errorSagas = createErrorSagas({ error: action.error, trackId: action.trackId, info: action.info - }), - feature: Feature.Playback + }) }) export default errorSagas diff --git a/packages/web/src/common/store/playback/sagas.ts b/packages/web/src/common/store/playback/sagas.ts index 9feb969dac1..164181d547f 100644 --- a/packages/web/src/common/store/playback/sagas.ts +++ b/packages/web/src/common/store/playback/sagas.ts @@ -9,7 +9,6 @@ import { queryUser } from '@audius/common/api' import { - Feature, Kind, Name, PlaybackSource as AnalyticsPlaybackSource, @@ -498,8 +497,7 @@ function* handleAudioErrors() { playbackActions.error({ error, trackId, - info: data, - feature: Feature.Playback + info: data }) ) } diff --git a/packages/web/src/common/store/social/collections/errorSagas.ts b/packages/web/src/common/store/social/collections/errorSagas.ts index ea3a5512458..06345ed7987 100644 --- a/packages/web/src/common/store/social/collections/errorSagas.ts +++ b/packages/web/src/common/store/social/collections/errorSagas.ts @@ -1,4 +1,3 @@ -import { Feature } from '@audius/common/models' import { collectionsSocialActions as socialCollectionActions } from '@audius/common/store' import { createErrorSagas } from 'utils/errorSagas' @@ -18,8 +17,7 @@ const errorSagas = createErrorSagas({ getAdditionalInfo: (action: CollectionErrors) => ({ error: action.error, collectionId: action.collectionId - }), - feature: Feature.Social + }) }) export default errorSagas diff --git a/packages/web/src/common/store/social/tracks/errorSagas.ts b/packages/web/src/common/store/social/tracks/errorSagas.ts index 66246dec94f..c21a0b89838 100644 --- a/packages/web/src/common/store/social/tracks/errorSagas.ts +++ b/packages/web/src/common/store/social/tracks/errorSagas.ts @@ -1,4 +1,3 @@ -import { Feature } from '@audius/common/models' import { tracksSocialActions as socialTrackActions } from '@audius/common/store' import { createErrorSagas } from 'utils/errorSagas' @@ -19,8 +18,7 @@ const errorSagas = createErrorSagas({ getAdditionalInfo: (action: TrackRepostErrors) => ({ error: action.error, trackId: action.trackId - }), - feature: Feature.Social + }) }) export default errorSagas diff --git a/packages/web/src/common/store/social/users/errorSagas.ts b/packages/web/src/common/store/social/users/errorSagas.ts index 2379d62efb6..ae21f2eb62c 100644 --- a/packages/web/src/common/store/social/users/errorSagas.ts +++ b/packages/web/src/common/store/social/users/errorSagas.ts @@ -1,4 +1,3 @@ -import { Feature } from '@audius/common/models' import { usersSocialActions as socialUserActions } from '@audius/common/store' import { createErrorSagas } from 'utils/errorSagas' @@ -19,8 +18,7 @@ const errorSagas = createErrorSagas({ getAdditionalInfo: (action: UserErrors) => ({ error: action.error, userId: action.userId - }), - feature: Feature.Social + }) }) export default errorSagas diff --git a/packages/web/src/components/error-wrapper/ErrorWrapper.tsx b/packages/web/src/components/error-wrapper/ErrorWrapper.tsx index a4e8202c14b..f330763d6b1 100644 --- a/packages/web/src/components/error-wrapper/ErrorWrapper.tsx +++ b/packages/web/src/components/error-wrapper/ErrorWrapper.tsx @@ -10,16 +10,13 @@ class ErrorWrapper extends PureComponent { didError: false } - async componentDidCatch(error: Error | null, errorInfo: object) { + componentDidCatch(error: Error | null, _errorInfo: object) { this.setState({ didError: true }) - try { - // Lazy load Sentry SDK - const Sentry = await import('@sentry/browser') - const { errorMessage } = this.props - if (errorMessage) Sentry.captureMessage(errorMessage) - Sentry.captureException(error) - } catch (err) { - console.error('Failed to report error to Sentry:', err) + const { errorMessage } = this.props + if (errorMessage) { + console.error(errorMessage, error) + } else { + console.error(error) } } diff --git a/packages/web/src/components/error-wrapper/componentWithErrorBoundary.tsx b/packages/web/src/components/error-wrapper/componentWithErrorBoundary.tsx index 16b2fd78441..5fca9a30989 100644 --- a/packages/web/src/components/error-wrapper/componentWithErrorBoundary.tsx +++ b/packages/web/src/components/error-wrapper/componentWithErrorBoundary.tsx @@ -1,6 +1,5 @@ import React, { ReactNode, useCallback } from 'react' -import { ErrorLevel } from '@audius/common/models' import { ErrorBoundary, ErrorBoundaryProps, @@ -40,8 +39,7 @@ export function componentWithErrorBoundary

( name: `ComponentErrorBoundary: ${name}`, message: error.message, shouldRedirect: false, - additionalInfo: errorInfo, - level: ErrorLevel.Error + additionalInfo: errorInfo }) ) }, diff --git a/packages/web/src/components/instagram-auth/InstagramAuth.tsx b/packages/web/src/components/instagram-auth/InstagramAuth.tsx index 078b3c49bb4..3b5cc436980 100644 --- a/packages/web/src/components/instagram-auth/InstagramAuth.tsx +++ b/packages/web/src/components/instagram-auth/InstagramAuth.tsx @@ -1,13 +1,10 @@ import { MouseEvent, ReactNode, useCallback } from 'react' -import { Feature } from '@audius/common/models' import cn from 'classnames' import 'url-search-params-polyfill' import { audiusBackendInstance } from 'services/audius-backend/audius-backend-instance' import { env } from 'services/env' -import { reportToSentry } from 'store/errors/reportToSentry' - const HOSTNAME = env.PUBLIC_HOSTNAME const INSTAGRAM_APP_ID = env.INSTAGRAM_APP_ID const INSTAGRAM_REDIRECT_URL = env.INSTAGRAM_REDIRECT_URL || '' @@ -92,12 +89,7 @@ const InstagramAuth = ({ return onSuccess(profileRespJson.username, igUserProfile) } catch (err: any) { - reportToSentry({ - error: err, - name: 'Sign Up: InstagramAuth getProfile failed', - tags: { socialMedia: 'instagram' }, - feature: Feature.SignUp - }) + console.error('Sign Up: InstagramAuth getProfile failed', err) onFailure(err) } }, @@ -137,12 +129,7 @@ const InstagramAuth = ({ 'They were either not set during the redirect, or were removed—typically by a ' + 'routing library—before Instagram react component could read it.' ) - reportToSentry({ - error, - name: 'Sign Up: InstagramAuth oauth redirect failed', - feature: Feature.SignUp, - tags: { socialMedia: 'instagram' } - }) + console.error(error) return onFailure(error) } } @@ -159,12 +146,7 @@ const InstagramAuth = ({ const popup = openPopup() await new Promise((resolve) => setTimeout(resolve, 500)) // wait 500ms if (!popup) { - reportToSentry({ - error: new Error('Unable to open InstagramAuth popup'), - name: 'Sign Up', - feature: Feature.SignUp, - tags: { socialMedia: 'instagram' } - }) + console.error('Sign Up', new Error('Unable to open InstagramAuth popup')) } try { if (popup) { @@ -174,12 +156,10 @@ const InstagramAuth = ({ polling(popup) } } catch (error) { - reportToSentry({ - error: error as Error, - name: 'Sign Up: InstagramAuth popup polling failed', - feature: Feature.SignUp, - tags: { socialMedia: 'instagram' } - }) + console.error( + 'Sign Up: InstagramAuth popup polling failed', + error as Error + ) if (popup) popup.close() return onFailure(error) } diff --git a/packages/web/src/components/payout-wallet-modal/PayoutWalletModal.tsx b/packages/web/src/components/payout-wallet-modal/PayoutWalletModal.tsx index 4930c0d1e07..33704cee652 100644 --- a/packages/web/src/components/payout-wallet-modal/PayoutWalletModal.tsx +++ b/packages/web/src/components/payout-wallet-modal/PayoutWalletModal.tsx @@ -44,8 +44,6 @@ import { ModalForm } from 'components/modal-form/ModalForm' import { audiusSdk } from 'services/audius-sdk' import { env } from 'services/env' import { getAssociatedTokenAccountOwner } from 'services/solana/solana' -import { reportToSentry } from 'store/errors/reportToSentry' - const messages = { title: 'Payout Wallet', body: 'Automatically send USDC earned on Audius to an external Solana wallet.', @@ -310,10 +308,7 @@ export const PayoutWalletModal = NiceModal.create(() => { modal.hide() } catch (e) { setErrors({ address: 'Please try again later' }) - await reportToSentry({ - error: e as Error, - name: 'Payout Wallet: Error setting wallet' - }) + await console.error('Payout Wallet: Error setting wallet', e as Error) } setIsSubmitting(false) }, diff --git a/packages/web/src/components/send-tokens-modal/SendTokensModal.tsx b/packages/web/src/components/send-tokens-modal/SendTokensModal.tsx index 9f02574e9b5..ea4e74e01c5 100644 --- a/packages/web/src/components/send-tokens-modal/SendTokensModal.tsx +++ b/packages/web/src/components/send-tokens-modal/SendTokensModal.tsx @@ -2,18 +2,12 @@ import { useCallback, useState, useEffect, useRef } from 'react' import { useSendCoins } from '@audius/common/api' import { walletMessages } from '@audius/common/messages' -import { - ErrorLevel, - Feature, - SolanaWalletAddress, - User -} from '@audius/common/models' +import { SolanaWalletAddress, User } from '@audius/common/models' import { registerNiceModalId } from '@audius/common/services' import { useSendTokensModal } from '@audius/common/store' import NiceModal, { useModal } from '@ebay/nice-modal-react' import ResponsiveModal from 'components/modal/ResponsiveModal' -import { reportToSentry } from 'store/errors/reportToSentry' import SendTokensConfirmation from './SendTokensConfirmation' import SendTokensFailure from './SendTokensFailure' @@ -186,17 +180,7 @@ const SendTokensModal = NiceModal.create(() => { } setError(errorMessage) - reportToSentry({ - level: ErrorLevel.Error, - error: error as Error, - additionalInfo: { - amount: state.amount.toString(), - destinationAddress: state.destinationAddress, - mint: state.selectedMint, - errorString - }, - feature: Feature.SendTokens - }) + console.error(error as Error) setState((prev) => ({ ...prev, step: 'failure' })) } } diff --git a/packages/web/src/components/x-auth/XAuthButton.tsx b/packages/web/src/components/x-auth/XAuthButton.tsx index 9258a5aa248..9b0d571701f 100644 --- a/packages/web/src/components/x-auth/XAuthButton.tsx +++ b/packages/web/src/components/x-auth/XAuthButton.tsx @@ -3,13 +3,10 @@ import { MouseEventHandler } from 'react' import 'whatwg-fetch' import 'url-search-params-polyfill' -import { Feature } from '@audius/common/models' import { TwitterProfile } from '@audius/common/store' import { SocialButton } from '@audius/harmony' import { audiusBackendInstance } from 'services/audius-backend/audius-backend-instance' -import { reportToSentry } from 'store/errors/reportToSentry' - const REQUEST_TOKEN_URL = `${audiusBackendInstance.identityServiceUrl}/twitter` as const const LOGIN_URL = @@ -81,13 +78,10 @@ export const XAuthButton = (props: XAuthButtonProps) => { }) .catch((error) => { popup?.close() - reportToSentry({ - error: error as Error, - additionalInfo: { authenticationUrl, screenName }, - tags: { socialMedia: 'twitter' }, - name: 'Sign Up: Twitter getRequestToken popup failed', - feature: Feature.SignUp - }) + console.error( + 'Sign Up: Twitter getRequestToken popup failed', + error as Error + ) return onFailure(error) }) } @@ -135,13 +129,7 @@ export const XAuthButton = (props: XAuthButtonProps) => { 'They were either not set during the redirect, or were removed—typically by a ' + 'routing library—before Twitter react component could read it.' ) - reportToSentry({ - error, - additionalInfo: { popupLocation: popup.location }, - tags: { socialMedia: 'twitter' }, - name: 'Sign Up: Twitter oauth redirect failed', - feature: Feature.SignUp - }) + console.error(error) return onFailure(error) } } @@ -169,12 +157,7 @@ export const XAuthButton = (props: XAuthButtonProps) => { response.json().then(({ uuid, profile }) => onSuccess(uuid, profile)) }) .catch((error) => { - reportToSentry({ - error: error as Error, - tags: { socialMedia: 'twitter' }, - name: 'Sign Up: Twitter getOauthToken failed', - feature: Feature.SignUp - }) + console.error('Sign Up: Twitter getOauthToken failed', error as Error) return onFailure(error) }) } diff --git a/packages/web/src/hooks/useClaimFees.ts b/packages/web/src/hooks/useClaimFees.ts index 0f78df51921..5912a0cd302 100644 --- a/packages/web/src/hooks/useClaimFees.ts +++ b/packages/web/src/hooks/useClaimFees.ts @@ -4,7 +4,6 @@ import { useQueryContext, pollUntilAudioBalanceChanges } from '@audius/common/api' -import { Feature } from '@audius/common/models' import { createUserBankIfNeeded } from '@audius/common/services' import type { Provider as SolanaProvider } from '@reown/appkit-adapter-solana/react' import { VersionedTransaction } from '@solana/web3.js' @@ -16,8 +15,6 @@ import { import { appkitModal } from 'app/ReownAppKitModal' import { track } from 'services/analytics' -import { reportToSentry } from 'store/errors/reportToSentry' - export type UseClaimFeesParams = { tokenMint: string externalWalletAddress: string @@ -95,14 +92,7 @@ export const useClaimFees = ( ...options, onError: (error, params) => { // Call the original onError if provided - reportToSentry({ - error, - feature: Feature.FanClubs, - name: 'Fan club fees claim error', - additionalInfo: { - ...params - } - }) + console.error(error) }, onSuccess: async (data, variables, context) => { // Invalidate the fan club query to refetch the updated fees diff --git a/packages/web/src/hooks/useClaimVestedCoins.ts b/packages/web/src/hooks/useClaimVestedCoins.ts index b29439a30ae..fcfd6d6cbae 100644 --- a/packages/web/src/hooks/useClaimVestedCoins.ts +++ b/packages/web/src/hooks/useClaimVestedCoins.ts @@ -6,7 +6,6 @@ import { useQueryContext, QUERY_KEYS } from '@audius/common/api' -import { Feature } from '@audius/common/models' import type { UserCoinWithAccounts } from '@audius/sdk' import type { Provider as SolanaProvider } from '@reown/appkit-adapter-solana/react' import { PublicKey, VersionedTransaction } from '@solana/web3.js' @@ -17,8 +16,6 @@ import { } from '@tanstack/react-query' import { appkitModal } from 'app/ReownAppKitModal' -import { reportToSentry } from 'store/errors/reportToSentry' - export type UseClaimVestedCoinsParams = { tokenMint: string externalWalletAddress: string @@ -124,14 +121,7 @@ export const useClaimVestedCoins = ( }, ...options, onError: (error, params) => { - reportToSentry({ - error, - feature: Feature.FanClubs, - name: 'Fan club vested coins claim error', - additionalInfo: { - ...params - } - }) + console.error(error) options?.onError?.(error, params, undefined) }, onSuccess: (data: ClaimVestedCoinsResult, variables, context) => { diff --git a/packages/web/src/hooks/useConnectExternalWallets.ts b/packages/web/src/hooks/useConnectExternalWallets.ts index 7323b944c00..5f4f5dd2ff6 100644 --- a/packages/web/src/hooks/useConnectExternalWallets.ts +++ b/packages/web/src/hooks/useConnectExternalWallets.ts @@ -1,7 +1,7 @@ import { useState, useCallback, useEffect, useRef } from 'react' import { useCurrentAccountUser } from '@audius/common/api' -import { Name, Chain, Feature } from '@audius/common/models' +import { Name, Chain } from '@audius/common/models' import { isLightTheme } from '@audius/harmony' import { useTheme } from '@emotion/react' import type { NamespaceTypeMap } from '@reown/appkit' @@ -15,8 +15,6 @@ import { useSwitchAccount, useAccount } from 'wagmi' import { appkitModal, audiusChain } from 'app/ReownAppKitModal' import { useRecord, make } from 'common/store/analytics/actions' -import { reportToSentry } from 'store/errors/reportToSentry' - /** * Error when trying to associate a wallet that was already associated */ @@ -160,11 +158,10 @@ export const useConnectExternalWallets = ( ) } if (!solAddress && !ethAddress) { - reportToSentry({ - error: new Error('No wallets found to connect'), - name: 'Connect Wallet Error', - feature: Feature.FanClubs - }) + console.error( + 'Connect Wallet Error', + new Error('No wallets found to connect') + ) } setCurrentWallets({ @@ -184,14 +181,7 @@ export const useConnectExternalWallets = ( error: String(event.data) }) ) - reportToSentry({ - error: new Error('Connect Wallet Error'), - name: 'Connect Wallet Error', - feature: Feature.FanClubs, - additionalInfo: { - error: String(event.data) - } - }) + console.error('Connect Wallet Error', new Error('Connect Wallet Error')) onError?.(event) } }) diff --git a/packages/web/src/hooks/useExternalWalletSwap.ts b/packages/web/src/hooks/useExternalWalletSwap.ts index b06a8f88c72..205c8d78e01 100644 --- a/packages/web/src/hooks/useExternalWalletSwap.ts +++ b/packages/web/src/hooks/useExternalWalletSwap.ts @@ -10,7 +10,6 @@ import { SwapTokensResult, getConnectedWalletsQueryOptions } from '@audius/common/api' -import { ErrorLevel, Feature } from '@audius/common/models' import { getJupiterQuoteByMintWithRetry, jupiterInstance @@ -28,8 +27,6 @@ import { import { useMutation, useQueryClient } from '@tanstack/react-query' import { appkitModal } from 'app/ReownAppKitModal' -import { reportToSentry } from 'store/errors/reportToSentry' - type BaseSwapParams = { walletAddress: string } @@ -631,10 +628,8 @@ export const useExternalWalletSwap = () => { // Determine error type based on progress let errorType = SwapErrorType.UNKNOWN let errorStage = 'UNKNOWN' - let userCancelled = false if (errorMessage.includes('User rejected')) { - userCancelled = true hookProgress.userCancelled = true errorType = SwapErrorType.WALLET_ERROR errorStage = 'USER_REJECTED' @@ -652,18 +647,10 @@ export const useExternalWalletSwap = () => { errorStage = 'SENDING_TRANSACTION' } - reportToSentry({ - error: error instanceof Error ? error : new Error(errorMessage), - level: ErrorLevel.Error, - feature: Feature.FanClubs, - name: 'External Wallet Swap Error', - additionalInfo: { - ...params, - progress: hookProgress, - errorStage, - userCancelled - } - }) + console.error( + 'External Wallet Swap Error', + error instanceof Error ? error : new Error(errorMessage) + ) return { status: SwapStatus.ERROR, diff --git a/packages/web/src/hooks/useLaunchCoin.ts b/packages/web/src/hooks/useLaunchCoin.ts index 083b5e96e57..63cf9bcc5f4 100644 --- a/packages/web/src/hooks/useLaunchCoin.ts +++ b/packages/web/src/hooks/useLaunchCoin.ts @@ -7,7 +7,6 @@ import { useQueryContext } from '@audius/common/api' import { - Feature, LaunchCoinErrorMetadata, LaunchCoinResponse } from '@audius/common/models' @@ -41,7 +40,7 @@ export const LAUNCHPAD_COIN_DECIMALS = 9 // All our launched coins will have 9 d * This creates a new token and optionally makes an initial purchase. */ export const useLaunchCoin = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const queryClient = useQueryClient() return useMutation({ @@ -154,14 +153,10 @@ export const useLaunchCoin = () => { ? 'firstBuyConfirmed' : 'poolCreateConfirmed' } catch (e) { - if (reportToSentry) { - reportToSentry({ - error: e instanceof Error ? e : new Error(e as string), - name: 'Confirm Launch Failure', - feature: Feature.FanClubs, - additionalInfo: errorMetadata - }) - } + console.error( + 'Confirm Launch Failure', + e instanceof Error ? e : new Error(e as string) + ) throw e } @@ -236,14 +231,10 @@ export const useLaunchCoin = () => { errorMetadata.sdkCoinAdded = true errorMetadata.lastStep = 'sdkCoinAdded' } catch (e) { - if (reportToSentry) { - reportToSentry({ - error: e instanceof Error ? e : new Error(e as string), - name: 'SDK Create Coin Failure', - feature: Feature.FanClubs, - additionalInfo: errorMetadata - }) - } + console.error( + 'SDK Create Coin Failure', + e instanceof Error ? e : new Error(e as string) + ) } return { @@ -253,14 +244,10 @@ export const useLaunchCoin = () => { errorMetadata } } catch (error) { - if (reportToSentry) { - reportToSentry({ - error: error instanceof Error ? error : new Error(error as string), - name: 'Launch Coin Failure', - feature: Feature.FanClubs, - additionalInfo: errorMetadata - }) - } + console.error( + 'Launch Coin Failure', + error instanceof Error ? error : new Error(error as string) + ) return { isError: true, errorMetadata, newMint: '', logoUri: '' } } }, @@ -288,18 +275,10 @@ export const useLaunchCoin = () => { }) }, onError: (error, params, _context) => { - if (reportToSentry) { - reportToSentry({ - error: error instanceof Error ? error : new Error(error as string), - name: 'Launch Coin', - feature: Feature.TanQuery, - additionalInfo: { - coinName: params.name, - coinSymbol: params.symbol, - initialBuyAmount: params.initialBuyAmountAudio ?? 0 - } - }) - } + console.error( + 'Launch Coin', + error instanceof Error ? error : new Error(error as string) + ) } }) } diff --git a/packages/web/src/pages/audio-page/components/modals/ConnectedWalletsModal.tsx b/packages/web/src/pages/audio-page/components/modals/ConnectedWalletsModal.tsx index b38048c0181..6ed63bcf810 100644 --- a/packages/web/src/pages/audio-page/components/modals/ConnectedWalletsModal.tsx +++ b/packages/web/src/pages/audio-page/components/modals/ConnectedWalletsModal.tsx @@ -23,7 +23,6 @@ import NiceModal, { useModal } from '@ebay/nice-modal-react' import Drawer from 'components/drawer/Drawer' import { ToastContext } from 'components/toast/ToastContext' import { useIsMobile } from 'hooks/useIsMobile' -import { reportToSentry } from 'store/errors/reportToSentry' import { NEW_WALLET_CONNECTED_TOAST_TIMEOUT_MILLIS } from 'utils/constants' import { @@ -113,20 +112,7 @@ export const ConnectedWalletsModal = NiceModal.create(() => { toast(messages.walletAlreadyAdded) } else { toast(messages.error) - await reportToSentry({ - name: 'ConnectWallet', - error: - e instanceof Error - ? e - : new Error( - e instanceof Object && 'message' in e - ? (e.message as string) - : 'Unknown Error' - ), - additionalInfo: { - raw: e - } - }) + await console.error('ConnectWallet', e instanceof Error) } }, [toast] diff --git a/packages/web/src/pages/edit-coin-details-page/EditCoinDetailsPage.tsx b/packages/web/src/pages/edit-coin-details-page/EditCoinDetailsPage.tsx index 38822e7d87d..0012d11af60 100644 --- a/packages/web/src/pages/edit-coin-details-page/EditCoinDetailsPage.tsx +++ b/packages/web/src/pages/edit-coin-details-page/EditCoinDetailsPage.tsx @@ -47,7 +47,6 @@ import { TextAreaField, TextField } from 'components/form-fields' import { Header } from 'components/header/desktop/Header' import Page from 'components/page/Page' import { useCoverPhoto } from 'hooks/useCoverPhoto' -import { reportToSentry } from 'store/errors/reportToSentry' import { ALLOWED_IMAGE_FILE_TYPES, resizeImage @@ -346,10 +345,10 @@ export const EditCoinDetailsPage = () => { const previewUrl = URL.createObjectURL(processedFile) setBannerPreviewUrl(previewUrl) } catch (error) { - reportToSentry({ - error: error instanceof Error ? error : new Error(error as string), - name: 'Coin Banner Upload Processing Error' - }) + console.error( + 'Coin Banner Upload Processing Error', + error instanceof Error ? error : new Error(error as string) + ) setBannerError(bannerMessages.errors.processingError) } finally { setIsProcessingBanner(false) @@ -389,20 +388,7 @@ export const EditCoinDetailsPage = () => { ? e.message : 'Failed to update coin details. Please try again.' setSubmitError(errorMessage) - await reportToSentry({ - name: 'EditCoinDetails', - error: - e instanceof Error - ? e - : new Error( - e instanceof Object && 'message' in e - ? (e.message as string) - : 'Unknown Error' - ), - additionalInfo: { - raw: e - } - }) + await console.error('EditCoinDetails', e instanceof Error) throw e // Re-throw to let Formik handle the error } } diff --git a/packages/web/src/pages/fan-club-detail-page/components/FanClubInfoSection.tsx b/packages/web/src/pages/fan-club-detail-page/components/FanClubInfoSection.tsx index 582ff696700..24250500040 100644 --- a/packages/web/src/pages/fan-club-detail-page/components/FanClubInfoSection.tsx +++ b/packages/web/src/pages/fan-club-detail-page/components/FanClubInfoSection.tsx @@ -12,7 +12,7 @@ import { useIsManagedAccount } from '@audius/common/hooks' import { coinDetailsMessages, walletMessages } from '@audius/common/messages' -import { Feature, Name, WidthSizes } from '@audius/common/models' +import { Name, WidthSizes } from '@audius/common/models' import { useClaimVestedCoinsModal } from '@audius/common/store' import { formatCurrencyWithSubscript, @@ -63,7 +63,6 @@ import { useConnectExternalWallets } from 'hooks/useConnectExternalWallets' import { useCoverPhoto } from 'hooks/useCoverPhoto' import { useIsMobile } from 'hooks/useIsMobile' import { env } from 'services/env' -import { reportToSentry } from 'store/errors/reportToSentry' import { push } from 'utils/navigation' const { REWARDS_PAGE, UPLOAD_PAGE } = route @@ -589,17 +588,7 @@ export const FanClubInfoSection = ({ ) }, onError: (error) => { - reportToSentry({ - error, - feature: Feature.FanClubs, - name: 'Failed to claim fan club fees', - additionalInfo: { - coin, - tokenMint: mint, - unclaimedFees, - totalArtistEarnings - } - }) + console.error(error) console.error(error) toast(toastMessages.feesClaimFailed) record( @@ -630,15 +619,7 @@ export const FanClubInfoSection = ({ ) }, onError: (error) => { - reportToSentry({ - error, - feature: Feature.FanClubs, - name: 'Failed to claim vested fan clubs', - additionalInfo: { - coin, - tokenMint: mint - } - }) + console.error(error) console.error(error) toast(toastMessages.vestedCoinsClaimFailed) record( diff --git a/packages/web/src/pages/fan-clubs-launchpad-page/LaunchpadPage.tsx b/packages/web/src/pages/fan-clubs-launchpad-page/LaunchpadPage.tsx index 37f4f9f52a3..a5d9ab0daf8 100644 --- a/packages/web/src/pages/fan-clubs-launchpad-page/LaunchpadPage.tsx +++ b/packages/web/src/pages/fan-clubs-launchpad-page/LaunchpadPage.tsx @@ -11,8 +11,6 @@ import { useFeatureFlag } from '@audius/common/hooks' import { launchpadMessages } from '@audius/common/messages' import { Chain, - ErrorLevel, - Feature, Name, LaunchpadFormValues, WidthSizes @@ -43,7 +41,6 @@ import { useCoverPhoto } from 'hooks/useCoverPhoto' import { useExternalWalletSwap } from 'hooks/useExternalWalletSwap' import { LAUNCHPAD_COIN_DECIMALS, useLaunchCoin } from 'hooks/useLaunchCoin' import { make, track } from 'services/analytics' -import { reportToSentry } from 'store/errors/reportToSentry' import { ConnectedWalletHeader } from './components' import { @@ -69,13 +66,6 @@ const messages = { } } -const sanitizeFormValuesForLogging = ( - values: LaunchpadFormValues -): Omit => { - const { coinImage: _coinImageIgnored, ...rest } = values - return rest -} - /** * Fetches an image from a URL and converts it to a File object * Used to copy the user's cover photo for the coin banner @@ -176,15 +166,10 @@ const LaunchpadPageContent = ({ const { solana: connectedWallet } = newWallets if (!connectedWallet) { alert(messages.errors.noSolanaWalletFound) - reportToSentry({ - error: new Error(messages.errors.noSolanaWalletFound), - name: 'Launchpad Page', - feature: Feature.FanClubs, - additionalInfo: { - newWallets, - externalWalletAccount - } - }) + console.error( + 'Launchpad Page', + new Error(messages.errors.noSolanaWalletFound) + ) return } @@ -213,21 +198,15 @@ const LaunchpadPageContent = ({ } } catch (error) { alert(messages.errors.failedToCheckWalletBalance) - reportToSentry({ - error: error instanceof Error ? error : new Error(error as string), - name: 'Launchpad Page', - feature: Feature.FanClubs, - additionalInfo: { - newWallets, - externalWalletAccount - } - }) + console.error( + 'Launchpad Page', + error instanceof Error ? error : new Error(error as string) + ) } }, [ queryClient, queryContext, - externalWalletAccount, trackWalletConnectSuccess, trackWalletInsufficientBalance, handleWalletAddSuccess @@ -560,18 +539,12 @@ export const LaunchpadPage = () => { toast(messages.errors.unknownError, Infinity, { rightIcon: IconClose }) - reportToSentry({ - error: new Error( + console.error( + 'Launchpad Submit Error', + new Error( 'Unable to submit launchpad form. No user or connected wallet found' - ), - name: 'Launchpad Submit Error', - feature: Feature.FanClubs, - additionalInfo: { - currentUser, - connectedWalletAddress, - formValues: sanitizeFormValuesForLogging(formValues) - } - }) + ) + ) throw new Error('No user or connected wallet found') } @@ -606,17 +579,12 @@ export const LaunchpadPage = () => { toast(messages.errors.unknownError, Infinity, { rightIcon: IconClose }) - reportToSentry({ - error: new Error( + console.error( + 'First Buy Retry Failure', + new Error( 'First buy retry failed. No mint address or pay amount found.' - ), - name: 'First Buy Retry Failure', - feature: Feature.FanClubs, - additionalInfo: { - errorMetadata, - formValues: sanitizeFormValuesForLogging(formValues) - } - }) + ) + ) } } else { trackCoinCreationStarted(connectedWalletAddress, formValues) @@ -632,29 +600,17 @@ export const LaunchpadPage = () => { console.warn( 'Failed to copy banner image, coin will be created without banner' ) - reportToSentry({ - error: new Error( - 'Failed to copy banner image from cover photo' - ), - name: 'Failed to Copy Banner Image', - feature: Feature.FanClubs, - level: ErrorLevel.Warning, - additionalInfo: { - bannerImageUrl: defaultBannerImageUrl - } - }) + console.error( + 'Failed to Copy Banner Image', + new Error('Failed to copy banner image from cover photo') + ) } } catch (error) { console.warn('Error copying banner image:', error) - reportToSentry({ - error: error instanceof Error ? error : new Error(String(error)), - name: 'Error Copying Banner Image', - feature: Feature.FanClubs, - level: ErrorLevel.Warning, - additionalInfo: { - bannerImageUrl: defaultBannerImageUrl - } - }) + console.error( + 'Error Copying Banner Image', + error instanceof Error ? error : new Error(String(error)) + ) } } diff --git a/packages/web/src/pages/fan-clubs-launchpad-page/pages/SetupPage.tsx b/packages/web/src/pages/fan-clubs-launchpad-page/pages/SetupPage.tsx index c6df95029cd..e9bd17958e0 100644 --- a/packages/web/src/pages/fan-clubs-launchpad-page/pages/SetupPage.tsx +++ b/packages/web/src/pages/fan-clubs-launchpad-page/pages/SetupPage.tsx @@ -1,12 +1,11 @@ import { useRef, useState } from 'react' import { launchpadMessages } from '@audius/common/messages' -import { ErrorLevel, Feature, LaunchpadFormValues } from '@audius/common/models' +import { LaunchpadFormValues } from '@audius/common/models' import { Flex, Paper, Text } from '@audius/harmony' import { useFormikContext } from 'formik' import { useFormImageUrl } from 'hooks/useFormImageUrl' -import { reportToSentry } from 'store/errors/reportToSentry' import { resizeImage, ALLOWED_IMAGE_FILE_TYPES @@ -110,12 +109,10 @@ export const SetupPage = ({ onContinue, onBack }: SetupPageProps) => { setFieldValue('coinImage', processedFile) // Hook will automatically create blob URL from processed file } catch (error) { - reportToSentry({ - error: error instanceof Error ? error : new Error(error as string), - name: 'Launchpad Image Upload Processing Error', - feature: Feature.FanClubs, - level: ErrorLevel.Warning // not worth alerting on here - }) + console.error( + 'Launchpad Image Upload Processing Error', + error instanceof Error ? error : new Error(error as string) + ) setImageError(messages.errors.processingError) } finally { setIsProcessingImage(false) diff --git a/packages/web/src/pages/fan-clubs-launchpad-page/validation.ts b/packages/web/src/pages/fan-clubs-launchpad-page/validation.ts index 6e765bd5ba0..294d5613a5d 100644 --- a/packages/web/src/pages/fan-clubs-launchpad-page/validation.ts +++ b/packages/web/src/pages/fan-clubs-launchpad-page/validation.ts @@ -7,7 +7,7 @@ import { useQueryContext, useWalletAudioBalance } from '@audius/common/api' -import { Chain, ErrorLevel, Feature } from '@audius/common/models' +import { Chain } from '@audius/common/models' import { MAX_HANDLE_LENGTH } from '@audius/common/services' import { AUDIO } from '@audius/fixed-decimal' import { useAppKitAccount as useExternalWalletAccount } from '@reown/appkit/react' @@ -16,8 +16,6 @@ import { z } from 'zod' import { toFormikValidationSchema } from 'zod-formik-adapter' import { useLaunchpadConfig } from 'hooks/useLaunchpadConfig' -import { reportToSentry } from 'store/errors/reportToSentry' - export const FIELDS = { coinName: 'coinName', coinSymbol: 'coinSymbol', @@ -119,16 +117,10 @@ export const setupFormSchema = ({ } } catch (error: any) { // This should rarely happen, and likely not a fatal error - reportToSentry({ - error: - error instanceof Error ? error : new Error(error as string), - name: 'Launchpad Ticker Validation Error', - feature: Feature.FanClubs, - level: ErrorLevel.Warning, - additionalInfo: { - ticker - } - }) + console.error( + 'Launchpad Ticker Validation Error', + error instanceof Error ? error : new Error(error as string) + ) // For other errors, show unknown error context.addIssue({ code: z.ZodIssueCode.custom, diff --git a/packages/web/src/pages/host-remix-contest-page/useUploadContestCover.ts b/packages/web/src/pages/host-remix-contest-page/useUploadContestCover.ts index 49a4605a901..29cec4a9b20 100644 --- a/packages/web/src/pages/host-remix-contest-page/useUploadContestCover.ts +++ b/packages/web/src/pages/host-remix-contest-page/useUploadContestCover.ts @@ -9,7 +9,7 @@ import { useQueryContext } from '@audius/common/api' * content-node URL the form can persist in `eventData.coverPhotoUrl`. */ export const useUploadContestCover = () => { - const { audiusSdk, reportToSentry } = useQueryContext() + const { audiusSdk } = useQueryContext() const [isUploading, setIsUploading] = useState(false) const upload = useCallback( @@ -45,17 +45,13 @@ export const useUploadContestCover = () => { return `${contentNodeEndpoint}/content/${cid}` } catch (error) { - reportToSentry({ - error: error as Error, - name: 'HostRemixContest', - additionalInfo: { where: 'useUploadContestCover' } - }) + console.error('HostRemixContest', error as Error) return null } finally { setIsUploading(false) } }, - [audiusSdk, reportToSentry] + [audiusSdk] ) return { upload, isUploading } diff --git a/packages/web/src/pages/oauth-login-page/OAuthLoginPage.tsx b/packages/web/src/pages/oauth-login-page/OAuthLoginPage.tsx index 5b40465dbe4..12fb69f98ff 100644 --- a/packages/web/src/pages/oauth-login-page/OAuthLoginPage.tsx +++ b/packages/web/src/pages/oauth-login-page/OAuthLoginPage.tsx @@ -8,7 +8,7 @@ import { useCurrentAccountUser } from '@audius/common/api' import { useAccountSwitcher } from '@audius/common/hooks' -import { Name, ErrorLevel, UserMetadata } from '@audius/common/models' +import { Name, UserMetadata } from '@audius/common/models' import { SignInResponse } from '@audius/common/services' import { signOutActions } from '@audius/common/store' import { @@ -34,7 +34,6 @@ import { AccountListContent } from 'components/nav/desktop/AccountSwitcher/Accou import { ProfileInfo } from 'components/profile-info/ProfileInfo' import { audiusSdk, authService } from 'services/audius-sdk' import { fingerprintClient } from 'services/fingerprint' -import { reportToSentry } from 'store/errors/reportToSentry' import styles from './OAuthLoginPage.module.css' import { ApproveTransactionScreen } from './components/ApproveTransactionScreen' @@ -115,7 +114,7 @@ export const OAuthLoginPage = () => { }) ) if (error && !isUserError) { - reportToSentry({ level: ErrorLevel.Error, error }) + console.error(error) } } diff --git a/packages/web/src/pages/oauth-login-page/OAuthSignUpPage.tsx b/packages/web/src/pages/oauth-login-page/OAuthSignUpPage.tsx index fecc2b01f29..0a28a0bc26b 100644 --- a/packages/web/src/pages/oauth-login-page/OAuthSignUpPage.tsx +++ b/packages/web/src/pages/oauth-login-page/OAuthSignUpPage.tsx @@ -1,14 +1,13 @@ import { useRef, useState } from 'react' import { accountFromSDK } from '@audius/common/adapters' -import { Name, ErrorLevel } from '@audius/common/models' +import { Name } from '@audius/common/models' import { Flex, Text } from '@audius/harmony' import { Routes, Route, Navigate, useLocation, useNavigate } from 'react-router' import { make, useRecord } from 'common/store/analytics/actions' import LoadingSpinner from 'components/loading-spinner/LoadingSpinner' import { audiusSdk, authService } from 'services/audius-sdk' -import { reportToSentry } from 'store/errors/reportToSentry' import { ContentWrapper } from './components/ContentWrapper' import { useOAuthSetup } from './hooks' @@ -94,7 +93,7 @@ export const OAuthSignUpPage = () => { }) ) if (error && !isUserError) { - reportToSentry({ level: ErrorLevel.Error, error }) + console.error(error) } }, onPendingTransactionApproval: () => {}, @@ -193,7 +192,7 @@ export const OAuthSignUpPage = () => { }) ) if (err instanceof Error) { - reportToSentry({ level: ErrorLevel.Error, error: err }) + console.error(err) } } } diff --git a/packages/web/src/pages/oauth-login-page/hooks.ts b/packages/web/src/pages/oauth-login-page/hooks.ts index ab088560e3e..68dc50855d6 100644 --- a/packages/web/src/pages/oauth-login-page/hooks.ts +++ b/packages/web/src/pages/oauth-login-page/hooks.ts @@ -1,12 +1,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react' import { useAccountStatus, useCurrentUserId } from '@audius/common/api' -import { - Name, - ErrorLevel, - statusIsNotFinalized, - UserMetadata -} from '@audius/common/models' +import { Name, statusIsNotFinalized, UserMetadata } from '@audius/common/models' import { Id } from '@audius/sdk' import * as queryString from 'query-string' import { useDispatch } from 'react-redux' @@ -16,7 +11,6 @@ import { make, useRecord } from 'common/store/analytics/actions' import { audiusSdk } from 'services/audius-sdk' import { identityService } from 'services/audius-sdk/identity' import * as errorActions from 'store/errors/actions' -import { reportToSentry } from 'store/errors/reportToSentry' import { messages } from './messages' import { Display } from './types' @@ -456,7 +450,7 @@ export const useOAuthSetup = ({ }) } catch (e) { if (e instanceof Error) { - reportToSentry({ level: ErrorLevel.Error, error: e }) + console.error(e) } dispatch( errorActions.handleError({ diff --git a/packages/web/src/pages/upload-page/pages/SelectPage.tsx b/packages/web/src/pages/upload-page/pages/SelectPage.tsx index 1aa06ca92e7..0249f00564e 100644 --- a/packages/web/src/pages/upload-page/pages/SelectPage.tsx +++ b/packages/web/src/pages/upload-page/pages/SelectPage.tsx @@ -1,6 +1,5 @@ import { useCallback, useLayoutEffect, useState } from 'react' -import { ErrorLevel, Feature } from '@audius/common/models' import { newCollectionMetadata } from '@audius/common/schemas' import { TrackMetadataForUpload, @@ -13,7 +12,6 @@ import cn from 'classnames' import { AudioQuality } from 'components/upload/AudioQuality' import { Dropzone } from 'components/upload/Dropzone' import { InvalidFileType } from 'components/upload/InvalidFileType' -import { reportToSentry } from 'store/errors/reportToSentry' import { TracksPreview } from '../components/TracksPreview' import { processFiles } from '../store/utils/processFiles' @@ -68,15 +66,10 @@ const SelectPage = (props: SelectPageProps) => { }) const processedFiles = processFiles(selectedFiles, (name, reason) => { - reportToSentry({ - name: 'UploadProcessFiles', - error: new Error(`${reason} error for file ${name}`), - feature: Feature.Upload, - level: ErrorLevel.Warning, - additionalInfo: { - selectedFiles - } - }) + console.error( + 'UploadProcessFiles', + new Error(`${reason} error for file ${name}`) + ) return setUploadTrackError({ reason }) }) const processedTracks = (await Promise.all(processedFiles)).filter( diff --git a/packages/web/src/services/audius-backend/audius-backend-instance.ts b/packages/web/src/services/audius-backend/audius-backend-instance.ts index dcca5421c48..8ca3bba3bbf 100644 --- a/packages/web/src/services/audius-backend/audius-backend-instance.ts +++ b/packages/web/src/services/audius-backend/audius-backend-instance.ts @@ -3,7 +3,6 @@ import { audiusBackend } from '@audius/common/services' import { track } from 'services/analytics' import { getFeatureEnabled } from 'services/remote-config/featureFlagHelpers' import { remoteConfigInstance } from 'services/remote-config/remote-config-instance' -import { reportToSentry } from 'store/errors/reportToSentry' import { isElectron } from 'utils/clientUtil' import { env } from '../env' @@ -26,7 +25,7 @@ export const audiusBackendInstance = audiusBackend({ nativeMobile: false, recaptchaSiteKey: env.RECAPTCHA_SITE_KEY, recordAnalytics: track, - reportError: reportToSentry, + reportError: ({ error }) => console.error(error), registryAddress: env.REGISTRY_ADDRESS, entityManagerAddress: env.ENTITY_MANAGER_ADDRESS, remoteConfigInstance, diff --git a/packages/web/src/services/env/env.dev.ts b/packages/web/src/services/env/env.dev.ts index 75883f61014..75d0c6493b8 100644 --- a/packages/web/src/services/env/env.dev.ts +++ b/packages/web/src/services/env/env.dev.ts @@ -63,7 +63,6 @@ export const env: Env = { REWARDS_MANAGER_TOKEN_PDA: 'FRk4j95RG2kSk3BHXBPVgKszFc2rLQ8K6RS83k3dmzvQ', SAFARI_WEB_PUSH_ID: 'web.co.audius', SCHEME: 'audius', - SENTRY_DSN: 'https://4b15a7a2f2e2459997408b39a0c4942c@s.audius.co/1851611', SOL_BRIDGE_ADDRESS: null, SOL_TOKEN_BRIDGE_ADDRESS: null, SOLANA_CLUSTER_ENDPOINT: 'http://audius-solana-test-validator-1', diff --git a/packages/web/src/services/env/env.prod.ts b/packages/web/src/services/env/env.prod.ts index 5223f0f1b0e..487232a541e 100644 --- a/packages/web/src/services/env/env.prod.ts +++ b/packages/web/src/services/env/env.prod.ts @@ -62,7 +62,6 @@ export const env: Env = { REWARDS_MANAGER_TOKEN_PDA: '3V9opXNpHmPPymKeq7CYD8wWMH8wzFXmqEkNdzfsZhYq', SAFARI_WEB_PUSH_ID: 'web.co.audius', SCHEME: 'audius', - SENTRY_DSN: 'https://e26d2b01488f4b538ea235de6466c40a@s.audius.co/1457231', SOL_BRIDGE_ADDRESS: 'worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth', SOL_TOKEN_BRIDGE_ADDRESS: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb', SOLANA_CLUSTER_ENDPOINT: diff --git a/packages/web/src/services/query-client.ts b/packages/web/src/services/query-client.ts index 1af2ab466f8..d7af541c85e 100644 --- a/packages/web/src/services/query-client.ts +++ b/packages/web/src/services/query-client.ts @@ -1,15 +1,13 @@ import { defaultRetryConfig, queryErrorHandler } from '@audius/common/api' import { QueryCache, QueryClient } from '@tanstack/react-query' -import { reportToSentry } from 'store/errors/reportToSentry' - import { env } from './env' export const queryClient = new QueryClient({ // In order to have a default error catcher, we need to use a custom query cache // ref: https://tkdodo.eu/blog/react-query-error-handling queryCache: new QueryCache({ onError(error, query) { - queryErrorHandler(error, query, reportToSentry) + queryErrorHandler(error, query) } }), defaultOptions: { diff --git a/packages/web/src/services/remote-config/remote-config-instance.ts b/packages/web/src/services/remote-config/remote-config-instance.ts index 86b693e927b..37f2bfe1226 100644 --- a/packages/web/src/services/remote-config/remote-config-instance.ts +++ b/packages/web/src/services/remote-config/remote-config-instance.ts @@ -1,10 +1,8 @@ -import { ErrorLevel } from '@audius/common/models' import { remoteConfig } from '@audius/common/services' import optimizely, { Config } from '@optimizely/optimizely-sdk' import { isEmpty } from 'lodash' import { env } from 'services/env' -import { reportToSentry } from 'store/errors/reportToSentry' import { isElectron } from 'utils/clientUtil' import packageInfo from '../../../package.json' @@ -35,20 +33,14 @@ export const remoteConfigInstance = remoteConfig({ const datafile = window.optimizelyDatafile if (isEmpty(datafile)) { - reportToSentry({ - level: ErrorLevel.Error, - error: new Error('Optimizely failed to load') - }) + console.error(new Error('Optimizely failed to load')) } return optimizely.createInstance({ datafile, errorHandler: { handleError: (error) => { - reportToSentry({ - level: ErrorLevel.Error, - error - }) + console.error(error) } } }) diff --git a/packages/web/src/services/sentry.ts b/packages/web/src/services/sentry.ts deleted file mode 100644 index 3f2a61b465f..00000000000 --- a/packages/web/src/services/sentry.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { DoubleKeys } from '@audius/common/services' - -import packageJson from '../../package.json' - -import { env } from './env' -import { remoteConfigInstance } from './remote-config/remote-config-instance' -const { version: appVersion } = packageJson - -const analyticsBlacklist = [ - 'google-analytics', - 'stats.g', - 'fullstory', - 'amplitude', - 'mixpanel', - 'mouseflow' -] - -const MAX_BREADCRUMBS = 300 - -// Noisy, non-actionable error patterns we don't want clogging Sentry. -// Each entry is matched against the event's error message and exception value. -const NOISY_ERROR_PATTERNS: RegExp[] = [ - // Code-splitting / dynamic import failures. Almost always a stale deploy or - // flaky network — not a real bug we can fix in code. - /ChunkLoadError/i, - /Loading chunk [\w-]+ failed/i, - /Failed to fetch dynamically imported module/i, - /Importing a module script failed/i, - // ResizeObserver loop warnings. Browsers fire these spuriously and they - // don't represent real errors — ignored by all major frameworks. - /ResizeObserver loop limit exceeded/i, - /ResizeObserver loop completed with undelivered notifications/i, - // Aborted fetches. Caused by user navigation or component unmount, not bugs. - /AbortError/i, - /The user aborted a request/i, - // Generic network failures — user offline, captive portal, ad blocker, etc. - /Failed to fetch/i, - /NetworkError/i, - /Load failed/i, - /The network connection was lost/i, - // Browser permission denials (mic, camera, clipboard, notifications) — - // expected user choices, not bugs. - /NotAllowedError/i -] - -let sentryInitialized = false -let sentryInitPromise: Promise | null = null - -/** - * Lazy-load and initialize Sentry SDK - */ -export const initializeSentry = async () => { - // Return existing promise if initialization is already in progress - if (sentryInitPromise) { - return sentryInitPromise - } - - // Return immediately if already initialized - if (sentryInitialized) { - return - } - - sentryInitPromise = (async () => { - try { - await remoteConfigInstance.waitForRemoteConfig() - - // Lazy load Sentry SDK - const Sentry = await import('@sentry/browser') - - Sentry.init({ - dsn: env.SENTRY_DSN, - transport: Sentry.makeBrowserOfflineTransport( - Sentry.makeFetchTransport - ), - ignoreErrors: - process.env.VITE_SENTRY_DISABLED === 'true' ? [/.*/] : undefined, - - // Use our semantic release version for release tracking - release: appVersion, - - integrations: [ - // Pull extra fields off error objects - Sentry.extraErrorDataIntegration(), - // Capture a session recording - Sentry.replayIntegration({}) - ], - - normalizeDepth: 5, - maxBreadcrumbs: MAX_BREADCRUMBS, - beforeSend: (event, hint) => { - const exception = event.exception?.values?.[0] - const message = - (typeof hint?.originalException === 'object' && - hint?.originalException !== null && - 'message' in hint.originalException - ? String( - (hint.originalException as { message?: unknown }).message ?? - '' - ) - : '') || - exception?.value || - event.message || - '' - const stack = exception?.stacktrace?.frames?.length ?? 0 - - // Drop known-noisy error patterns (chunk load, ResizeObserver, - // network/abort, permission denials). See NOISY_ERROR_PATTERNS above - // for the full rationale. - if (NOISY_ERROR_PATTERNS.some((pattern) => pattern.test(message))) { - if (env.ENVIRONMENT !== 'production') { - console.warn('[sentry] dropped noisy error:', message) - } - return null - } - - // Drop unhandled rejections / exceptions that have no stack and - // either an empty message or a message too short to be actionable - // (e.g. "true", "null", "Error"). These are almost always thrown - // non-Error values from third-party scripts. - if (stack === 0 && message.trim().length < 10) { - if (env.ENVIRONMENT !== 'production') { - console.warn( - '[sentry] dropped low-signal error (no stack, short message):', - JSON.stringify(message) - ) - } - return null - } - - return event - }, - beforeBreadcrumb: (breadCrumb, hint) => { - // filter out info and debug logs - if ( - (breadCrumb.level === 'info' || breadCrumb.level === 'debug') && - breadCrumb.category === 'console' - ) { - return null - } - // filter out analytics events - if (hint && hint.xhr) { - const url = hint.xhr.__sentry_xhr_v3__.url - const isAnalyticsRequest = analyticsBlacklist.some( - (term) => url.search(term) !== -1 - ) - if (isAnalyticsRequest) { - return null - } - } - return breadCrumb - }, - // This is the sample rate for healthy sessions without errors - set to 0 since we only care about errors - replaysSessionSampleRate: 0, - // This is a sample rate specific to when errors occur. We want to see 100% of them - replaysOnErrorSampleRate: Number( - remoteConfigInstance.getRemoteVar( - DoubleKeys.SENTRY_REPLAY_ERROR_SAMPLE_RATE - ) ?? 0 - ) - }) - - Sentry.setTag('commit_sha', process.env.VITE_CURRENT_GIT_SHA) - Sentry.setTag('platform', 'web') - - sentryInitialized = true - } catch (err) { - console.error('Failed to initialize Sentry:', err) - sentryInitPromise = null - throw err - } - })() - - return sentryInitPromise -} - -/** - * Get Sentry SDK instance, initializing if necessary - */ -export const getSentry = async () => { - await initializeSentry() - return import('@sentry/browser') -} diff --git a/packages/web/src/ssr/worker.js b/packages/web/src/ssr/worker.js index 320c1ac3d6d..6c38eb810a1 100644 --- a/packages/web/src/ssr/worker.js +++ b/packages/web/src/ssr/worker.js @@ -9,7 +9,6 @@ import { getAssetFromKV } from '@cloudflare/kv-asset-handler' // eslint-disable-next-line import/no-unresolved import manifestJSON from '__STATIC_CONTENT_MANIFEST' -import { Toucan } from 'toucan-js' import { renderPage } from 'vike/server' try { // eslint-disable-next-line import/no-unresolved @@ -25,20 +24,10 @@ const BROWSER_CACHE_TTL_SECONDS = 60 * 60 * 24 export default { async fetch(request, env, ctx) { - const sentry = env.SENTRY_DSN - ? new Toucan({ - dsn: env.SENTRY_DSN, - context: ctx, - request - }) - : null - try { return await handleRequest(request, env, ctx) } catch (e) { - if (sentry) { - sentry.captureException(e) - } + console.error('SSR worker error:', e) if (DEBUG) { return new Response(e.message || e.toString(), { status: 500 }) } diff --git a/packages/web/src/store/application/ui/stemsUpload/sagas.ts b/packages/web/src/store/application/ui/stemsUpload/sagas.ts index 9cdac55170d..0384a7ccebe 100644 --- a/packages/web/src/store/application/ui/stemsUpload/sagas.ts +++ b/packages/web/src/store/application/ui/stemsUpload/sagas.ts @@ -25,7 +25,6 @@ function* watchUploadStems() { const audiusSdk = yield* getContext('audiusSdk') const dispatch = yield* getContext('dispatch') - const reportToSentry = yield* getContext('reportToSentry') const analytics = yield* getContext('analytics') const userId = yield* call(queryCurrentUserId) if (!userId) { @@ -47,7 +46,6 @@ function* watchUploadStems() { audiusSdk, dispatch, userId, - reportToSentry, analytics }, { diff --git a/packages/web/src/store/configureStore.ts b/packages/web/src/store/configureStore.ts index 542ad3cf482..eddba311a56 100644 --- a/packages/web/src/store/configureStore.ts +++ b/packages/web/src/store/configureStore.ts @@ -1,7 +1,7 @@ -import { Name, ErrorLevel } from '@audius/common/models' +import { Name } from '@audius/common/models' import { chatMiddleware } from '@audius/common/store' import { composeWithDevToolsLogOnlyInProduction } from '@redux-devtools/extension' -import { createStore, applyMiddleware, Action, Store } from 'redux' +import { createStore, applyMiddleware, Store } from 'redux' import { persistStore } from 'redux-persist' import createSagaMiddleware from 'redux-saga' import thunk from 'redux-thunk' @@ -10,7 +10,6 @@ import { PartialDeep } from 'type-fest' import { audiusSdk } from 'services/audius-sdk' import { queryClient } from 'services/query-client' import * as errorActions from 'store/errors/actions' -import { reportToSentry } from 'store/errors/reportToSentry' import createRootReducer from 'store/reducers' import rootSaga from 'store/sagas' @@ -40,130 +39,6 @@ declare global { type StoreType = ReturnType['store'] type RootState = ReturnType -// Can't send up the entire Redux state b/c it's too fat -// for Sentry to handle, and there is sensitive data -const statePruner = (state: AppState) => { - const currentProfileHandle = state.pages.profile.currentUser ?? '' - const currentProfile = state.pages.profile.entries[currentProfileHandle] ?? {} - - return { - account: { - status: state.account.status, - userId: state.account.userId, - reason: state.account.reason - }, - pages: { - profile: { - handle: currentProfile.handle, - status: currentProfile.status, - updateError: currentProfile.updateError, - updateSuccess: currentProfile.updateSuccess, - updating: currentProfile.updating, - userId: currentProfile.userId - } - }, - // Router state removed - using react-router-dom directly now - signOn: { - accountReady: state.signOn.accountReady, - email: state.signOn.email, - handle: state.signOn.handle, - status: state.signOn.status, - useExternalWallet: state.signOn.usingExternalWallet, - verified: state.signOn.verified - }, - upload: { - completionId: state.upload.completionId, - failedTrackIndices: state.upload.failedTrackIndices, - metadata: state.upload.metadata, - success: state.upload.success, - uploading: state.upload.uploading, - uploadProgress: state.upload.uploadProgress, - uploadType: state.upload.uploadType - } - } -} - -// We're not logging any action bodies to prevent us from accidentally -// logging sensitive information in the future if additional actions are added. -// If we discover we want specific action bodies in the future for Sentry -// debuggability, those should be whitelisted here. -const actionSanitizer = (action: Action) => ({ type: action.type }) - -// Lazy-load Sentry middleware wrapper -// This creates a middleware that lazy-loads the actual Sentry SDK and middleware -type SentryMiddlewareFactory = ( - store: any -) => (next: any) => (action: Action) => any -let sentryMiddlewareFactory: SentryMiddlewareFactory | null = null -let sentryMiddlewarePromise: Promise | null = - null - -const createLazySentryMiddleware = () => { - return (store: any) => { - let sentryNext: ((action: Action) => any) | null = null - - return (next: any) => (action: Action) => { - // Lazy load Sentry middleware on first action - if (!sentryMiddlewareFactory && !sentryMiddlewarePromise) { - sentryMiddlewarePromise = (async () => { - try { - const [Sentry, createSentryMiddleware] = await Promise.all([ - import('@sentry/browser'), - import('redux-sentry-middleware') - ]) - - const middleware = createSentryMiddleware.default( - { - configureScope: Sentry.configureScope, - addBreadcrumb: Sentry.addBreadcrumb - } as any, - { - actionTransformer: actionSanitizer, - stateTransformer: statePruner - } - ) - - sentryMiddlewareFactory = middleware - return sentryMiddlewareFactory - } catch (err) { - console.error('Failed to load Sentry middleware:', err) - sentryMiddlewarePromise = null - return null - } - })() - } - - // If middleware is already loaded, use it - if (sentryMiddlewareFactory) { - if (!sentryNext) { - sentryNext = sentryMiddlewareFactory(store)(next) - } - return sentryNext(action) - } - - // If still loading, pass through the action for now - if (sentryMiddlewarePromise) { - sentryMiddlewarePromise - .then((factory) => { - if (factory) { - sentryNext = factory(store)(next) - if (sentryNext) { - sentryNext(action) - } - } - }) - .catch(() => { - // Silently fail - just pass through - }) - } - - return next(action) - } - } -} - -const sentryMiddleware = createLazySentryMiddleware() - export const configureStore = ({ isMobile, initialStoreState, @@ -194,11 +69,6 @@ export const configureStore = ({ route: window.location.pathname } - reportToSentry({ - level: ErrorLevel.Fatal, - error, - additionalInfo - }) // Fire and forget - don't await to avoid blocking error handling amplitudeTrack(Name.ERROR_PAGE, additionalInfo).catch((err) => { console.error('Failed to track error in Amplitude:', err) @@ -219,7 +89,6 @@ export const configureStore = ({ chatMiddleware(audiusSdk, queryClient), // Don't run sagas serverside ...(typeof window !== 'undefined' ? [sagaMiddleware!] : []), - sentryMiddleware, thunk ) diff --git a/packages/web/src/store/errors/actions.ts b/packages/web/src/store/errors/actions.ts index 53859c2ff52..ff28657d81d 100644 --- a/packages/web/src/store/errors/actions.ts +++ b/packages/web/src/store/errors/actions.ts @@ -1,10 +1,3 @@ -import { - ErrorLevel, - AdditionalErrorReportInfo, - ReportToSentryArgs, - Feature -} from '@audius/common/models' - export const HANDLE_ERROR = 'ERROR/HANDLE_ERROR' export const OPEN_ERROR_PAGE = 'ERROR/OPEN_ERROR_PAGE' export const CLOSE_ERROR_PAGE = 'ERROR/CLOSE_ERROR_PAGE' @@ -24,9 +17,7 @@ export type HandleErrorAction = { // shouldRedirect is true unless a redirectRoute is passed in shouldToast?: boolean - additionalInfo?: AdditionalErrorReportInfo - level?: ErrorLevel - feature?: Feature + additionalInfo?: Record uiErrorCode: UiErrorCode } @@ -43,8 +34,10 @@ export type HandleErrorArgs = { shouldReport?: boolean shouldToast?: boolean message: string + name?: string + additionalInfo?: Record uiErrorCode?: UiErrorCode -} & Omit +} export const handleError = ({ name, @@ -53,7 +46,6 @@ export const handleError = ({ shouldRedirect, shouldToast, additionalInfo = {}, - level, uiErrorCode = UiErrorCode.UNKNOWN }: HandleErrorArgs): HandleErrorAction => ({ type: HANDLE_ERROR, @@ -63,7 +55,6 @@ export const handleError = ({ shouldReport, shouldToast, additionalInfo, - level, uiErrorCode }) diff --git a/packages/web/src/store/errors/reportToSentry.ts b/packages/web/src/store/errors/reportToSentry.ts deleted file mode 100644 index 8a932f005a7..00000000000 --- a/packages/web/src/store/errors/reportToSentry.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { ErrorLevel, ReportToSentryArgs } from '@audius/common/models' -import { getErrorMessage, isResponseError } from '@audius/common/utils' -import type { SeverityLevel } from '@sentry/types' - -const Levels: { [level in ErrorLevel]: SeverityLevel } = { - Warning: 'warning', - Fatal: 'fatal', - Debug: 'debug', - Error: 'error', - Info: 'info', - Log: 'log' -} - -type ConsoleLoggingMethod = keyof Pick< - Console, - 'log' | 'warn' | 'error' | 'info' | 'debug' -> - -const jsLoggerMapping: { [level in ErrorLevel]: ConsoleLoggingMethod } = { - Warning: 'warn', - Fatal: 'error', - Debug: 'debug', - Error: 'error', - Info: 'info', - Log: 'log' -} - -/** - * Helper fn that reports to sentry while creating a localized scope to contain additional data - * Also logs to console with the appropriate level (console.log, console.warn, console.error, etc) - */ -export const reportToSentry = async ({ - level = ErrorLevel.Error, - additionalInfo, - error, - name, - tags, - feature -}: ReportToSentryArgs) => { - try { - // Lazy load Sentry SDK - const Sentry = await import('@sentry/browser') - const { withScope, captureException } = Sentry - - withScope(async (scope) => { - if (level) { - const sentryLevel = Levels[level] - scope.setLevel(sentryLevel) - } - if (isResponseError(error)) { - const responseBody = - (await error.response.json().catch()) ?? - (await error.response.text().catch()) - additionalInfo = { - ...additionalInfo, - response: error.response, - requestId: error.response.headers.get('X-Request-ID'), - responseBody - } - } - if (additionalInfo) { - scope.setContext('additionalInfo', additionalInfo) - } - if (tags || feature) { - scope.setTags({ ...tags, feature }) - } - if (name) { - error.name = `${name}: ${error.name}` - } - // Call JS console method using the specified level - const consoleMethod = - jsLoggerMapping[level || ErrorLevel.Log] || jsLoggerMapping.Log - // eslint-disable-next-line no-console - console[consoleMethod](error, 'More info in console.debug') - if (additionalInfo || tags) { - console.debug('Additional error info:', { additionalInfo, tags, level }) - } - captureException(error) - }) - } catch (error) { - console.error(`Got error trying to log error: ${getErrorMessage(error)}`) - } -} diff --git a/packages/web/src/store/errors/sagas.ts b/packages/web/src/store/errors/sagas.ts index 313097350d1..c2153f905d2 100644 --- a/packages/web/src/store/errors/sagas.ts +++ b/packages/web/src/store/errors/sagas.ts @@ -5,19 +5,12 @@ import { takeEvery, put } from 'redux-saga/effects' import { make } from 'common/store/analytics/actions' import * as errorActions from './actions' -import { reportToSentry } from './reportToSentry' const { toast } = toastActions function* handleError(action: errorActions.HandleErrorAction) { console.debug(`Handling error: ${action.message}`) if (action.shouldReport) { - reportToSentry({ - level: action.level, - additionalInfo: action.additionalInfo, - error: new Error(action.message), - name: action.name, - feature: action.feature - }) + console.error(action.name ?? 'Error', action.message, action.additionalInfo) yield put( make(Name.APP_ERROR, { errorMessage: action?.message ?? 'Unknown Error' diff --git a/packages/web/src/store/reload/sagas.ts b/packages/web/src/store/reload/sagas.ts index cb7227d231c..f5997416a18 100644 --- a/packages/web/src/store/reload/sagas.ts +++ b/packages/web/src/store/reload/sagas.ts @@ -3,7 +3,6 @@ import { createAction } from '@reduxjs/toolkit' import { call, fork, select, takeEvery } from 'typed-redux-saga' import { env } from 'services/env' -import { reportToSentry } from 'store/errors/reportToSentry' import { foregroundPollingDaemon, visibilityPollingDaemon @@ -51,11 +50,9 @@ function* reloadIfNecessary() { }) } } catch (e) { - console.error('[reload] Failed to check git SHA.', e) - yield* call(reportToSentry, { - name: 'Failed to check git SHA', - error: e as Error, - additionalInfo: { fetchedSha, localSha } + console.error('[reload] Failed to check git SHA.', e, { + fetchedSha, + localSha }) } } diff --git a/packages/web/src/store/storeContext.ts b/packages/web/src/store/storeContext.ts index 5b8a7b443b0..720ff5c082b 100644 --- a/packages/web/src/store/storeContext.ts +++ b/packages/web/src/store/storeContext.ts @@ -23,7 +23,6 @@ import { isElectron } from 'utils/clientUtil' import { generatePlaylistArtwork } from 'utils/imageProcessingUtil' import { getShare } from 'utils/share' -import { reportToSentry } from './errors/reportToSentry' import { getLineupSelectorForRoute } from './lineup/lineupForRoute' export const buildStoreContext = ({ @@ -60,21 +59,6 @@ export const buildStoreContext = ({ getLineupSelectorForRoute, audioPlayer: audioPlayer!, nftClient: null, - sentry: { - setTag: async (...args) => { - const Sentry = await import('@sentry/browser') - return Sentry.setTag(...args) - }, - getCurrentScope: () => ({ - setUser: (user: any) => { - // Lazy load Sentry and set user asynchronously - import('@sentry/browser').then((Sentry) => { - Sentry.getCurrentScope().setUser(user) - }) - } - }) - }, - reportToSentry, trackDownload, instagramAppId: env.INSTAGRAM_APP_ID, instagramRedirectUrl: env.INSTAGRAM_REDIRECT_URL, diff --git a/packages/web/src/utils/errorSagas.ts b/packages/web/src/utils/errorSagas.ts index 252141fb92d..82fe032eae5 100644 --- a/packages/web/src/utils/errorSagas.ts +++ b/packages/web/src/utils/errorSagas.ts @@ -1,4 +1,3 @@ -import { AdditionalErrorReportInfo, Feature } from '@audius/common/models' import { takeEvery, put } from 'redux-saga/effects' import * as errorActions from 'store/errors/actions' @@ -11,15 +10,13 @@ export const createErrorSagas = ({ getShouldRedirect, getShouldReport, getType = (actionType: string) => actionType, // optionally modify the error type sent to our error reporting service - getAdditionalInfo = (action: ActionType) => ({}), // optionally add additional info to the error report - feature + getAdditionalInfo = (action: ActionType) => ({}) }: { errorTypes: string[] getShouldRedirect: (action: ActionType) => boolean getShouldReport: (action: ActionType) => boolean getType?: (actionType: string) => string - getAdditionalInfo?: (action: ActionType) => AdditionalErrorReportInfo - feature?: Feature + getAdditionalInfo?: (action: ActionType) => Record }) => { function* handleError(action: ActionType) { console.info(`Handling error: ${JSON.stringify(action)}`) @@ -32,8 +29,7 @@ export const createErrorSagas = ({ message: actionType, shouldRedirect, shouldReport, - additionalInfo, - feature + additionalInfo }) ) } From dfe47b7da42d01b75ddae21dceaf1db494c3e985 Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Sun, 17 May 2026 18:01:40 -0700 Subject: [PATCH 17/60] fix(mobile): use ContestCardSkeleton in explore contests carousel (#14348) --- .../explore-screen/components/FeaturedRemixContests.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/mobile/src/screens/explore-screen/components/FeaturedRemixContests.tsx b/packages/mobile/src/screens/explore-screen/components/FeaturedRemixContests.tsx index 273ac08c2e0..aedf8764fe5 100644 --- a/packages/mobile/src/screens/explore-screen/components/FeaturedRemixContests.tsx +++ b/packages/mobile/src/screens/explore-screen/components/FeaturedRemixContests.tsx @@ -5,10 +5,8 @@ import { exploreMessages as messages } from '@audius/common/messages' import { useWindowDimensions } from 'react-native' import { useTheme } from '@audius/harmony-native' -import { ContestCard } from 'app/components/contest-card' +import { ContestCard, ContestCardSkeleton } from 'app/components/contest-card' import { CardList } from 'app/components/core' -import { TrackCardSkeleton } from 'app/components/track/TrackCardSkeleton' - import { useDeferredElement } from '../../../hooks/useDeferredElement' import { ExploreSection } from './ExploreSection' @@ -24,7 +22,6 @@ export const FeaturedRemixContests = () => { const { width: windowWidth } = useWindowDimensions() const contestCardWidth = windowWidth - CONTEST_CARD_PEEK const { InViewWrapper, inView } = useDeferredElement() - const { data: allContestTrackIds, isPending: isAllContestsPending } = useAllRemixContests(undefined, { enabled: inView }) @@ -38,7 +35,9 @@ export const FeaturedRemixContests = () => { carouselSpacing={spacing.l} horizontalCardWidth={contestCardWidth} isLoading={isAllContestsPending} - LoadingCardComponent={TrackCardSkeleton} + LoadingCardComponent={() => ( + + )} /> From c93a2658ae345d64165a64409a9aabb901204b83 Mon Sep 17 00:00:00 2001 From: Ray Jacobson Date: Mon, 18 May 2026 09:50:01 -0700 Subject: [PATCH 18/60] fix(mobile): wire mirror retry to drawer profile picture (#14349) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Fixes reports of the left-drawer profile picture not loading on mobile. The drawer's `` was dropping the `onError` callback returned by `useProfilePicture`, so render-time image failures never reached `useImageSize` — the mirror retry could only fire on prefetch failures. A slow Open Audio Validator Node that accepted the prefetch but stalled the actual render would leave the avatar hung indefinitely (the OS TCP timeout is 60–90s with no `onError` fired). ### Changes - **`ProfilePicture`** — forward `onError` (chained with the caller's), pass `priorityLowResSource` through, and set `timeoutMs={3000}` so stalled URLs advance to the next mirror. - **`UserImage`** — add matching `timeoutMs={3000}` for parity. - **harmony-native `Image`** — add optional `timeoutMs` prop (default `0` = disabled, preserving existing behavior everywhere else). When `> 0` and the source is a remote URI, synthesize an `onError` if neither `onLoad` nor `onError` fires within the window. Mirrors the web `MirrorImage` pattern. - **`Artwork`** — plumb `timeoutMs` through so `Avatar → Artwork → Image` is wired end-to-end. ### Why this works `useImageSize` already has all the mirror-retry logic: it tracks `failedUrls`, swaps in the next mirror's hostname via `getNextMirrorUrl`, and re-renders. It just needed render-time failures (including timeouts) to be reported back. With the `timeoutMs={3000}` opt-in, hung connections become synthetic `onError`s after 3s, matching the global pattern documented for the web client. The fix is scoped: harmony `Image`'s default is `timeoutMs={0}` (off), so unrelated image usages across the app keep their existing semantics. ## Test plan - [ ] Open the app on mobile (cold start), open the left drawer, confirm the avatar loads - [ ] Throttle a content node hostname locally (e.g. via Charles / hosts file → blackhole) and confirm the avatar still resolves via a mirror within ~3s instead of hanging - [ ] Confirm track tiles, playlist artwork, and other `Artwork`/`Image` usages render normally (they default to `timeoutMs=0`, so behavior is unchanged) - [ ] Confirm progressive loading still works (low-res placeholder → high-res crossfade) for profile pictures 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 --- .../src/components/core/ProfilePicture.tsx | 39 +++++++++-- .../mobile/src/components/image/UserImage.tsx | 6 ++ .../src/harmony-native/components/Artwork.tsx | 4 +- .../harmony-native/components/Image/Image.tsx | 69 +++++++++++++++++++ 4 files changed, 112 insertions(+), 6 deletions(-) diff --git a/packages/mobile/src/components/core/ProfilePicture.tsx b/packages/mobile/src/components/core/ProfilePicture.tsx index 38a60cfd727..3a402ba33ee 100644 --- a/packages/mobile/src/components/core/ProfilePicture.tsx +++ b/packages/mobile/src/components/core/ProfilePicture.tsx @@ -11,6 +11,11 @@ const messages = { profilePictureFor: 'Profile picture for' } +// Per-URL render timeout (ms) so a hung connection from a slow Open Audio +// Validator Node advances to the next mirror instead of blocking on the OS +// TCP timeout (60–90s). Matches the web MirrorImage pattern. +const PROFILE_PICTURE_TIMEOUT_MS = 3000 + type BaseAvatarProps = Omit // User should prefer userId, and provide user if it's not in the cache @@ -23,23 +28,47 @@ type ProfilePictureUserProps = export type ProfilePictureProps = BaseAvatarProps & ProfilePictureUserProps export const ProfilePicture = (props: ProfilePictureProps) => { - const userId = 'user' in props ? props.user.user_id : props.userId + // Pull onError off so we can chain it with the mirror-retry handler from + // `useProfilePicture` instead of being clobbered by the props spread. + const { onError: callerOnError, ...restProps } = props as BaseAvatarProps & + ProfilePictureUserProps + const userId = + 'user' in restProps ? restProps.user.user_id : restProps.userId - const { data: userQuery } = useUser(userId, { enabled: !('user' in props) }) - const user = 'user' in props ? props.user : userQuery + const { data: userQuery } = useUser(userId, { + enabled: !('user' in restProps) + }) + const user = 'user' in restProps ? restProps.user : userQuery const accessibilityLabel = `${messages.profilePictureFor} ${user?.name}` - const { source } = useProfilePicture({ + const { + source, + priorityLowResSource, + onError: onImageError + } = useProfilePicture({ userId, size: SquareSizes.SIZE_150_BY_150 }) + // Forward render-time failures to `useImageSize` so it can mark the URL + // failed and swap in the next mirror. Without this wiring the mirror + // retry only ever fires on prefetch failures, not on stalled renders. + const handleError = (error: { nativeEvent: { error: string } }) => { + if (source && typeof source === 'object' && 'uri' in source) { + onImageError?.(source.uri as string) + } + callerOnError?.(error) + } + return ( ) } diff --git a/packages/mobile/src/components/image/UserImage.tsx b/packages/mobile/src/components/image/UserImage.tsx index 1d34c358f18..f340c80ebe9 100644 --- a/packages/mobile/src/components/image/UserImage.tsx +++ b/packages/mobile/src/components/image/UserImage.tsx @@ -9,6 +9,11 @@ import profilePicEmpty from 'app/assets/images/imageProfilePicEmpty2X.png' import { primitiveToImageSource } from './primitiveToImageSource' +// Per-URL render timeout (ms) so a stalled Open Audio Validator Node +// advances to the next mirror without waiting on the OS TCP timeout +// (60–90s). Matches the web MirrorImage pattern. +const USER_IMAGE_TIMEOUT_MS = 3000 + type UseUserImageOptions = { userId: ID | null | undefined size: SquareSizes @@ -87,6 +92,7 @@ export const UserImage = (props: UserImageProps) => { source={source} priorityLowResSource={priorityLowResSource} onError={handleError} + timeoutMs={USER_IMAGE_TIMEOUT_MS} /> ) } diff --git a/packages/mobile/src/harmony-native/components/Artwork.tsx b/packages/mobile/src/harmony-native/components/Artwork.tsx index ddefca476a6..9a46373ebef 100644 --- a/packages/mobile/src/harmony-native/components/Artwork.tsx +++ b/packages/mobile/src/harmony-native/components/Artwork.tsx @@ -27,7 +27,7 @@ export type ArtworkProps = { * Enables true progressive image loading. */ priorityLowResSource?: ImageProps['source'] -} & Partial> & +} & Partial> & BoxProps /** @@ -44,6 +44,7 @@ export const Artwork = (props: ArtworkProps) => { priorityLowResSource, onError, onLoad, + timeoutMs, borderRadius = 's', borderWidth, shadow, @@ -158,6 +159,7 @@ export const Artwork = (props: ArtworkProps) => { onLoad?.(event) }} onError={onError} + timeoutMs={timeoutMs} source={imageSource} /> ) : null} diff --git a/packages/mobile/src/harmony-native/components/Image/Image.tsx b/packages/mobile/src/harmony-native/components/Image/Image.tsx index a5b984d4961..eaf8fedf29f 100644 --- a/packages/mobile/src/harmony-native/components/Image/Image.tsx +++ b/packages/mobile/src/harmony-native/components/Image/Image.tsx @@ -30,6 +30,16 @@ export type ImageProps = ComponentProps & { * When true, the high-res image appears immediately without a fade animation. */ immediate?: boolean + /** + * Optional render-time timeout (ms) for remote URI sources. If neither + * `onLoad` nor `onError` fires within this window, a synthetic `onError` + * is dispatched so callers (e.g. mirror-retry logic) can advance to the + * next URL without waiting on a hung TCP connection. + * + * Defaults to 0 (disabled). Only applies to remote `{ uri }` sources — + * local `require()`'d sources are unaffected. + */ + timeoutMs?: number } // Export ImageProps without source for render prop usage @@ -65,9 +75,24 @@ export const Image = (props: ImageProps) => { onLoad, style, immediate = false, + timeoutMs = 0, ...other } = props + // Track whether the current source has resolved (loaded or errored) so the + // timeout fallback doesn't fire after the fact, and so we can clear pending + // timers on resolution. + const hasResolvedRef = useRef(false) + const timeoutTimerRef = useRef | null>(null) + + // Keep the latest `onError` in a ref so the timeout closure always invokes + // the freshest callback without needing to be in the effect deps (which + // would reset the timer on every render). + const onErrorRef = useRef(onError) + useEffect(() => { + onErrorRef.current = onError + }) + // Wrap onError to prevent Error objects from being passed as props // This fixes "Error.stack getter called with an invalid receiver" in Hermes const handleError = onError @@ -77,6 +102,11 @@ export const Image = (props: ImageProps) => { | { nativeEvent: ImageErrorEventData } | Error ) => { + hasResolvedRef.current = true + if (timeoutTimerRef.current) { + clearTimeout(timeoutTimerRef.current) + timeoutTimerRef.current = null + } if (error instanceof Error) { onError({ nativeEvent: { error: error.message || 'Image load error' } @@ -105,6 +135,40 @@ export const Image = (props: ImageProps) => { } }, [source, priorityLowResSource, startVisible, opacity]) + // Render-time timeout: if the remote image hasn't fired onLoad or onError + // within `timeoutMs`, synthesize an onError so mirror-retry logic upstream + // can advance to the next URL. The native image cache and TCP stack will + // otherwise wait 60–90s on a hung connection without firing onError. + useEffect(() => { + hasResolvedRef.current = false + if (timeoutTimerRef.current) { + clearTimeout(timeoutTimerRef.current) + timeoutTimerRef.current = null + } + + if (!timeoutMs || timeoutMs <= 0) return + if (!source || typeof source === 'number') return + const uri = Array.isArray(source) ? source[0]?.uri : source.uri + if (!uri) return + + timeoutTimerRef.current = setTimeout(() => { + if (hasResolvedRef.current) return + hasResolvedRef.current = true + onErrorRef.current?.({ + nativeEvent: { + error: `Image load timeout after ${timeoutMs}ms: ${uri}` + } + }) + }, timeoutMs) + + return () => { + if (timeoutTimerRef.current) { + clearTimeout(timeoutTimerRef.current) + timeoutTimerRef.current = null + } + } + }, [source, timeoutMs]) + const animatedStyle = useAnimatedStyle(() => ({ opacity: opacity.value })) @@ -114,6 +178,11 @@ export const Image = (props: ImageProps) => { } const handleLoad = (e: NativeSyntheticEvent) => { + hasResolvedRef.current = true + if (timeoutTimerRef.current) { + clearTimeout(timeoutTimerRef.current) + timeoutTimerRef.current = null + } opacity.value = withTiming(1, { duration: immediate ? 100 : 300 }) // Hide the low-res placeholder shortly after the high-res starts fading in. if (priorityLowResSource) { From de7e3f9d25fe7a1d3509976832f3985278710400 Mon Sep 17 00:00:00 2001 From: Ray Jacobson Date: Mon, 18 May 2026 19:09:54 -0700 Subject: [PATCH 19/60] fix(protocol-dashboard): fetch latest validator version via getNumberOfVersions (#14355) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - `getCurrentVersion` on the ServiceTypeManager contract was returning a stale version (1.0.0) for the `Validator` service type — the home page and other locations using `useCurrentVersion(ServiceType.Validator)` displayed the wrong number. - Switch `fetchCurrentVersion` to read the latest registered version by calling `getNumberOfVersions(serviceType)` and then `getVersion(serviceType, numberOfVersions - 1)`. The latest onchain validator version (1.1.0) now shows correctly. ## Test plan - [ ] Open the dashboard logged out — verify the `Register a Node` card shows the latest onchain version (currently `1.1.0`) instead of `1.0.0`. - [ ] Open a user/services page that renders `RegisterNodeCard` — verify the same. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 --- .../protocol-dashboard/src/store/cache/protocol/hooks.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/protocol-dashboard/src/store/cache/protocol/hooks.ts b/packages/protocol-dashboard/src/store/cache/protocol/hooks.ts index 05209236f65..7d592ffeac6 100644 --- a/packages/protocol-dashboard/src/store/cache/protocol/hooks.ts +++ b/packages/protocol-dashboard/src/store/cache/protocol/hooks.ts @@ -84,7 +84,12 @@ export function fetchCurrentVersion( serviceType: ServiceType ): ThunkAction> { return async (dispatch, getState, aud) => { - const currentVersion = await aud.NodeType.getCurrentVersion(serviceType) + const numberOfVersions = + await aud.NodeType.getNumberOfVersions(serviceType) + const currentVersion = await aud.NodeType.getVersion( + serviceType, + numberOfVersions - 1 + ) dispatch(setCurrentVersion({ serviceType, currentVersion })) } } From 380e5386f164595f504508f2370095fc85ffa5da Mon Sep 17 00:00:00 2001 From: Ray Jacobson Date: Tue, 19 May 2026 11:55:37 -0700 Subject: [PATCH 20/60] fix(web): trigger lineup next-page fetch before user scrolls past skeletons (#14351) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary The web Feed (and any other `TrackLineup`-driven page: Trending, Profile Tracks/Reposts, Search, Listening History, Remixes, Contest Submissions) felt like pagination was lagging: as you scroll down you'd see skeletons appear at the bottom, but the next-page request didn't actually fire until you scrolled *further past* them. Root cause: regressed in [apps#14286](https://github.com/AudiusProject/apps/pull/14286). The bottom-of-list skeletons were changed from being gated on `isFetching` to being gated on `hasNextPage`, which means they render persistently any time there's more to load — not just during an in-flight fetch. With `~15` skeletons at `~184px` each, they pad the ``'s content height by `~2` viewports. `react-infinite-scroller` measures distance to the bottom of *all* rendered content, so the threshold (also `2 * viewport`) only fires after you've scrolled through both the loaded tiles **and** the skeleton padding. The skeletons read as "loading" but no fetch had been kicked off yet. This PR: - Restores the original "skeletons only while a page is in flight" condition (`isFetching || isLoadMoreTriggered`), matching the empty-state branch a few lines above. The bottom of the InfiniteScroll content is now the bottom of the loaded tiles, so the existing 2-viewport threshold actually fires ~2 viewports before the last tile. - Corrects `APPROX_TILE_HEIGHT_LARGE` from `124` → `184` (the desktop tile is 144 body + 24 `mb='l'` + 16 parent `gap='m'`) so the in-flight skeleton count actually fills the threshold area as the comment claims. ## Test plan - [x] Open the Feed on web, scroll down — the next-page request fires while the bottom of the loaded tiles is still ~2 viewports below your viewport (check Network panel for `feed` calls), with skeletons appearing only after the request is in flight. - [x] Same on Trending (Week / Month / All-Time). - [x] Same on Profile Tracks / Reposts, Search Tracks, Listening History, Track Remixes, Contest Submissions. - [ ] Mobile-web (`useWindow` path) at a phone-sized viewport — fetch still triggers smoothly, no persistent skeleton padding. - [x] Empty state still renders when a tab has no tracks. - [x] Resizing the browser between pages still updates the threshold via `ResizeObserver` (no regression to existing behavior). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 --- .../web/src/components/lineup/TrackLineup.tsx | 90 +++++++++++-------- 1 file changed, 52 insertions(+), 38 deletions(-) diff --git a/packages/web/src/components/lineup/TrackLineup.tsx b/packages/web/src/components/lineup/TrackLineup.tsx index e8246b8a1e3..ed789422ae9 100644 --- a/packages/web/src/components/lineup/TrackLineup.tsx +++ b/packages/web/src/components/lineup/TrackLineup.tsx @@ -5,7 +5,6 @@ import { playbackActions, playbackSelectors } from '@audius/common/store' import type { PlaybackTrack, PlaybackQuerySource } from '@audius/common/store' import { Divider, Flex } from '@audius/harmony' import cn from 'classnames' -import InfiniteScroll from 'react-infinite-scroller' import { useDispatch, useSelector } from 'react-redux' import { make } from 'common/store/analytics/actions' @@ -30,12 +29,6 @@ const DEFAULT_LOAD_MORE_THRESHOLD = 1600 // effect of mobile's `onEndReachedThreshold` but on the larger desktop viewport // we need more headroom to keep up with fling scrolls. const LOAD_MORE_VIEWPORTS = 2 -// Approximate rendered heights of a TrackTile in different variants — used to -// compute how many skeletons to render so the bottom-of-list "loading window" -// fills the threshold area instead of leaving the user staring at a frozen -// last entry while the next page is in flight. -const APPROX_TILE_HEIGHT_LARGE = 124 -const APPROX_TILE_HEIGHT_SMALL = 80 const { getPlaying: getPlayerPlaying } = playbackSelectors const { makeGetCurrent } = playbackSelectors @@ -208,11 +201,6 @@ export const TrackLineup = ({ ] ) - const getScrollParent = useCallback(() => { - if (externalScrollParent) return externalScrollParent - return document.getElementById('mainContent') - }, [externalScrollParent]) - // Tile sizing mirrors the legacy component. let tileSize: TrackTileSize = TrackTileSize.LARGE let statSize: 'small' | 'large' = 'large' @@ -254,12 +242,14 @@ export const TrackLineup = ({ return () => observer.disconnect() }, [externalScrollParent]) - const effectiveLoadMoreThreshold = scrollParentHeight + // How many viewports below the user's current bottom edge we want loadMore + // to fire. Passed to the IntersectionObserver as a bottom rootMargin. + const loadMoreRootMargin = scrollParentHeight ? scrollParentHeight * LOAD_MORE_VIEWPORTS : loadMoreThreshold - // Synchronous "load more was triggered" flag — set the moment the scroll - // handler fires so skeletons render on the next frame, without waiting for + // Synchronous "load more was triggered" flag — set the moment the trigger + // fires so skeletons render on the next frame, without waiting for // tanquery's `isFetching` to round-trip back through the parent. Cleared // once the parent either delivers more entries or finishes fetching. const [isLoadMoreTriggered, setIsLoadMoreTriggered] = useState(false) @@ -281,6 +271,27 @@ export const TrackLineup = ({ loadNextPage() }, [hasNextPage, isFetching, isLoadMoreTriggered, loadNextPage]) + // IntersectionObserver-based trigger. A 1px sentinel

  • is rendered just + // below the last loaded tile (above the persistent skeleton block); when it + // enters the viewport — extended downward by `loadMoreRootMargin` — we fire + // loadMore. Using IO instead of react-infinite-scroller's scroll-listener + // means the trigger geometry is anchored to a specific DOM element and is + // immune to scrollHeight fluctuations from the skeleton block or anywhere + // else in the layout. + const sentinelRef = useRef(null) + useEffect(() => { + const el = sentinelRef.current + if (!el || !hasNextPage) return + const observer = new IntersectionObserver( + (entries) => { + if (entries.some((e) => e.isIntersecting)) handleLoadMore() + }, + { rootMargin: `0px 0px ${loadMoreRootMargin}px 0px`, threshold: 0 } + ) + observer.observe(el) + return () => observer.disconnect() + }, [hasNextPage, loadMoreRootMargin, handleLoadMore]) + const renderSkeletons = useCallback( (skeletonCount: number | undefined, indexOffset = 0) => { if (!skeletonCount) return null @@ -359,18 +370,15 @@ export const TrackLineup = ({ const isEmpty = tiles.length === 0 && !isFetching && !isInitialLoad && !isLoadMoreTriggered - // While a page is in flight we render skeletons below the loaded tiles. They - // need to fill ~one threshold's worth of vertical space so the bottom of the - // list feels populated even when the user scrolls into the trigger area - // faster than the network can return. `pageSize` is too small on its own - // (e.g. trending uses 4) so we floor by a viewport-derived count. - const approxTileHeight = isSmallTrackTile - ? APPROX_TILE_HEIGHT_SMALL - : APPROX_TILE_HEIGHT_LARGE - const fillCount = Math.ceil(effectiveLoadMoreThreshold / approxTileHeight) + // Persistent skeletons render below the loaded tiles whenever more pages are + // available, so scrollHeight grows monotonically across fetches (no + // mount/unmount churn on the bottom block). A stable count keeps the block + // height invariant across renders — important because the scrollbar thumb is + // sized relative to scrollHeight. `pageSize` is too small on its own (e.g. + // trending uses 4) so we floor by a small constant. const loadingSkeletonCount = Math.min( Math.max(0, maxEntries - tiles.length), - Math.max(pageSize, fillCount) + Math.max(pageSize, 10) ) return ( @@ -386,16 +394,8 @@ export const TrackLineup = ({ [lineupContainerStyles!]: !!lineupContainerStyles })} > - ))} - {hasNextPage && tiles.length > 0 - ? renderSkeletons(loadingSkeletonCount, tiles.length) - : null} - + {hasNextPage && tiles.length > 0 ? ( + <> + {/* 1px sentinel watched by IntersectionObserver to fire + loadMore. Placed between the loaded tiles and the persistent + skeleton block so the trigger geometry stays anchored to the + bottom of loaded content. The IO rootMargin extends the + viewport downward by `loadMoreRootMargin` so the trigger + fires that many pixels before the sentinel actually enters + the visible area. */} +
  • + {renderSkeletons(loadingSkeletonCount, tiles.length)} + + ) : null} + {!hasNextPage && tiles.length > 0 && endOfLineupElement ? endOfLineupElement From 2e77a413d479d384a3b111ab1d4f590e180bd78f Mon Sep 17 00:00:00 2001 From: Ray Jacobson Date: Tue, 19 May 2026 12:02:28 -0700 Subject: [PATCH 21/60] fix(protocol-dashboard): remove '1.0.0' validator-version fallback so fetch actually runs (#14356) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Follow-up to #14355. The dashboard was still showing `1.0.0` for the Validator current version after that PR shipped. Root cause: the `getCurrentVersion` selector returned `'1.0.0'` as a fallback when `services.validator.currentVersion` was undefined, and `useCurrentVersion` only dispatches `fetchCurrentVersion` when the selected value is `undefined`. The hardcoded fallback short-circuited the dispatch, so the new `getNumberOfVersions` + `getVersion` logic introduced in #14355 never ran. - Remove the `?? '1.0.0'` fallback from the selector so the fetch dispatches. - Harden the `setCurrentVersion` reducer to initialize `state.services.validator` if it doesn't exist yet, since `fetchCurrentVersion` can resolve before `fetchServiceStakeValues` populates it. ## Test plan - [ ] Open the dashboard and confirm `Register a Node` → `Current Version` shows the latest onchain version (currently `1.1.0`) instead of `1.0.0`. - [ ] Hard refresh and confirm no race-condition crashes from `setCurrentVersion` running before service info loads. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 --- .../RegisterNodeCard/RegisterNodeCard.tsx | 2 +- .../src/store/cache/protocol/hooks.ts | 2 +- .../src/store/cache/protocol/slice.ts | 25 +++++++++++++++---- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/packages/protocol-dashboard/src/components/RegisterNodeCard/RegisterNodeCard.tsx b/packages/protocol-dashboard/src/components/RegisterNodeCard/RegisterNodeCard.tsx index a968b281018..5017eaff4b3 100644 --- a/packages/protocol-dashboard/src/components/RegisterNodeCard/RegisterNodeCard.tsx +++ b/packages/protocol-dashboard/src/components/RegisterNodeCard/RegisterNodeCard.tsx @@ -84,7 +84,7 @@ export const RegisterNodeCard = ({ wallet }: { wallet: string }) => { - {storageCommitment == null ? ( + {currentVersion == null ? ( diff --git a/packages/protocol-dashboard/src/store/cache/protocol/hooks.ts b/packages/protocol-dashboard/src/store/cache/protocol/hooks.ts index 7d592ffeac6..eca1262649c 100644 --- a/packages/protocol-dashboard/src/store/cache/protocol/hooks.ts +++ b/packages/protocol-dashboard/src/store/cache/protocol/hooks.ts @@ -38,7 +38,7 @@ export const getCurrentVersion = ( case ServiceType.ContentNode: return state.cache.protocol.services.contentNode.currentVersion case ServiceType.Validator: - return state.cache.protocol.services.validator?.currentVersion ?? '1.0.0' + return state.cache.protocol.services.validator?.currentVersion } } diff --git a/packages/protocol-dashboard/src/store/cache/protocol/slice.ts b/packages/protocol-dashboard/src/store/cache/protocol/slice.ts index 7f00158e1eb..7fb339e1430 100644 --- a/packages/protocol-dashboard/src/store/cache/protocol/slice.ts +++ b/packages/protocol-dashboard/src/store/cache/protocol/slice.ts @@ -55,9 +55,18 @@ const slice = createSlice({ state.delegator.maxDelegators = action.payload.maxDelegators }, setServiceTypeInfo: (state, action: PayloadAction) => { - state.services.discoveryProvider = action.payload.discoveryProvider - state.services.contentNode = action.payload.contentNode - state.services.validator = action.payload.validator + state.services.discoveryProvider = { + ...action.payload.discoveryProvider, + currentVersion: state.services.discoveryProvider?.currentVersion + } + state.services.contentNode = { + ...action.payload.contentNode, + currentVersion: state.services.contentNode?.currentVersion + } + state.services.validator = { + ...action.payload.validator, + currentVersion: state.services.validator?.currentVersion + } }, setEthBlockNumber: (state, action: PayloadAction) => { state.ethBlockNumber = action.payload @@ -82,8 +91,14 @@ const slice = createSlice({ action.payload.currentVersion break case ServiceType.Validator: - state.services.validator.currentVersion = - action.payload.currentVersion + state.services.validator = { + ...(state.services.validator ?? { + isValid: false, + minStake: new BN(0), + maxStake: new BN(0) + }), + currentVersion: action.payload.currentVersion + } break } } From d7d7b51d4ebdc12355ce9693473a3f77ed8ea08a Mon Sep 17 00:00:00 2001 From: Ray Jacobson Date: Tue, 19 May 2026 17:29:07 -0700 Subject: [PATCH 22/60] Fix app delegate metro config (#14359) --- packages/mobile/ios/AudiusReactNative/AppDelegate.mm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/mobile/ios/AudiusReactNative/AppDelegate.mm b/packages/mobile/ios/AudiusReactNative/AppDelegate.mm index 3a39b21d7b2..35e9d17ec82 100644 --- a/packages/mobile/ios/AudiusReactNative/AppDelegate.mm +++ b/packages/mobile/ios/AudiusReactNative/AppDelegate.mm @@ -72,10 +72,7 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge - (NSURL *)bundleURL { #if DEBUG - // React Native 0.77 - explicitly set Metro URL - NSURL *url = [NSURL URLWithString:@"http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false"]; - NSLog(@"[AppDelegate] DEBUG mode - Using Metro URL: %@", url); - return url; + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; #else return [CodePush bundleURL]; #endif From ee1362d7194eb220dd0f2b90f77159cca670b737 Mon Sep 17 00:00:00 2001 From: Ray Jacobson Date: Tue, 19 May 2026 18:18:59 -0700 Subject: [PATCH 23/60] feat: redesign cast UX with unified Connect drawer (#14357) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Replaces the AirPlay/Chromecast settings toggle and the grayed-out cast icon with a Spotify-style "Connect" picker behind a single cast button on **both mobile and web**. ### Mobile (now-playing drawer) - New `IconCast` button opens a `ConnectDrawer` listing: 1. **This Device** — ends any active chromecast session 2. **AirPlay & Bluetooth** on iOS (`openAirplayDialog`) / **Bluetooth** on Android (`Linking.sendIntent('android.settings.BLUETOOTH_SETTINGS')` with `openSettings` fallback) 3. Each chromecast device discovered via `useDevices()` — tap starts a session via `SessionManager.startSession(deviceId)` - Cast button is grayed/disabled only when offline AND no chromecast devices discovered - The active device gets a primary tint + checkmark; the same goes for "This Device" when nothing is casting ### Web (desktop play bar) - New cast button placed next to the queue button - "Connect" popup with **This web browser** + **Google Cast devices** rows - "Google Cast devices" calls `audio.remote.prompt()` to surface **Chrome's built-in cast picker** — no Cast Web Sender receiver needed - Hidden entirely when `RemotePlayback` isn't supported (non-Chromium browsers) ### Settings - Removed `CastSettingsRow` (the AirPlay/Chromecast segmented control). The user no longer chooses a method up-front — they pick a target each time from the drawer. ### Harmony - New `IconCast` (Spotify-style laptop + speaker) and `IconCastSpeaker` (standalone speaker for device rows). Existing `IconCastAirplay` / `IconCastChromecast` left untouched. ### Redux (`@audius/common/store/cast`) - Dropped `method`, `updateMethod`, `CastMethod` type, `CAST_METHOD` storage key, and both persistence sagas - Kept `isCasting` and added an optional `deviceName` so the drawer can mark the active device. `GoogleCast.tsx` resolves `castSession.getCastDevice().friendlyName` and `Airplay.tsx` passes the audio route's `portName` ## Test plan - [ ] **Mobile iOS**: tap cast icon on the now-playing drawer → drawer shows This Device + AirPlay & Bluetooth + chromecast devices. AirPlay row opens the system picker. Selecting a chromecast device starts a session and the icon turns active. - [ ] **Mobile Android**: same flow but second row is labeled "Bluetooth" and opens `android.settings.BLUETOOTH_SETTINGS`. - [ ] **Mobile offline**: cast icon is grayed/disabled. - [ ] **Mobile**: "This Device" row ends an active chromecast session and the audio resumes locally. - [x] **Web (Chrome)**: cast icon appears between volume and queue. Popup shows This web browser + Google Cast devices. Clicking the cast-devices row opens Chrome's native picker. - [ ] **Web (Safari/Firefox)**: cast button is hidden (no `RemotePlayback`). - [ ] **Settings**: the AirPlay/Chromecast segmented control is gone from the iOS settings screen. ## Notes - No native iOS / Android code changes — existing Bonjour entries (`Info.plist`) and the cast receiver `222B31C8` (`AndroidManifest.xml`) are untouched. - Mobile typecheck/lint baseline is broken in the worktree environment (missing `@react-native/typescript-config/tsconfig.json` in node_modules; ~13k pre-existing errors), so a clean baseline-vs-after comparison wasn't possible locally. The one real type issue surfaced — narrowing `isCasting && ...` in the drawer — is fixed with `Boolean(...)`. - Web `cast-button/` + `PlayBar.tsx` pass ESLint cleanly. - Web dev server couldn't be started in the worktree (`packages/web/env/` missing), so no browser screenshot of the new button. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 --- packages/common/src/store/cast/sagas.ts | 42 +--- packages/common/src/store/cast/selectors.ts | 7 +- packages/common/src/store/cast/slice.ts | 45 ++-- packages/common/src/store/cast/types.ts | 8 +- packages/harmony/src/assets/icons/Cast.svg | 3 + packages/harmony/src/icons/icons.tsx | 1 + .../harmony/src/icons/individual/IconCast.ts | 5 + packages/mobile/src/app/Drawers.tsx | 2 + .../mobile/src/components/audio/Airplay.tsx | 24 +- .../src/components/audio/GoogleCast.tsx | 33 ++- .../connect-drawer/ConnectDrawer.tsx | 186 ++++++++++++++ .../src/components/connect-drawer/index.ts | 1 + .../now-playing-drawer/ActionsBar.tsx | 65 ++--- packages/mobile/src/harmony-native/icons.tsx | 1 + .../settings-screen/CastSettingsRow.tsx | 63 ----- .../settings-screen/SettingsScreen.tsx | 6 +- packages/mobile/src/store/drawers/slice.ts | 3 + .../src/components/cast-button/CastButton.tsx | 95 ++++++++ .../components/cast-button/ConnectPopup.tsx | 230 ++++++++++++++++++ .../web/src/components/cast-button/index.ts | 1 + .../cast-button/useRemotePlayback.ts | 155 ++++++++++++ .../components/play-bar/desktop/PlayBar.tsx | 2 + .../play-bar/queue-button/QueueButton.tsx | 102 ++------ 23 files changed, 799 insertions(+), 281 deletions(-) create mode 100644 packages/harmony/src/assets/icons/Cast.svg create mode 100644 packages/harmony/src/icons/individual/IconCast.ts create mode 100644 packages/mobile/src/components/connect-drawer/ConnectDrawer.tsx create mode 100644 packages/mobile/src/components/connect-drawer/index.ts delete mode 100644 packages/mobile/src/screens/settings-screen/CastSettingsRow.tsx create mode 100644 packages/web/src/components/cast-button/CastButton.tsx create mode 100644 packages/web/src/components/cast-button/ConnectPopup.tsx create mode 100644 packages/web/src/components/cast-button/index.ts create mode 100644 packages/web/src/components/cast-button/useRemotePlayback.ts diff --git a/packages/common/src/store/cast/sagas.ts b/packages/common/src/store/cast/sagas.ts index 4b5c6a9481c..da12cbdcb7e 100644 --- a/packages/common/src/store/cast/sagas.ts +++ b/packages/common/src/store/cast/sagas.ts @@ -1,41 +1 @@ -import { call, put, takeEvery } from 'typed-redux-saga' - -import { getContext } from '~/store/effects' - -import { updateMethod } from './slice' -import { CastMethod, CAST_METHOD } from './types' - -/** - * Sets the initial cast method based on the value in storage - */ -function* setInitialCastMethod() { - const getLocalStorageItem = yield* getContext('getLocalStorageItem') - const storageCastMethod = yield* call(getLocalStorageItem, CAST_METHOD) - let method: CastMethod - if (storageCastMethod === 'chromecast') { - method = 'chromecast' - } else { - method = 'airplay' - } - yield* put(updateMethod({ method, persist: false })) -} - -/** - * Watches for changes to the cast method and updates local storage - */ -function* watchUpdateCastMethod() { - const setLocalStorageItem = yield* getContext('setLocalStorageItem') - yield* takeEvery( - updateMethod.type, - function* (action: ReturnType) { - const { method, persist } = action.payload - if (persist) { - setLocalStorageItem(CAST_METHOD, method) - } - } - ) -} - -export const sagas = () => { - return [setInitialCastMethod, watchUpdateCastMethod] -} +export const sagas = () => [] diff --git a/packages/common/src/store/cast/selectors.ts b/packages/common/src/store/cast/selectors.ts index 8d22f2be783..899569aff20 100644 --- a/packages/common/src/store/cast/selectors.ts +++ b/packages/common/src/store/cast/selectors.ts @@ -2,7 +2,10 @@ import { CommonState } from '~/store/commonStore' const getBaseState = (state: CommonState) => state.cast -export const getMethod = (state: CommonState) => getBaseState(state).method - export const getIsCasting = (state: CommonState) => getBaseState(state).isCasting + +export const getMethod = (state: CommonState) => getBaseState(state).method + +export const getDeviceName = (state: CommonState) => + getBaseState(state).deviceName diff --git a/packages/common/src/store/cast/slice.ts b/packages/common/src/store/cast/slice.ts index 0a76d095337..791ad6595a3 100644 --- a/packages/common/src/store/cast/slice.ts +++ b/packages/common/src/store/cast/slice.ts @@ -1,39 +1,46 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit' -import { CastMethod } from './types' - -type CastState = { - method: CastMethod - isCasting: boolean -} +import { CastMethod, CastState } from './types' const initialState: CastState = { - method: 'airplay', - isCasting: false + isCasting: false, + method: null, + deviceName: null } const slice = createSlice({ name: 'cast', initialState, reducers: { - updateMethod: ( - state, - { - payload: { method } - }: PayloadAction<{ method: CastMethod; persist?: boolean }> - ) => { - state.method = method - }, setIsCasting: ( state, - { payload: { isCasting } }: PayloadAction<{ isCasting: boolean }> + { + payload: { isCasting, method, deviceName } + }: PayloadAction<{ + isCasting: boolean + method?: CastMethod | null + deviceName?: string | null + }> ) => { - state.isCasting = isCasting + if (isCasting) { + state.isCasting = true + if (method !== undefined) state.method = method + if (deviceName !== undefined) state.deviceName = deviceName + return + } + // Turn-off only takes effect if the caller is referring to the + // currently-active method (or didn't specify one). This stops the + // AirPlay route-change listener from clearing a chromecast session + // that was set by GoogleCast.tsx — and vice versa. + if (method && state.method && state.method !== method) return + state.isCasting = false + state.method = null + state.deviceName = null } } }) -export const { updateMethod, setIsCasting } = slice.actions +export const { setIsCasting } = slice.actions export default slice.reducer diff --git a/packages/common/src/store/cast/types.ts b/packages/common/src/store/cast/types.ts index 7bd283b4ce0..61ea9a8843b 100644 --- a/packages/common/src/store/cast/types.ts +++ b/packages/common/src/store/cast/types.ts @@ -1,3 +1,7 @@ -export const CAST_METHOD = 'cast' - export type CastMethod = 'airplay' | 'chromecast' + +export type CastState = { + isCasting: boolean + method: CastMethod | null + deviceName: string | null +} diff --git a/packages/harmony/src/assets/icons/Cast.svg b/packages/harmony/src/assets/icons/Cast.svg new file mode 100644 index 00000000000..77f171e3475 --- /dev/null +++ b/packages/harmony/src/assets/icons/Cast.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/harmony/src/icons/icons.tsx b/packages/harmony/src/icons/icons.tsx index 1104bc4daea..327626072c3 100644 --- a/packages/harmony/src/icons/icons.tsx +++ b/packages/harmony/src/icons/icons.tsx @@ -53,6 +53,7 @@ export { IconCart } from './individual/IconCart' export { IconMessages } from './individual/IconMessages' export { IconMessage } from './individual/IconMessage' export { IconStar } from './individual/IconStar' +export { IconCast } from './individual/IconCast' export { IconCastAirplay } from './individual/IconCastAirplay' export { IconMessageBlock } from './individual/IconMessageBlock' export { IconMessageSlash } from './individual/IconMessageSlash' diff --git a/packages/harmony/src/icons/individual/IconCast.ts b/packages/harmony/src/icons/individual/IconCast.ts new file mode 100644 index 00000000000..4116223f46a --- /dev/null +++ b/packages/harmony/src/icons/individual/IconCast.ts @@ -0,0 +1,5 @@ +import { IconComponent } from '~harmony/components' + +import IconSVG from '../../assets/icons/Cast.svg' + +export const IconCast = IconSVG as IconComponent diff --git a/packages/mobile/src/app/Drawers.tsx b/packages/mobile/src/app/Drawers.tsx index 6f7d0405362..5d3d263f12b 100644 --- a/packages/mobile/src/app/Drawers.tsx +++ b/packages/mobile/src/app/Drawers.tsx @@ -13,6 +13,7 @@ import { ChallengeRewardsDrawer } from 'app/components/challenge-rewards-drawer' import { ClaimAllRewardsDrawer } from 'app/components/challenge-rewards-drawer/ClaimAllRewardsDrawer' import { ChatActionsDrawer } from 'app/components/chat-actions-drawer' import { CoinflowOnrampDrawer } from 'app/components/coinflow-onramp-drawer/CoinflowOnrampDrawer' +import { ConnectDrawer } from 'app/components/connect-drawer' import { CoinflowWithdrawDrawer } from 'app/components/coinflow-withdraw-drawer/CoinflowWithdrawDrawer' import { CreateChatActionsDrawer } from 'app/components/create-chat-actions-drawer' import { DeactivateAccountConfirmationDrawer } from 'app/components/deactivate-account-confirmation-drawer' @@ -173,6 +174,7 @@ const nativeDrawersMap: { [DrawerName in Drawer]?: ComponentType } = { ConnectNewWallet: ConnectNewWalletDrawer, PickWinners: PickWinnersDrawer, Queue: QueueDrawer, + Connect: ConnectDrawer, CoinInsightsOverflowMenu, WalletRowOverflowMenu } diff --git a/packages/mobile/src/components/audio/Airplay.tsx b/packages/mobile/src/components/audio/Airplay.tsx index b7db6c873ad..fea0407bbbf 100644 --- a/packages/mobile/src/components/audio/Airplay.tsx +++ b/packages/mobile/src/components/audio/Airplay.tsx @@ -47,16 +47,22 @@ const Airplay = () => { 'deviceConnected', (device) => { console.info(`Connected to device ${JSON.stringify(device)}`) - if ( - device && - device.devices && - device.devices[0] && - device.devices[0].portType && - device.devices[0].portType === AIRPLAY_PORT_TYPE - ) { - dispatch(setIsCasting({ isCasting: true })) + const route = device?.devices?.[0] + if (route?.portType === AIRPLAY_PORT_TYPE) { + dispatch( + setIsCasting({ + isCasting: true, + method: 'airplay', + deviceName: route.portName ?? route.name ?? null + }) + ) } else { - dispatch(setIsCasting({ isCasting: false })) + // Tag the disconnect with method:'airplay' so the reducer only + // clears state if AirPlay was the active method. This prevents the + // listener (which fires on any audio route change, including the + // one Chromecast triggers when it takes over) from clobbering + // chromecast state. + dispatch(setIsCasting({ isCasting: false, method: 'airplay' })) } } ) diff --git a/packages/mobile/src/components/audio/GoogleCast.tsx b/packages/mobile/src/components/audio/GoogleCast.tsx index abb1a4d85bb..251662b2dd1 100644 --- a/packages/mobile/src/components/audio/GoogleCast.tsx +++ b/packages/mobile/src/components/audio/GoogleCast.tsx @@ -11,6 +11,7 @@ import { import { CastState, MediaPlayerState, + useCastSession, useCastState, useMediaStatus, useRemoteMediaClient @@ -40,6 +41,7 @@ export const useChromecast = () => { const client = useRemoteMediaClient() const castState = useCastState() const mediaStatus = useMediaStatus() + const castSession = useCastSession() const previousCastState = usePrevious(castState) const [internalCounter, setInternalCounter] = useState(0) @@ -82,15 +84,30 @@ export const useChromecast = () => { // Update our cast UI when the cast device connects useEffect(() => { - switch (castState) { - case CastState.CONNECTED: - dispatch(setIsCasting({ isCasting: true })) - break - default: - dispatch(setIsCasting({ isCasting: false })) - break + if (castState !== CastState.CONNECTED) { + // Tag the disconnect with method:'chromecast' so the reducer only + // clears state if chromecast was the active method — symmetric with + // Airplay.tsx so the two listeners don't clobber each other. + dispatch(setIsCasting({ isCasting: false, method: 'chromecast' })) + return } - }, [castState, dispatch]) + let cancelled = false + const resolve = async () => { + const device = await castSession?.getCastDevice() + if (cancelled) return + dispatch( + setIsCasting({ + isCasting: true, + method: 'chromecast', + deviceName: device?.friendlyName ?? null + }) + ) + } + resolve() + return () => { + cancelled = true + } + }, [castState, castSession, dispatch]) // Ensure that the progress gets reset to 0 // when a new track is played diff --git a/packages/mobile/src/components/connect-drawer/ConnectDrawer.tsx b/packages/mobile/src/components/connect-drawer/ConnectDrawer.tsx new file mode 100644 index 00000000000..6100ccccfbd --- /dev/null +++ b/packages/mobile/src/components/connect-drawer/ConnectDrawer.tsx @@ -0,0 +1,186 @@ +import { useCallback, useEffect } from 'react' + +import { castSelectors } from '@audius/common/store' +import { Linking, Platform, Pressable, View } from 'react-native' +import GoogleCast, { useDevices } from 'react-native-google-cast' +import TrackPlayer from 'react-native-track-player' +import { useSelector } from 'react-redux' + +import { + Divider, + Flex, + IconCast, + IconCheck, + IconSpeaker, + Text, + useTheme +} from '@audius/harmony-native' +import { NativeDrawer } from 'app/components/drawer' +import { useAirplay } from 'app/components/audio/Airplay' +import { useDrawer } from 'app/hooks/useDrawer' + +const { getIsCasting, getMethod, getDeviceName } = castSelectors + +const DRAWER_NAME = 'Connect' +const IS_IOS = Platform.OS === 'ios' + +const messages = { + title: 'Connect', + thisDevice: 'This Device', + airplayBluetooth: 'AirPlay & Bluetooth', + bluetooth: 'Bluetooth', + noDevices: 'Searching for cast devices…' +} + +type RowProps = { + label: string + icon: typeof IconSpeaker + active?: boolean + onPress: () => void +} + +const Row = ({ label, icon: Icon, active, onPress }: RowProps) => { + const { color, spacing } = useTheme() + return ( + ({ + flexDirection: 'row', + alignItems: 'center', + paddingHorizontal: spacing.l, + paddingVertical: spacing.m, + gap: spacing.m, + backgroundColor: pressed ? color.background.surface2 : 'transparent' + })} + > + + + + {label} + + + {active ? : null} + + ) +} + +export const ConnectDrawer = () => { + const { onClose } = useDrawer(DRAWER_NAME) + const isCasting = useSelector(getIsCasting) + const method = useSelector(getMethod) + const activeDeviceName = useSelector(getDeviceName) + const devices = useDevices() + const { openAirplayDialog } = useAirplay() + + // The Cast framework only auto-discovers when a native CastButton / + // MediaRouterButton is in the hierarchy. Since this drawer renders its + // own device list instead, kick off discovery explicitly on iOS when + // the drawer opens. (Android's MediaRouter is started via CastContext + // init in MainActivity.kt and doesn't expose a startDiscovery method.) + useEffect(() => { + if (!IS_IOS) return + const discovery = GoogleCast.getDiscoveryManager() + discovery.startDiscovery().catch(() => {}) + return () => { + discovery.stopDiscovery().catch(() => {}) + } + }, []) + + const handleSelectThisDevice = useCallback(() => { + if (method === 'chromecast') { + GoogleCast.getSessionManager().endCurrentSession() + } else if (method === 'airplay') { + // iOS doesn't allow programmatic AirPlay disconnect — open the + // system picker so the user can route back to the iPhone. + openAirplayDialog() + } + onClose() + }, [method, openAirplayDialog, onClose]) + + const handleSelectAirplayOrBluetooth = useCallback(() => { + if (IS_IOS) { + openAirplayDialog() + } else { + // Open Android system Bluetooth picker. Fall back to general settings + // if the intent action isn't handled. + Linking.sendIntent('android.settings.BLUETOOTH_SETTINGS').catch(() => { + Linking.openSettings().catch(() => {}) + }) + } + onClose() + }, [openAirplayDialog, onClose]) + + const handleSelectCastDevice = useCallback( + (deviceId: string) => { + // Pre-mute the local player so any active AirPlay route plays silence + // immediately rather than continuing to bleed audio while the + // chromecast session is being established. GoogleCast.tsx also sets + // volume=0 on CONNECTING, but that fires async after startSession; the + // pre-mute closes the gap so AirPlay doesn't briefly play in parallel. + TrackPlayer.setVolume(0).catch(() => {}) + // If the user was AirPlaying, open the AirPlay picker so they can + // route back to iPhone — iOS doesn't allow programmatic disconnect. + if (method === 'airplay') { + openAirplayDialog() + } + GoogleCast.getSessionManager() + .startSession(deviceId) + .catch(() => {}) + onClose() + }, + [method, openAirplayDialog, onClose] + ) + + return ( + + + + + + + {devices.map((device) => { + const isActive = Boolean( + method === 'chromecast' && activeDeviceName === device.friendlyName + ) + return ( + handleSelectCastDevice(device.deviceId)} + /> + ) + })} + + {devices.length === 0 ? ( + + + {messages.noDevices} + + + ) : null} + + + ) +} diff --git a/packages/mobile/src/components/connect-drawer/index.ts b/packages/mobile/src/components/connect-drawer/index.ts new file mode 100644 index 00000000000..df553bbe384 --- /dev/null +++ b/packages/mobile/src/components/connect-drawer/index.ts @@ -0,0 +1 @@ +export { ConnectDrawer } from './ConnectDrawer' diff --git a/packages/mobile/src/components/now-playing-drawer/ActionsBar.tsx b/packages/mobile/src/components/now-playing-drawer/ActionsBar.tsx index b6e848bece1..02bea364db1 100644 --- a/packages/mobile/src/components/now-playing-drawer/ActionsBar.tsx +++ b/packages/mobile/src/components/now-playing-drawer/ActionsBar.tsx @@ -1,4 +1,4 @@ -import { useCallback, useLayoutEffect } from 'react' +import { useCallback } from 'react' import { useCurrentUserId, useToggleFavoriteTrack } from '@audius/common/api' import { @@ -13,7 +13,6 @@ import { import type { Track } from '@audius/common/models' import { castSelectors, - castActions, reachabilitySelectors, tracksSocialActions, mobileOverflowMenuUIActions, @@ -26,25 +25,22 @@ import { import { Genre, removeNullable } from '@audius/common/utils' import type { Nullable } from '@audius/common/utils' import { USDC } from '@audius/fixed-decimal' -import { View, Platform } from 'react-native' -import { CastButton, useDevices } from 'react-native-google-cast' +import { View } from 'react-native' +import { useDevices } from 'react-native-google-cast' import { useDispatch, useSelector } from 'react-redux' import { IconButton, - IconCastAirplay, - IconCastChromecast, + IconCast, IconIndent, IconKebabHorizontal, Button, IconMessage } from '@audius/harmony-native' -import { useAirplay } from 'app/components/audio/Airplay' import { useDrawer } from 'app/hooks/useDrawer' import { useNavigation } from 'app/hooks/useNavigation' import { useToast } from 'app/hooks/useToast' import { makeStyles } from 'app/styles' -import { useThemeColors } from 'app/utils/theme' import { useCommentDrawer } from '../comments/CommentDrawerContext' @@ -53,8 +49,7 @@ import { RepostButton } from './RepostButton' const { open: openOverflowMenu } = mobileOverflowMenuUIActions const { repostTrack, undoRepostTrack } = tracksSocialActions -const { updateMethod } = castActions -const { getMethod: getCastMethod, getIsCasting } = castSelectors +const { getIsCasting } = castSelectors const { getTrackPosition } = playbackPositionSelectors const { getIsReachable } = reachabilitySelectors @@ -109,16 +104,16 @@ type ActionsBarProps = { export const ActionsBar = ({ track }: ActionsBarProps) => { const styles = useStyles() const { toast } = useToast() - const castMethod = useSelector(getCastMethod) const isCasting = useSelector(getIsCasting) const { data: accountUserId } = useCurrentUserId() - const { neutral, neutralLight6, primary } = useThemeColors() const dispatch = useDispatch() const isReachable = useSelector(getIsReachable) const navigation = useNavigation() const { open } = useCommentDrawer() const { onOpen: openQueue } = useDrawer('Queue') + const { onOpen: openConnect } = useDrawer('Connect') + const castDevices = useDevices() const { showBadge: showQueueNewFeatureBadge, dismiss: dismissQueueNewFeatureBadge @@ -154,12 +149,6 @@ export const ActionsBar = ({ track }: ActionsBarProps) => { !hasStreamAccess const shouldShowActions = hasStreamAccess && !isUnlisted - useLayoutEffect(() => { - if (Platform.OS === 'android' && castMethod === 'airplay') { - dispatch(updateMethod({ method: 'chromecast' })) - } - }, [castMethod, dispatch]) - const handleFavorite = useToggleFavoriteTrack({ trackId: track?.track_id, source: FavoriteSource.NOW_PLAYING @@ -226,9 +215,6 @@ export const ActionsBar = ({ track }: ActionsBarProps) => { } }, [track, isOwner, isUnlisted, playbackPositionInfo?.status, dispatch]) - const { openAirplayDialog } = useAirplay() - const castDevices = useDevices() - const renderPurchaseButton = () => { if ( track?.stream_conditions && @@ -248,30 +234,21 @@ export const ActionsBar = ({ track }: ActionsBarProps) => { } const renderCastButton = () => { - if (castMethod === 'airplay') { - return ( - - ) - } - return isReachable && castDevices.length > 0 ? ( - - ) : ( - - - ) } diff --git a/packages/mobile/src/harmony-native/icons.tsx b/packages/mobile/src/harmony-native/icons.tsx index 3d692bf9632..f1af36655ba 100644 --- a/packages/mobile/src/harmony-native/icons.tsx +++ b/packages/mobile/src/harmony-native/icons.tsx @@ -66,6 +66,7 @@ export { default as IconMessage } from '@audius/harmony/src/assets/icons/Message export { default as IconMessages } from '@audius/harmony/src/assets/icons/Messages.svg' export { default as IconMerch } from '@audius/harmony/src/assets/icons/Merch.svg' export { default as IconStar } from '@audius/harmony/src/assets/icons/Star.svg' +export { default as IconCast } from '@audius/harmony/src/assets/icons/Cast.svg' export { default as IconCastAirplay } from '@audius/harmony/src/assets/icons/CastAirplay.svg' export { default as IconMessageBlock } from '@audius/harmony/src/assets/icons/MessageBlock.svg' export { default as IconMessageSlash } from '@audius/harmony/src/assets/icons/MessageSlash.svg' diff --git a/packages/mobile/src/screens/settings-screen/CastSettingsRow.tsx b/packages/mobile/src/screens/settings-screen/CastSettingsRow.tsx deleted file mode 100644 index 46c561ec462..00000000000 --- a/packages/mobile/src/screens/settings-screen/CastSettingsRow.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import { useCallback } from 'react' - -import { useHasAccount } from '@audius/common/api' -import type { CastMethod } from '@audius/common/store' -import { castSelectors, castActions } from '@audius/common/store' -import { useDispatch, useSelector } from 'react-redux' - -import { IconVolumeLevel2 } from '@audius/harmony-native' -import { SegmentedControl } from 'app/components/core' - -import { SettingsRowLabel } from './SettingRowLabel' -import { SettingsRow } from './SettingsRow' -import { SettingsRowContent } from './SettingsRowContent' -import { SettingsRowDescription } from './SettingsRowDescription' -const { updateMethod } = castActions -const { getMethod: getCastMethod } = castSelectors - -const messages = { - cast: 'Cast to Devices', - castDescription: - 'Enable casting to devices that support Chromecast. Airplay will still be available, but will require a few extra taps.', - airplay: 'Airplay', - chromecast: 'Chromecast' -} - -export const CastSettingsRow = () => { - const dispatch = useDispatch() - const hasAccount = useHasAccount() - const castMethod = useSelector(getCastMethod) - - const setCastMethod = useCallback( - (method: CastMethod) => { - // Changes should be persisted to async storage so that the - // settings row value persists between sessions. - dispatch(updateMethod({ method, persist: true })) - }, - [dispatch] - ) - - if (!hasAccount) return null - - const castOptions = [ - { key: 'airplay', text: messages.airplay }, - { key: 'chromecast', text: messages.chromecast } - ] - - return ( - - - - {messages.castDescription} - - - - - - ) -} diff --git a/packages/mobile/src/screens/settings-screen/SettingsScreen.tsx b/packages/mobile/src/screens/settings-screen/SettingsScreen.tsx index 66bc73ea604..9879908545e 100644 --- a/packages/mobile/src/screens/settings-screen/SettingsScreen.tsx +++ b/packages/mobile/src/screens/settings-screen/SettingsScreen.tsx @@ -1,6 +1,6 @@ import { useCallback } from 'react' -import { Image, Platform } from 'react-native' +import { Image } from 'react-native' import { IconCloudDownload, @@ -22,14 +22,11 @@ import type { ProfileTabScreenParamList } from '../app-screen/ProfileTabScreen' import { AccountSettingsRow } from './AccountSettingsRow' import { AppearanceSettingsRow } from './AppearanceSettingsRow' -import { CastSettingsRow } from './CastSettingsRow' import { SettingsRowLabel } from './SettingRowLabel' import { SettingsDivider } from './SettingsDivider' import { SettingsRow } from './SettingsRow' import { SettingsRowDescription } from './SettingsRowDescription' -const IS_IOS = Platform.OS === 'ios' - const messages = { title: 'Settings', inbox: 'Inbox Settings', @@ -125,7 +122,6 @@ export const SettingsScreen = () => { {messages.commentDescription} - {IS_IOS ? : null} { + const anchorRef = useRef(null) + const [isOpen, setIsOpen] = useState(false) + // The audio element is routed through an AudioContext on this app, so + // `audio.remote.state` doesn't reliably flip to 'connected' when the user + // tab-casts via the system picker. Track an optimistic local flag set when + // the user successfully picks a device. + const [pickedCast, setPickedCast] = useState(false) + const { supported, state, prompt } = useRemotePlayback() + const isCasting = + pickedCast || state === 'connected' || state === 'connecting' + // Safari's `audio.remote.prompt()` opens the AirPlay picker; on Chromium + // it opens Chrome's cast picker. Label the popup row + tooltip accordingly. + const mode = useMemo<'airplay' | 'cast'>( + () => (isSafari() ? 'airplay' : 'cast'), + [] + ) + const tooltipLabel = mode === 'airplay' ? messages.airplay : messages.cast + + const handleToggle = useCallback(() => { + setIsOpen((o) => !o) + }, []) + + const handleClose = useCallback(() => { + setIsOpen(false) + }, []) + + const handleSelectCastDevices = useCallback(async () => { + setIsOpen(false) + try { + await prompt() + setPickedCast(true) + } catch { + // User cancelled the picker — leave the existing state. + } + }, [prompt]) + + const handleSelectThisBrowser = useCallback(async () => { + setIsOpen(false) + if (isCasting) { + // RemotePlayback has no programmatic disconnect. Re-opening the + // browser's native picker shows a "Stop casting" option for the + // currently-active device — the user clicks that to return audio + // to the local browser. This is the same flow Spotify uses. + try { + await prompt() + } catch { + // User cancelled the picker — leave the existing state. + } + } + setPickedCast(false) + }, [isCasting, prompt]) + + if (!supported) return null + + return ( + <> + + + + + + + + + + ) +} diff --git a/packages/web/src/components/cast-button/ConnectPopup.tsx b/packages/web/src/components/cast-button/ConnectPopup.tsx new file mode 100644 index 00000000000..f08e7b040ac --- /dev/null +++ b/packages/web/src/components/cast-button/ConnectPopup.tsx @@ -0,0 +1,230 @@ +import { + MutableRefObject, + useCallback, + useEffect, + useLayoutEffect, + useRef, + useState +} from 'react' + +import { + Box, + Divider, + Flex, + IconButton, + IconCast, + IconCastAirplay, + IconCheck, + IconClose, + IconDesktop, + IconSpeaker, + Text, + useTheme +} from '@audius/harmony' +import { createPortal } from 'react-dom' + +const messages = { + connect: 'Connect', + close: 'Close', + thisBrowser: 'This web browser', + googleCastDevices: 'Google Cast devices', + airplayDevices: 'AirPlay devices' +} + +const POPOVER_WIDTH = 320 +const POPOVER_GAP = 12 +// Approximate intrinsic content height used only for initial vertical +// positioning above the anchor. The popup itself is content-sized. +const POPOVER_HEIGHT_HINT = 180 + +type ConnectPopupProps = { + isVisible: boolean + anchorRef: MutableRefObject + isCasting: boolean + mode: 'cast' | 'airplay' + onClose: () => void + onSelectThisBrowser: () => void + onSelectCastDevices: () => void +} + +type RowProps = { + label: string + icon: typeof IconCast + active?: boolean + onClick?: () => void +} + +const Row = ({ label, icon: Icon, active, onClick }: RowProps) => { + const { color, spacing, cornerRadius } = useTheme() + return ( + + + + {label} + + {active ? ( + + + + ) : null} + + ) +} + +export const ConnectPopup = ({ + isVisible, + anchorRef, + isCasting, + mode, + onClose, + onSelectThisBrowser, + onSelectCastDevices +}: ConnectPopupProps) => { + const popoverRef = useRef(null) + const [position, setPosition] = useState<{ + top: number + left: number + } | null>(null) + const [shouldRender, setShouldRender] = useState(isVisible) + + useEffect(() => { + if (isVisible) setShouldRender(true) + }, [isVisible]) + + useLayoutEffect(() => { + if (!isVisible) return + const el = anchorRef.current + if (!el) return + const rect = el.getBoundingClientRect() + // Use the rendered height if we have one (re-positioning), otherwise an + // intrinsic-height hint for the first paint. + const heightHint = + popoverRef.current?.getBoundingClientRect().height ?? POPOVER_HEIGHT_HINT + let top = rect.top - heightHint - POPOVER_GAP + let left = rect.right - POPOVER_WIDTH + if (top < 8) top = 8 + if (left < 8) left = 8 + if (left + POPOVER_WIDTH > window.innerWidth - 8) { + left = window.innerWidth - POPOVER_WIDTH - 8 + } + setPosition({ top, left }) + }, [isVisible, anchorRef]) + + useEffect(() => { + if (!isVisible) return + const onDocPointerDown = (e: PointerEvent) => { + const target = e.target as Node + if (popoverRef.current?.contains(target)) return + if (anchorRef.current?.contains(target)) return + onClose() + } + document.addEventListener('pointerdown', onDocPointerDown) + return () => document.removeEventListener('pointerdown', onDocPointerDown) + }, [isVisible, onClose, anchorRef]) + + useEffect(() => { + if (!isVisible) return + const onKey = (e: KeyboardEvent) => { + if (e.key === 'Escape') onClose() + } + document.addEventListener('keydown', onKey) + return () => document.removeEventListener('keydown', onKey) + }, [isVisible, onClose]) + + const handleTransitionEnd = useCallback(() => { + if (!isVisible) setShouldRender(false) + }, [isVisible]) + + if (!shouldRender || !position) return null + + return createPortal( +
    + ({ + backgroundColor: theme.color.background.white, + border: `1px solid ${theme.color.border.strong}`, + borderRadius: theme.cornerRadius.m, + boxShadow: + '0px 0px 4px 0px rgba(0,0,0,0.04), 0px 8px 16px 0px rgba(0,0,0,0.08)', + width: '100%', + padding: 8 + })} + > + + + {messages.connect} + + + + + + + + + +
    , + document.body + ) +} diff --git a/packages/web/src/components/cast-button/index.ts b/packages/web/src/components/cast-button/index.ts new file mode 100644 index 00000000000..ce839f2f8c0 --- /dev/null +++ b/packages/web/src/components/cast-button/index.ts @@ -0,0 +1 @@ +export { CastButton } from './CastButton' diff --git a/packages/web/src/components/cast-button/useRemotePlayback.ts b/packages/web/src/components/cast-button/useRemotePlayback.ts new file mode 100644 index 00000000000..f4c29dafcc7 --- /dev/null +++ b/packages/web/src/components/cast-button/useRemotePlayback.ts @@ -0,0 +1,155 @@ +import { useCallback, useEffect, useState } from 'react' + +import { castActions } from '@audius/common/store' +import { useDispatch } from 'react-redux' + +import { audioPlayer } from 'services/audio-player' + +const { setIsCasting } = castActions + +type RemotePlaybackState = + | 'disabled' + | 'disconnected' + | 'connecting' + | 'connected' + +type WebKitAudio = HTMLAudioElement & { + webkitShowPlaybackTargetPicker?: () => void + webkitCurrentPlaybackTargetIsWireless?: boolean +} + +const getAudio = (): HTMLAudioElement | null => { + if (typeof window === 'undefined') return null + return audioPlayer?.audio ?? window.audio ?? null +} + +const getRemote = (): RemotePlayback | null => { + return getAudio()?.remote ?? null +} + +export const isSafari = (): boolean => { + if (typeof navigator === 'undefined') return false + return /^((?!chrome|android).)*safari/i.test(navigator.userAgent) +} + +const hasWebkitAirplay = (el: HTMLAudioElement | null): boolean => { + const audio = el as WebKitAudio | null + return !!audio && typeof audio.webkitShowPlaybackTargetPicker === 'function' +} + +/** + * Bridges the browser's wireless-playback APIs to Redux and exposes a + * `prompt` action that opens the system picker. + * + * Safari implements AirPlay via webkit-prefixed APIs on HTMLMediaElement, + * not via `RemotePlayback.prompt()`. We detect Safari and route through + * `webkitShowPlaybackTargetPicker()` + the `webkitcurrentplaybacktarget- + * iswirelesschanged` event, which is what actually drives AirPlay in + * Safari. Chromium uses the standard `RemotePlayback` API to open + * Chrome's cast picker. + */ +export const useRemotePlayback = () => { + const dispatch = useDispatch() + const safari = isSafari() + const [state, setState] = useState(() => { + if (safari) { + const audio = getAudio() as WebKitAudio | null + return audio?.webkitCurrentPlaybackTargetIsWireless + ? 'connected' + : 'disconnected' + } + const remote = getRemote() + return (remote?.state as RemotePlaybackState) ?? 'disabled' + }) + const [supported, setSupported] = useState(() => { + if (safari) return hasWebkitAirplay(getAudio()) + const remote = getRemote() + return !!remote && typeof remote.prompt === 'function' + }) + + useEffect(() => { + if (safari) { + const attach = (): (() => void) | undefined => { + const audio = getAudio() as WebKitAudio | null + setSupported(hasWebkitAirplay(audio)) + if (!audio) return undefined + const sync = () => { + setState( + audio.webkitCurrentPlaybackTargetIsWireless + ? 'connected' + : 'disconnected' + ) + } + sync() + audio.addEventListener( + 'webkitcurrentplaybacktargetiswirelesschanged', + sync + ) + return () => { + audio.removeEventListener( + 'webkitcurrentplaybacktargetiswirelesschanged', + sync + ) + } + } + // The audio element is created lazily by AudioPlayer; retry on the + // next tick if it isn't there yet. + let cleanup = attach() + if (!cleanup) { + const t = setTimeout(() => { + cleanup = attach() + }, 0) + return () => { + clearTimeout(t) + cleanup?.() + } + } + return cleanup + } + + let remote = getRemote() + if (!remote) { + const t = setTimeout(() => { + remote = getRemote() + setSupported(!!remote && typeof remote?.prompt === 'function') + if (remote) setState(remote.state as RemotePlaybackState) + }, 0) + return () => clearTimeout(t) + } + const sync = () => setState(remote!.state as RemotePlaybackState) + sync() + remote.addEventListener('connect', sync) + remote.addEventListener('connecting', sync) + remote.addEventListener('disconnect', sync) + return () => { + remote!.removeEventListener('connect', sync) + remote!.removeEventListener('connecting', sync) + remote!.removeEventListener('disconnect', sync) + } + }, [safari]) + + useEffect(() => { + dispatch(setIsCasting({ isCasting: state === 'connected' })) + }, [state, dispatch]) + + const prompt = useCallback(async () => { + if (safari) { + const audio = getAudio() as WebKitAudio | null + // webkitShowPlaybackTargetPicker isn't async and doesn't return a + // promise. It must be called in direct response to a user gesture — + // the popup row click qualifies. + audio?.webkitShowPlaybackTargetPicker?.() + return + } + const remote = getRemote() + if (!remote) return + try { + await remote.prompt() + } catch { + // User dismissed the picker or no devices — the picker handles its + // own error UI; nothing to do here. + } + }, [safari]) + + return { state, supported, prompt } +} diff --git a/packages/web/src/components/play-bar/desktop/PlayBar.tsx b/packages/web/src/components/play-bar/desktop/PlayBar.tsx index 1374d98efab..30bb3626c31 100644 --- a/packages/web/src/components/play-bar/desktop/PlayBar.tsx +++ b/packages/web/src/components/play-bar/desktop/PlayBar.tsx @@ -15,6 +15,7 @@ import cn from 'classnames' import { useDispatch, useSelector } from 'react-redux' import { make } from 'common/store/analytics/actions' +import { CastButton } from 'components/cast-button' import PlayButton from 'components/play-bar/PlayButton' import NextButtonProvider from 'components/play-bar/next-button/NextButtonProvider' import PreviousButtonProvider from 'components/play-bar/previous-button/PreviousButtonProvider' @@ -374,6 +375,7 @@ const PlayBar = () => { granularity={VOLUME_GRANULARITY} onChange={updateVolume} /> + diff --git a/packages/web/src/components/play-bar/queue-button/QueueButton.tsx b/packages/web/src/components/play-bar/queue-button/QueueButton.tsx index 239cca63759..098acc62f16 100644 --- a/packages/web/src/components/play-bar/queue-button/QueueButton.tsx +++ b/packages/web/src/components/play-bar/queue-button/QueueButton.tsx @@ -1,61 +1,26 @@ import { useCallback, useRef, useState } from 'react' -import { useQueueNewFeatureBadge } from '@audius/common/hooks' import { Name } from '@audius/common/models' import { playbackSelectors } from '@audius/common/store' -import { - Box, - Flex, - IconButton, - IconIndent, - NotificationCount, - Tooltip, - useTheme -} from '@audius/harmony' -import { keyframes } from '@emotion/react' +import { Flex, IconButton, IconIndent, Tooltip } from '@audius/harmony' import { useSelector } from 'react-redux' import { make, useRecord } from 'common/store/analytics/actions' import { QueuePopover } from 'components/queue-popover' -const { getPlaybackQueue, getUpNext } = playbackSelectors +const { getPlaybackQueue } = playbackSelectors const messages = { - queue: 'Queue', - newFeature: 'New' + queue: 'Queue' } -const pulse = keyframes` - 0%, 100% { - transform: scale(1); - opacity: 1; - } - 50% { - transform: scale(1.6); - opacity: 0.55; - } -` - export const QueueButton = () => { const anchorRef = useRef(null) const [isOpen, setIsOpen] = useState(false) const queue = useSelector(getPlaybackQueue) - const upNext = useSelector(getUpNext) - // Show the indicator only when there are queued items beyond the currently - // playing track — a single playing track shouldn't trigger it. - const hasItems = upNext.length > 0 - const { color } = useTheme() const record = useRecord() - const { dismiss: dismissNewFeatureBadge } = useQueueNewFeatureBadge() - // Forced on for local visual testing. Restore the hook's showBadge value - // before shipping. - const showNewFeatureBadge = true - const showQueueDot = hasItems && !showNewFeatureBadge const handleToggle = useCallback(() => { - if (showNewFeatureBadge) { - dismissNewFeatureBadge() - } setIsOpen((open) => { const next = !open if (next) { @@ -70,7 +35,7 @@ export const QueueButton = () => { } return next }) - }, [record, queue.length, showNewFeatureBadge, dismissNewFeatureBadge]) + }, [record, queue.length]) const handleClose = useCallback(() => { setIsOpen((open) => { @@ -83,58 +48,19 @@ export const QueueButton = () => { return ( <> - - + + - {showQueueDot ? ( - - - - ) : ( - - )} + - {showNewFeatureBadge ? ( - - ) : null} Date: Tue, 19 May 2026 20:45:36 -0700 Subject: [PATCH 24/60] feat(web): replace quick-create playlist flow with a modal (#14318) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Replaces the one-shot "quick create" playlist flow (which immediately dispatched `createPlaylist({ playlist_name: 'New Playlist' })` and routed the user into the edit page) with a real Create Playlist modal that captures title, optional description, and optional artwork up front. - Adds a `CreatePlaylistModal` Redux modal slice (using the existing `createModal` helper), wired into the modals reducer / types / parent state. - Adds the `CreatePlaylistModal` component in `packages/web/src/components/create-playlist-modal/`. Uses Harmony `Modal` + `TextInput` + `TextArea` + the existing `UploadArtwork` component, plus the `resizeImage` pipeline for artwork. - The sidebar "New → Create Playlist" popup item (`CreatePlaylistLibraryItemButton`) and the empty-library nav link (`EmptyLibraryNavLink`) now open the modal instead of dispatching `createPlaylist` directly. - Playlists still default to private (enforced by the existing `optimisticallySavePlaylist` saga) and the saga still routes the user to the new playlist page after creation, so the post-create UX is unchanged. This is the first chunk of a larger playlist-editor UX initiative; follow-up PRs will add the duplicate-playlist secondary action and paste-tracks-by-URL. ## Test plan - [ ] Sign in to the web app - [ ] Left nav → click the `+` (New) button → Create Playlist - [ ] Verify the new modal opens with empty fields, an optional artwork uploader, a 64-char-capped title field, and a 1000-char description with counter - [ ] Create with empty title → playlist gets named "New Playlist", lands on the edit page, default visibility is Hidden/private - [ ] Create with a custom title + description + artwork → all three are reflected on the edit page - [ ] Open modal, click Cancel or backdrop → no playlist is created - [ ] Empty-library nav link in sidebar also opens this modal (sign in with a brand-new account that has zero playlists, or temporarily clear the library) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) --- .../ui/modals/create-playlist-modal/index.ts | 21 ++ packages/common/src/store/ui/modals/index.ts | 1 + .../common/src/store/ui/modals/parentSlice.ts | 3 +- .../common/src/store/ui/modals/reducers.ts | 4 +- packages/common/src/store/ui/modals/types.ts | 1 + .../CreatePlaylistModal.tsx | 192 ++++++++++++++++++ .../CreatePlaylistLibraryItemButton.tsx | 19 +- .../PlaylistLibrary/EmptyLibraryNavLink.tsx | 19 +- packages/web/src/pages/modals/Modals.tsx | 4 +- 9 files changed, 233 insertions(+), 31 deletions(-) create mode 100644 packages/common/src/store/ui/modals/create-playlist-modal/index.ts create mode 100644 packages/web/src/components/create-playlist-modal/CreatePlaylistModal.tsx diff --git a/packages/common/src/store/ui/modals/create-playlist-modal/index.ts b/packages/common/src/store/ui/modals/create-playlist-modal/index.ts new file mode 100644 index 00000000000..e1b8f1d5306 --- /dev/null +++ b/packages/common/src/store/ui/modals/create-playlist-modal/index.ts @@ -0,0 +1,21 @@ +import { createModal } from '../createModal' + +export type CreatePlaylistModalState = { + isAlbum?: boolean + initTrackId?: number +} + +const createPlaylistModal = createModal({ + reducerPath: 'CreatePlaylistModal', + initialState: { + isOpen: false, + isAlbum: false + }, + sliceSelector: (state) => state.ui.modals +}) + +export const { + hook: useCreatePlaylistModal, + reducer: createPlaylistModalReducer, + actions: createPlaylistModalActions +} = createPlaylistModal diff --git a/packages/common/src/store/ui/modals/index.ts b/packages/common/src/store/ui/modals/index.ts index 0c79117f184..c82a3b8a28b 100644 --- a/packages/common/src/store/ui/modals/index.ts +++ b/packages/common/src/store/ui/modals/index.ts @@ -41,3 +41,4 @@ export * from './receive-tokens-modal' export * from './send-tokens-modal' export * from './coin-success-modal' export * from './fan-club-details-modal' +export * from './create-playlist-modal' diff --git a/packages/common/src/store/ui/modals/parentSlice.ts b/packages/common/src/store/ui/modals/parentSlice.ts index 952be569027..c667c209280 100644 --- a/packages/common/src/store/ui/modals/parentSlice.ts +++ b/packages/common/src/store/ui/modals/parentSlice.ts @@ -84,7 +84,8 @@ export const initialState: BasicModalsState = { CoinSuccessModal: { isOpen: false }, FanClubDetailsModal: { isOpen: false }, VerificationSuccess: { isOpen: false }, - VerificationError: { isOpen: false } + VerificationError: { isOpen: false }, + CreatePlaylistModal: { isOpen: false } } const slice = createSlice({ diff --git a/packages/common/src/store/ui/modals/reducers.ts b/packages/common/src/store/ui/modals/reducers.ts index d8a50ee311f..102820cd0f0 100644 --- a/packages/common/src/store/ui/modals/reducers.ts +++ b/packages/common/src/store/ui/modals/reducers.ts @@ -12,6 +12,7 @@ import { coinflowWithdrawModalReducer } from './coinflow-withdraw-modal' import { connectedWalletsModalReducer } from './connected-wallets-modal' import { chatBlastModalReducer } from './create-chat-blast-modal' import { createChatModalReducer } from './create-chat-modal' +import { createPlaylistModalReducer } from './create-playlist-modal' import { deleteTrackConfirmationModalReducer } from './delete-track-confirmation-modal' import { downloadTrackArchiveModalReducer } from './download-track-archive-modal' import { earlyReleaseConfirmationModalReducer } from './early-release-confirmation-modal' @@ -92,7 +93,8 @@ const combinedReducers = combineReducers({ ReceiveTokensModal: receiveTokensModalReducer, SendTokensModal: sendTokensModalReducer, CoinSuccessModal: coinSuccessModalReducer, - FanClubDetailsModal: fanClubDetailsModalReducer + FanClubDetailsModal: fanClubDetailsModalReducer, + CreatePlaylistModal: createPlaylistModalReducer }) /** diff --git a/packages/common/src/store/ui/modals/types.ts b/packages/common/src/store/ui/modals/types.ts index 307360dfe97..63276d6c5d5 100644 --- a/packages/common/src/store/ui/modals/types.ts +++ b/packages/common/src/store/ui/modals/types.ts @@ -120,6 +120,7 @@ export type Modals = | 'CoinSuccessModal' | 'VerificationSuccess' | 'VerificationError' + | 'CreatePlaylistModal' export type BasicModalsState = { [modal in Modals]: BaseModalState diff --git a/packages/web/src/components/create-playlist-modal/CreatePlaylistModal.tsx b/packages/web/src/components/create-playlist-modal/CreatePlaylistModal.tsx new file mode 100644 index 00000000000..c9660f37eb7 --- /dev/null +++ b/packages/web/src/components/create-playlist-modal/CreatePlaylistModal.tsx @@ -0,0 +1,192 @@ +import { useCallback, useState } from 'react' + +import { CreatePlaylistSource } from '@audius/common/models' +import { + cacheCollectionsActions, + useCreatePlaylistModal +} from '@audius/common/store' +import { getErrorMessage } from '@audius/common/utils' +import { + Button, + Flex, + IconPlaylists, + Modal, + ModalContent, + ModalFooter, + ModalHeader, + ModalTitle, + TextArea, + TextInput +} from '@audius/harmony' +import { useDispatch } from 'react-redux' + +import UploadArtwork from 'components/upload/UploadArtwork' +import { resizeImage } from 'utils/imageProcessingUtil' + +const { createPlaylist, createAlbum } = cacheCollectionsActions + +const messages = { + createPlaylistTitle: 'Create New Playlist', + createAlbumTitle: 'Create New Album', + nameLabel: 'Playlist Name', + nameLabelAlbum: 'Album Name', + namePlaceholder: 'Give your playlist a name', + namePlaceholderAlbum: 'Give your album a name', + descriptionLabel: 'Description', + descriptionPlaceholder: 'Describe what makes this special (optional)', + cancel: 'Cancel', + create: 'Create', + defaultName: 'New Playlist', + defaultAlbumName: 'New Album' +} + +type ArtworkValue = { + url: string + file: File + source?: string +} | null + +export const CreatePlaylistModal = () => { + const dispatch = useDispatch() + const { isOpen, onClose, onClosed, data } = useCreatePlaylistModal() + const { isAlbum = false, initTrackId } = data + + const [name, setName] = useState('') + const [description, setDescription] = useState('') + const [artwork, setArtwork] = useState(null) + const [imageProcessingError, setImageProcessingError] = useState(false) + const [isSubmitting, setIsSubmitting] = useState(false) + + const reset = useCallback(() => { + setName('') + setDescription('') + setArtwork(null) + setImageProcessingError(false) + setIsSubmitting(false) + }, []) + + const handleClose = useCallback(() => { + onClose() + }, [onClose]) + + const handleClosed = useCallback(() => { + reset() + onClosed() + }, [onClosed, reset]) + + const handleDropArtwork = useCallback( + async (selectedFiles: File[], source: string) => { + try { + let file = selectedFiles[0] + file = await resizeImage(file) + // @ts-ignore writing to read-only property; matches ArtworkField pattern + file.name = selectedFiles[0].name + const url = URL.createObjectURL(file) + setArtwork({ url, file, source }) + setImageProcessingError(false) + } catch (err) { + // eslint-disable-next-line no-console + console.error(getErrorMessage(err)) + setImageProcessingError(true) + } + }, + [] + ) + + const handleRemoveArtwork = useCallback(() => { + setArtwork(null) + }, []) + + const handleSubmit = useCallback(() => { + setIsSubmitting(true) + const trimmedName = name.trim() + const trimmedDescription = description.trim() + const playlistName = + trimmedName || + (isAlbum ? messages.defaultAlbumName : messages.defaultName) + const action = isAlbum ? createAlbum : createPlaylist + dispatch( + action( + { + playlist_name: playlistName, + description: trimmedDescription || undefined, + // Cast: optimisticallySavePlaylist accepts the form-shape artwork. + ...(artwork ? { artwork: artwork as any } : {}) + }, + CreatePlaylistSource.NAV, + initTrackId, + 'route' + ) + ) + onClose() + }, [name, description, artwork, isAlbum, initTrackId, dispatch, onClose]) + + const title = isAlbum + ? messages.createAlbumTitle + : messages.createPlaylistTitle + const nameLabel = isAlbum ? messages.nameLabelAlbum : messages.nameLabel + const namePlaceholder = isAlbum + ? messages.namePlaceholderAlbum + : messages.namePlaceholder + + return ( + + + } /> + + + + + + + setName(e.target.value)} + maxLength={64} + /> +