diff --git a/.github/actions/get_test_infos/README.md b/.github/actions/get_test_infos/README.md index 092f765a2a..7b753ec736 100644 --- a/.github/actions/get_test_infos/README.md +++ b/.github/actions/get_test_infos/README.md @@ -20,7 +20,6 @@ steps: - id: get-test-infos uses: ./.github/actions/get_test_infos with: - node-version: '20.x' directories: './tests ./examples' exclude-dirs: 'tests/exclude_this_directory examples/exclude_this exclude_all_with_this_dir_in_path' diff --git a/.github/actions/get_test_infos/action.yml b/.github/actions/get_test_infos/action.yml index 9cb22a9737..5c421bb733 100644 --- a/.github/actions/get_test_infos/action.yml +++ b/.github/actions/get_test_infos/action.yml @@ -1,4 +1,4 @@ -name: Get test infos +name: 'Get test infos' description: 'Gets a list of test info objects for each npm project with an npm test script The shape of the object is @@ -9,26 +9,26 @@ description: displayPath: string // An abbreviated version of the path for display purposes only }' inputs: - node-version: - description: The version of Node.js to use - required: true directories: - description: List of directories to search for npm projects with an npm test script + description: 'List of directories to search for npm projects with an npm test script' required: true exclude-dirs: - description: List of directories to exclude from the search + description: 'List of directories to exclude from the search' required: false default: '' outputs: test-infos: - description: All of the test info objects found by this action + description: 'All of the test info objects found by this action' value: ${{ steps.get-test-infos.outputs.test-infos }} runs: using: composite steps: + - id: get-node-version + uses: ./.github/actions/get_node_version + - uses: actions/setup-node@v4 with: - node-version: ${{ inputs.node-version }} + node-version: ${{ steps.get-node-version.outputs.node-version }} - name: Get test infos id: get-test-infos diff --git a/.github/actions/set_run_conditions/README.md b/.github/actions/set_run_conditions/README.md new file mode 100644 index 0000000000..e33311a3ea --- /dev/null +++ b/.github/actions/set_run_conditions/README.md @@ -0,0 +1,30 @@ +## Prerequisite + +This action assumes that the repository has already been checked out before +calling the action, typically using `actions/checkout@v4`. If you have not +checked out the code in a previous step, make sure to do so to avoid errors. + +This action does **not** perform a checkout action itself because it would be +redundant. This action is part of the repository's codebase, so if the code +hasn't already been checked out, the action itself wouldn't even be available to +call. Additionally, rerunning a checkout at this stage could potentially +overwrite any earlier `actions/checkout` step with different parameters, such as +checking out a specific branch. + +## Example Usage + +```yaml +steps: + - uses: actions/checkout@v4 + + - id: set-run-conditions + uses: ./.github/actions/set_run_conditions + + - name: Use run conditions + run: | + echo "Is main branch push: ${{ steps.set-run-conditions.outputs.is_main_branch_push }}" + echo "Is main branch merge from release: ${{ steps.set-run-conditions.outputs.is_main_branch_merge_from_release_push }}" + echo "Is release branch PR: ${{ steps.set-run-conditions.outputs.is_release_branch_pr }}" + echo "Is feature branch PR: ${{ steps.set-run-conditions.outputs.is_feature_branch_pr }}" + echo "Is feature branch draft PR: ${{ steps.set-run-conditions.outputs.is_feature_branch_draft_pr }}" +``` diff --git a/.github/actions/set_run_conditions/action.yml b/.github/actions/set_run_conditions/action.yml new file mode 100644 index 0000000000..2e63eab5fc --- /dev/null +++ b/.github/actions/set_run_conditions/action.yml @@ -0,0 +1,37 @@ +name: 'Set run conditions' +description: 'Sets the run conditions based on the current GitHub context' +outputs: + is_main_branch_push: + description: 'True if this is a push to the main branch (excluding merges from release branches)' + value: ${{ steps.set-conditions.outputs.is_main_branch_push }} + is_main_branch_push_from_release_merge: + description: 'True if this is a push to the main branch from a release branch merge' + value: ${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }} + is_release_branch_pr: + description: 'True if this is a pull request from a release branch' + value: ${{ steps.set-conditions.outputs.is_release_branch_pr }} + is_feature_branch_pr: + description: 'True if this is a pull request from a feature branch (non-draft)' + value: ${{ steps.set-conditions.outputs.is_feature_branch_pr }} + is_feature_branch_draft_pr: + description: 'True if this is a draft pull request from a feature branch' + value: ${{ steps.set-conditions.outputs.is_feature_branch_draft_pr }} +runs: + using: 'composite' + steps: + - id: set-conditions + run: | + # Define conditions using shell variables + AZLE_IS_MAIN_BRANCH_PUSH=${{ github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'demergent-labs/release--') }} + AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE=${{ github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, 'demergent-labs/release--') }} + AZLE_IS_RELEASE_BRANCH_PR=${{ startsWith(github.head_ref, 'release--') }} + AZLE_IS_FEATURE_BRANCH_PR=${{ !startsWith(github.head_ref, 'release--') && github.ref != 'refs/heads/main' && github.event.pull_request.draft == false }} + AZLE_IS_FEATURE_BRANCH_DRAFT_PR=${{ !startsWith(github.head_ref, 'release--') && github.ref != 'refs/heads/main' && github.event.pull_request.draft == true }} + + # Set individual outputs + echo "is_main_branch_push=$AZLE_IS_MAIN_BRANCH_PUSH" >> $GITHUB_OUTPUT + echo "is_main_branch_push_from_release_merge=$AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE" >> $GITHUB_OUTPUT + echo "is_release_branch_pr=$AZLE_IS_RELEASE_BRANCH_PR" >> $GITHUB_OUTPUT + echo "is_feature_branch_pr=$AZLE_IS_FEATURE_BRANCH_PR" >> $GITHUB_OUTPUT + echo "is_feature_branch_draft_pr=$AZLE_IS_FEATURE_BRANCH_DRAFT_PR" >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/workflows/get_and_run_tests.yml b/.github/workflows/get_and_run_tests.yml new file mode 100644 index 0000000000..fe5213baf3 --- /dev/null +++ b/.github/workflows/get_and_run_tests.yml @@ -0,0 +1,46 @@ +name: Prepare and Run Tests + +on: + workflow_call: + inputs: + directories: + required: true + type: string + exclude-dirs: + required: false + type: string + default: '' + +jobs: + prepare-test-environment: + name: 'Prepare Test Environment' + runs-on: ubuntu-latest + outputs: + test-infos: ${{ steps.get-test-infos.outputs.test-infos }} + include_npm: ${{ steps.set-include-npm.outputs.include_npm }} + steps: + - uses: actions/checkout@v4 + - id: get-test-infos + uses: ./.github/actions/get_test_infos + with: + directories: ${{ inputs.directories }} + exclude-dirs: ${{ inputs.exclude-dirs }} + - uses: ./.github/actions/set_run_conditions + id: set-conditions + - id: set-include-npm + run: | + if [[ "${{ steps.set-conditions.outputs.is_main_branch_push }}" == "true" || \ + "${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }}" == "true" || \ + "${{ steps.set-conditions.outputs.is_release_branch_pr }}" == "true" ]]; then + echo "include_npm=true" >> $GITHUB_OUTPUT + else + echo "include_npm=false" >> $GITHUB_OUTPUT + fi + + run-tests: + name: 'Run' + needs: prepare-test-environment + uses: ./.github/workflows/run_test.yml + with: + test_infos: ${{ needs.prepare-test-environment.outputs.test-infos }} + include_npm: ${{ needs.prepare-test-environment.outputs.include_npm == 'true' }} diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml new file mode 100644 index 0000000000..49f8e74415 --- /dev/null +++ b/.github/workflows/run_test.yml @@ -0,0 +1,142 @@ +name: Run Test + +on: + workflow_call: + inputs: + test_infos: + required: true + type: string + include_npm: + required: true + type: boolean + +jobs: + run-test: + name: '${{matrix.tests.name}} | ${{matrix.tests.displayPath}} | ${{matrix.azle_source}}' + runs-on: ${{ matrix.os }} + env: + ETHEREUM_URL: ${{ secrets.ETHEREUM_URL }} + AZLE_IDENTITY_STORAGE_MODE: 'plaintext' + AZLE_END_TO_END_TEST_LINK_AZLE: ${{ matrix.azle_source == 'repo' }} + AZLE_IS_MAIN_BRANCH_PUSH: '' + AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE: '' + AZLE_IS_RELEASE_BRANCH_PR: '' + AZLE_IS_FEATURE_BRANCH_PR: '' + AZLE_IS_FEATURE_BRANCH_DRAFT_PR: '' + + strategy: + fail-fast: false # We want to see which example tests succeed and which ones fail, we don't want one example test to cancel the rest + matrix: # spins up one job per combination of test and code source (repo or npm). + # os: [macos-latest, ubuntu-latest] + os: [ubuntu-latest] + azle_source: + - ${{ inputs.include_npm == 'true' && 'npm' || 'repo' }} + tests: ${{ fromJSON(inputs.test_infos) }} + steps: + - uses: actions/checkout@v4 + + - uses: ./.github/actions/set_run_conditions + id: set-conditions + + - name: Set condition environment variables + run: | + echo "AZLE_IS_MAIN_BRANCH_PUSH=${{ steps.set-conditions.outputs.is_main_branch_push }}" >> $GITHUB_ENV + echo "AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE=${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }}" >> $GITHUB_ENV + echo "AZLE_IS_RELEASE_BRANCH_PR=${{ steps.set-conditions.outputs.is_release_branch_pr }}" >> $GITHUB_ENV + echo "AZLE_IS_FEATURE_BRANCH_PR=${{ steps.set-conditions.outputs.is_feature_branch_pr }}" >> $GITHUB_ENV + echo "AZLE_IS_FEATURE_BRANCH_DRAFT_PR=${{ steps.set-conditions.outputs.is_feature_branch_draft_pr }}" >> $GITHUB_ENV + + - name: Print environment variables + run: | + echo "AZLE_IS_MAIN_BRANCH_PUSH: $AZLE_IS_MAIN_BRANCH_PUSH" + echo "AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE: $AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE" + echo "AZLE_IS_RELEASE_BRANCH_PR: $AZLE_IS_RELEASE_BRANCH_PR" + echo "AZLE_IS_FEATURE_BRANCH_PR: $AZLE_IS_FEATURE_BRANCH_PR" + echo "AZLE_IS_FEATURE_BRANCH_DRAFT_PR: $AZLE_IS_FEATURE_BRANCH_DRAFT_PR" + + - name: Report full path of test + # Just in case the path isn't obvious from the name, this will remove ambiguity + run: echo ${{matrix.tests.path}} + + - id: get-node-version + uses: ./.github/actions/get_node_version + + - uses: actions/setup-node@v4 + with: + node-version: ${{ steps.get-node-version.outputs.node-version }} + + - id: get-dfx-version + uses: ./.github/actions/get_dfx_version + + - name: Run pre-test Azle setup + run: | + + # Install dfx (Note: DFX must be installed before `npm install` because the azle installation process requires dfx) + src/build/stable/commands/install_global_dependencies/install_dfx.sh ${{ steps.get-dfx-version.outputs.dfx-version }} + echo "$HOME/.local/share/dfx/bin" >> $GITHUB_PATH + + # MacOS-specific DNS configuration + if [[ "${{ matrix.os }}" == "macos-latest" ]]; then + sudo networksetup -setdnsservers Ethernet 9.9.9.9 + fi + + npm install + + if [[ "${{ matrix.azle_source }}" == "repo" ]]; then + npm link + fi + + npm run lint + shell: bash -l {0} + + - name: Run pre-test setup for ${{ matrix.tests.name }} + run: | + npm install + + if [[ "${{ matrix.azle_source }}" == "repo" ]]; then + npm link azle + fi + + npx azle install-dfx-extension + working-directory: ${{ matrix.tests.path }} + shell: bash -l {0} + + - name: Start dfx with artificial delay 0 + if: ${{ steps.set-conditions.outputs.is_feature_branch_pr == 'true' || steps.set-conditions.outputs.is_feature_branch_draft_pr == 'true' }} + working-directory: ${{ matrix.tests.path }} + run: dfx start --clean --background --host 127.0.0.1:8000 --artificial-delay 0 + + - name: Start dfx + if: ${{ steps.set-conditions.outputs.is_release_branch_pr == 'true' || steps.set-conditions.outputs.is_main_branch_push == 'true' || steps.set-conditions.outputs.is_main_branch_push_from_release_merge == 'true' }} + working-directory: ${{ matrix.tests.path }} + run: dfx start --clean --background --host 127.0.0.1:8000 + + - name: Run test + run: | + RUNS=1 + + if [[ "${{ steps.set-conditions.outputs.is_main_branch_push }}" == "true" ]]; then + RUNS=100 + fi + + if [[ "${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }}" == "true" ]]; then + RUNS=100 + fi + + if [[ "${{ steps.set-conditions.outputs.is_release_branch_pr }}" == "true" ]]; then + RUNS=10 + fi + + if [[ "${{ steps.set-conditions.outputs.is_feature_branch_pr }}" == "true" ]]; then + RUNS=5 + fi + + if [[ "${{ steps.set-conditions.outputs.is_feature_branch_draft_pr }}" == "true" ]]; then + RUNS=1 + fi + + echo "Running tests $RUNS times" + + AZLE_PROPTEST_NUM_RUNS=$RUNS AZLE_PROPTEST_VERBOSE=true npm test + shell: bash -l {0} + working-directory: ${{ matrix.tests.path }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 711f5e6e59..61bb09a8be 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,18 +3,14 @@ # These tests are currently written in TypeScript and are intended to be run in a Node.js environment. # This GitHub Action takes care of deploying to npm and GitHub. -name: Tests +name: Test + on: push: branches: - main pull_request: # Runs on pull requests to any branch -env: - AZLE_IS_MAIN_BRANCH_PUSH: ${{ github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'demergent-labs/release--') }} - AZLE_IS_MAIN_BRANCH_MERGE_FROM_RELEASE_PUSH: ${{ github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, 'demergent-labs/release--') }} - AZLE_IS_RELEASE_BRANCH_PR: ${{ startsWith(github.head_ref, 'release--') }} - AZLE_IS_FEATURE_BRANCH_PR: ${{ !startsWith(github.head_ref, 'release--') && github.ref != 'refs/heads/main' && github.event.pull_request.draft == false }} - AZLE_IS_FEATURE_BRANCH_DRAFT_PR: ${{ !startsWith(github.head_ref, 'release--') && github.ref != 'refs/heads/main' && github.event.pull_request.draft == true }} + jobs: determine-should-run-tests: name: Determine if tests should run @@ -28,25 +24,22 @@ jobs: - id: determine-should-run-tests uses: ./.github/actions/should_release - get-test-infos: - name: Get test infos - needs: determine-should-run-tests - if: ${{ needs.determine-should-run-tests.outputs.should-run-tests == 'true' }} + set-exclude-dirs: + name: Set exclude directories runs-on: ubuntu-latest outputs: - test-infos: ${{ steps.get-test-infos.outputs.test-infos }} + exclude-dirs: ${{ steps.set-exclude-dirs.outputs.exclude-dirs }} steps: - uses: actions/checkout@v4 - - id: get-node-version - uses: ./.github/actions/get_node_version + - id: set-conditions + uses: ./.github/actions/set_run_conditions - - name: Set exclude dirs - id: set-exclude-dirs + - id: set-exclude-dirs run: | RELEASE_TESTS="${{ format(' - tests/end_to_end/candid_rpc/class_syntax/new/ - tests/end_to_end/http_server/new/ + tests/end_to_end/candid_rpc/class_syntax/new + tests/end_to_end/http_server/new ') }}" UNSTABLE_TESTS="${{ format(' @@ -76,25 +69,31 @@ jobs: tests/end_to_end/http_server/autoreload ') }}" + AZLE_IS_MAIN_BRANCH_PUSH="${{ steps.set-conditions.outputs.is_main_branch_push }}" + AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE="${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }}" + AZLE_IS_RELEASE_BRANCH_PR="${{ steps.set-conditions.outputs.is_release_branch_pr }}" + AZLE_IS_FEATURE_BRANCH_PR="${{ steps.set-conditions.outputs.is_feature_branch_pr }}" + AZLE_IS_FEATURE_BRANCH_DRAFT_PR="${{ steps.set-conditions.outputs.is_feature_branch_draft_pr }}" + EXCLUDE_DIRS="" - if [[ "${{ env.AZLE_IS_MAIN_BRANCH_PUSH }}" == "true" ]]; then + if [[ "$AZLE_IS_MAIN_BRANCH_PUSH" == "true" ]]; then EXCLUDE_DIRS="" fi - if [[ "${{ env.AZLE_IS_MAIN_BRANCH_MERGE_FROM_RELEASE_PUSH }}" == "true" ]]; then + if [[ "$AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE" == "true" ]]; then EXCLUDE_DIRS="" fi - if [[ "${{ env.AZLE_IS_RELEASE_BRANCH_PR }}" == "true" ]]; then + if [[ "$AZLE_IS_RELEASE_BRANCH_PR" == "true" ]]; then EXCLUDE_DIRS="" fi - if [[ "${{ env.AZLE_IS_FEATURE_BRANCH_PR }}" == "true" ]]; then + if [[ "$AZLE_IS_FEATURE_BRANCH_PR" == "true" ]]; then EXCLUDE_DIRS="$RELEASE_TESTS $UNSTABLE_TESTS" fi - if [[ "${{ env.AZLE_IS_FEATURE_BRANCH_DRAFT_PR }}" == "true" ]]; then + if [[ "$AZLE_IS_FEATURE_BRANCH_DRAFT_PR" == "true" ]]; then EXCLUDE_DIRS="$RELEASE_TESTS $UNSTABLE_TESTS $SLOW_TESTS" fi @@ -102,137 +101,49 @@ jobs: EXCLUDE_DIRS=$(echo $EXCLUDE_DIRS | xargs) echo "exclude-dirs=$EXCLUDE_DIRS" >> $GITHUB_OUTPUT - - name: Get test infos - id: get-test-infos - uses: ./.github/actions/get_test_infos - with: - node-version: ${{ steps.get-node-version.outputs.node-version }} - directories: | - ./examples - ./tests - exclude-dirs: ${{ steps.set-exclude-dirs.outputs.exclude-dirs }} - - run-test: - name: '${{matrix.tests.name}} | ${{matrix.tests.displayPath}} | ${{matrix.azle_source}}' + run-tests: + name: ${{ matrix.test_group.name }} needs: - determine-should-run-tests - - get-test-infos + - set-exclude-dirs if: ${{ needs.determine-should-run-tests.outputs.should-run-tests == 'true' }} - runs-on: ${{ matrix.os }} - env: - ETHEREUM_URL: ${{ secrets.ETHEREUM_URL }} - AZLE_IDENTITY_STORAGE_MODE: 'plaintext' - AZLE_END_TO_END_TEST_LINK_AZLE: ${{ matrix.azle_source == 'repo' }} strategy: - fail-fast: false # We want to see which example tests succeed and which ones fail, we don't want one example test to cancel the rest - matrix: # spins up one job per combination of test and code source (repo or npm). - # os: [macos-latest] - os: [ubuntu-latest] - include_npm: - # Only include npm in the matrix if you've pushed to main and the last commit was a merge of a release branch, or the base branch of the pull request is a release branch - - ${{ (github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, 'Merge pull request') && contains(github.event.head_commit.message, 'demergent-labs/release--')) || contains(github.head_ref, 'release--') }} - azle_source: - - npm - - repo - exclude: - - include_npm: false - azle_source: npm - - include_npm: true - azle_source: repo - # If should_run_tests is false, we still want the steps of this job to execute so that check-run-test-success will run. We do this by creating an array with one dummy element - tests: ${{ fromJSON(needs.get-test-infos.outputs.test-infos) }} - steps: - - name: Report full path of test - # Just in case the path isn't obvious from the name, this will remove ambiguity - run: echo ${{matrix.tests.path}} - - - uses: actions/checkout@v4 - - - id: get-node-version - uses: ./.github/actions/get_node_version - - - uses: actions/setup-node@v4 - with: - node-version: ${{ steps.get-node-version.outputs.node-version }} - - - id: get-dfx-version - uses: ./.github/actions/get_dfx_version - - - name: Run pre-test Azle setup - run: | - - # Install dfx (Note: DFX must be installed before `npm install` because the azle installation process requires dfx) - src/build/stable/commands/install_global_dependencies/install_dfx.sh ${{ steps.get-dfx-version.outputs.dfx-version }} - echo "$HOME/.local/share/dfx/bin" >> $GITHUB_PATH - - # MacOS-specific DNS configuration - if [[ "${{ matrix.os }}" == "macos-latest" ]]; then - sudo networksetup -setdnsservers Ethernet 9.9.9.9 - fi - - npm install - - if [[ "${{ matrix.azle_source }}" == "repo" ]]; then - npm link - fi - - npm run lint - shell: bash -l {0} - - - name: Run pre-test setup for ${{ matrix.tests.name }} - run: | - npm install - - if [[ "${{ matrix.azle_source }}" == "repo" ]]; then - npm link azle - fi - - npx azle install-dfx-extension - working-directory: ${{ matrix.tests.path }} - shell: bash -l {0} - - - name: Start dfx with artificial delay 0 - if: ${{ env.AZLE_IS_FEATURE_BRANCH_PR == 'true' || env.AZLE_IS_FEATURE_BRANCH_DRAFT_PR == 'true' }} - working-directory: ${{ matrix.tests.path }} - run: dfx start --clean --background --host 127.0.0.1:8000 --artificial-delay 0 - - - name: Start dfx - if: ${{ env.AZLE_IS_RELEASE_BRANCH_PR == 'true' || env.AZLE_IS_MAIN_BRANCH_PUSH == 'true' || env.AZLE_IS_MAIN_BRANCH_MERGE_FROM_RELEASE_PUSH == 'true' }} - working-directory: ${{ matrix.tests.path }} - run: dfx start --clean --background --host 127.0.0.1:8000 - - - name: Run test - run: | - RUNS=1 - - if [[ "${{ env.AZLE_IS_MAIN_BRANCH_PUSH }}" == "true" ]]; then - RUNS=100 - fi - - if [[ "${{ env.AZLE_IS_MAIN_BRANCH_MERGE_FROM_RELEASE_PUSH }}" == "true" ]]; then - RUNS=100 - fi - - if [[ "${{ env.AZLE_IS_RELEASE_BRANCH_PR }}" == "true" ]]; then - RUNS=10 - fi - - if [[ "${{ env.AZLE_IS_FEATURE_BRANCH_PR }}" == "true" ]]; then - RUNS=5 - fi - - if [[ "${{ env.AZLE_IS_FEATURE_BRANCH_DRAFT_PR }}" == "true" ]]; then - RUNS=1 - fi - - AZLE_PROPTEST_NUM_RUNS=$RUNS AZLE_PROPTEST_VERBOSE=true npm test - shell: bash -l {0} - working-directory: ${{ matrix.tests.path }} + fail-fast: false + matrix: + test_group: + - { name: 'Examples', directories: './examples' } + - { + name: 'E2E Class', + directories: './tests/end_to_end/candid_rpc/class_syntax' + } + - { + name: 'E2E Functional', + directories: './tests/end_to_end/candid_rpc/functional_syntax' + } + - { + name: 'E2E HTTP Server', + directories: './tests/end_to_end/http_server' + } + - { + name: 'Property Class', + directories: './tests/property/candid_rpc/class_api' + } + - { + name: 'Property Functional', + directories: './tests/property/candid_rpc/functional_api' + } + - { + name: 'Property IC API', + directories: './tests/property/ic_api' + } + uses: ./.github/workflows/get_and_run_tests.yml + with: + directories: ${{ matrix.test_group.directories }} + exclude-dirs: ${{ needs.set-exclude-dirs.outputs.exclude-dirs }} - # These final jobs are designed to ensure that all jobs spun up from the matrix in the run-test have succeeded check-test-success: name: Check Azle tests succeeded - needs: run-test + needs: run-tests runs-on: ubuntu-latest if: success() steps: @@ -240,7 +151,7 @@ jobs: check-test-failure: name: Check Azle tests didn't fail - needs: run-test + needs: run-tests runs-on: ubuntu-latest if: failure() steps: diff --git a/canister_templates/experimental.wasm b/canister_templates/experimental.wasm index 771a18de93..f9b832b541 100644 Binary files a/canister_templates/experimental.wasm and b/canister_templates/experimental.wasm differ diff --git a/canister_templates/stable.wasm b/canister_templates/stable.wasm index c69d1c3c7c..b0bed430bb 100644 Binary files a/canister_templates/stable.wasm and b/canister_templates/stable.wasm differ diff --git a/examples/basic_bitcoin/test/test.ts b/examples/basic_bitcoin/test/test.ts index 1855cb4862..3875251464 100644 --- a/examples/basic_bitcoin/test/test.ts +++ b/examples/basic_bitcoin/test/test.ts @@ -5,7 +5,8 @@ import { runTests } from 'azle/test'; import { BitcoinDaemon, startBitcoinDaemon } from './bitcoin_daemon'; import { getP2pkhAddress, getTests, P2PKH_ADDRESS_FORM } from './tests'; -const canisterId = getCanisterId('basic_bitcoin'); +const canisterName = 'basic_bitcoin'; +const canisterId = getCanisterId(canisterName); runTests(() => { let bitcoinDaemon: BitcoinDaemon; @@ -22,4 +23,4 @@ runTests(() => { 'runs basic bitcoin tests while bitcoin daemon is running', getTests(canisterId, getP2pkhAddress, P2PKH_ADDRESS_FORM) ); -}); +}, canisterName); diff --git a/examples/bitcoin_psbt/test/manual.test.ts b/examples/bitcoin_psbt/test/manual.test.ts index 1f3c190a2e..8f486848af 100644 --- a/examples/bitcoin_psbt/test/manual.test.ts +++ b/examples/bitcoin_psbt/test/manual.test.ts @@ -4,10 +4,14 @@ import { getTests } from 'basic_bitcoin/test/tests'; import { getP2wpkhAddress, P2WPKH_ADDRESS_FORM } from './tests'; -const canisterId = getCanisterId('bitcoin_psbt'); +const canisterName = 'bitcoin_psbt'; +const canisterId = getCanisterId(canisterName); // Allows running of the tests without starting and stopping a Bitcoin daemon // automatically. That is to say you will need to start and stop the Bitcoin // daemon manually. Great for running cli commands after or during the tests to // check the state of the test network -runTests(getTests(canisterId, getP2wpkhAddress, P2WPKH_ADDRESS_FORM)); +runTests( + getTests(canisterId, getP2wpkhAddress, P2WPKH_ADDRESS_FORM), + canisterName +); diff --git a/examples/bitcoin_psbt/test/test.ts b/examples/bitcoin_psbt/test/test.ts index d5255484ef..2116248b75 100644 --- a/examples/bitcoin_psbt/test/test.ts +++ b/examples/bitcoin_psbt/test/test.ts @@ -9,7 +9,8 @@ import { getTests } from 'basic_bitcoin/test/tests'; import { getP2wpkhAddress, P2WPKH_ADDRESS_FORM } from './tests'; -const canisterId = getCanisterId('bitcoin_psbt'); +const canisterName = 'bitcoin_psbt'; +const canisterId = getCanisterId(canisterName); let bitcoinDaemon: BitcoinDaemon; @@ -26,4 +27,4 @@ runTests(() => { 'runs bitcoin psbt tests while bitcoin daemon is running', getTests(canisterId, getP2wpkhAddress, P2WPKH_ADDRESS_FORM) ); -}); +}, canisterName); diff --git a/examples/ckbtc/test/test.ts b/examples/ckbtc/test/test.ts index a17c3ada9d..45990bcdaa 100644 --- a/examples/ckbtc/test/test.ts +++ b/examples/ckbtc/test/test.ts @@ -13,7 +13,8 @@ import { createActor } from '../wallet/frontend/dfx_generated/wallet_backend'; // @ts-ignore this path may not exist when these tests are imported into other test projects import { _SERVICE } from '../wallet/frontend/dfx_generated/wallet_backend/wallet_backend.did'; -let configs = [createConfig(0), createConfig(1)]; +const canisterName = 'wallet_backend'; +const configs = [createConfig(0), createConfig(1)]; type BitcoinDaemon = ChildProcessWithoutNullStreams; @@ -32,7 +33,7 @@ runTests(() => { 'run ckbtc tests while bitcoin daemon is running', getTests(configs) ); -}); +}, canisterName); async function startBitcoinDaemon(): Promise { if (existsSync(`.bitcoin/regtest`)) { @@ -62,7 +63,7 @@ async function startBitcoinDaemon(): Promise { } function createConfig(id: number): Config { - const walletBackendCanisterId = getCanisterId('wallet_backend'); + const walletBackendCanisterId = getCanisterId(canisterName); const identity: any = createIdentity(id); const canister = createActor(walletBackendCanisterId, { agentOptions: { diff --git a/examples/hello_world/test/test.ts b/examples/hello_world/test/test.ts index 838122141c..f921b56719 100644 --- a/examples/hello_world/test/test.ts +++ b/examples/hello_world/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/hello_world'; import { getTests } from './tests'; -const helloWorldCanister = createActor(getCanisterId('hello_world'), { +const canisterName = 'hello_world'; +const helloWorldCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(helloWorldCanister)); +runTests(getTests(helloWorldCanister), canisterName); diff --git a/examples/hello_world_http_server/benchmarks.json b/examples/hello_world_http_server/benchmarks.json new file mode 100644 index 0000000000..6b2ce870f8 --- /dev/null +++ b/examples/hello_world_http_server/benchmarks.json @@ -0,0 +1,44 @@ +{ + "backend": { + "previous": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8136265274" }, + "method_name": "init", + "timestamp": { "__bigint__": "1729788180680976591" } + }, + { + "instructions": { "__bigint__": "53798727" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729788197889022797" } + }, + { + "instructions": { "__bigint__": "47468265" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729788199085176603" } + }, + { + "instructions": { "__bigint__": "47474297" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729788199623240856" } + } + ] + }, + "current": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8135491182" }, + "method_name": "init", + "timestamp": { "__bigint__": "1729803431300165877" } + }, + { + "instructions": { "__bigint__": "53810066" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729803449326310198" } + } + ] + } + } +} diff --git a/examples/hello_world_http_server/benchmarks.md b/examples/hello_world_http_server/benchmarks.md new file mode 100644 index 0000000000..9fc3ee542e --- /dev/null +++ b/examples/hello_world_http_server/benchmarks.md @@ -0,0 +1,30 @@ +# Benchmarks for backend + +## Current benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | Change | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | ----------------------------------- | +| 0 | init | 8_135_491_182 | 6_454_786_472 | $0.0085827359 | $8_582.73 | -774_092 | +| 1 | http_request_update | 53_810_066 | 22_114_026 | $0.0000294044 | $29.40 | +11_339 | + +## Baseline benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | +| 0 | init | 8_136_265_274 | 6_455_096_109 | $0.0085831476 | $8_583.14 | +| 1 | http_request_update | 53_798_727 | 22_109_490 | $0.0000293983 | $29.39 | +| 2 | http_request_update | 47_468_265 | 19_577_306 | $0.0000260314 | $26.03 | +| 3 | http_request_update | 47_474_297 | 19_579_718 | $0.0000260346 | $26.03 | + +--- + +**Note on calculations:** + +- Cycles are calculated using the formula: base_fee + (per_instruction_fee \* number_of_instructions) + (additional_fee_per_billion \* floor(number_of_instructions / 1_000_000_000)) +- base_fee: 590_000 cycles +- per_instruction_fee: 0.4 cycles +- additional_fee_per_billion: 400_000_000 cycles per billion instructions +- USD value is derived from the total cycles, where 1 trillion cycles = 1 XDR, and 1 XDR = $1.329670 (as of October 24, 2024) + +For the most up-to-date XDR to USD conversion rate, please refer to the [IMF website](https://www.imf.org/external/np/fin/data/rms_sdrv.aspx). +For the most current fee information, please check the [official documentation](https://internetcomputer.org/docs/current/developer-docs/gas-cost#execution). diff --git a/examples/hello_world_http_server/test/test.ts b/examples/hello_world_http_server/test/test.ts index bd945d95c7..3862bbc932 100644 --- a/examples/hello_world_http_server/test/test.ts +++ b/examples/hello_world_http_server/test/test.ts @@ -3,6 +3,7 @@ import { runTests } from 'azle/test'; import { getTests } from './tests'; -const canisterId = getCanisterId('backend'); +const canisterName = 'backend'; +const canisterId = getCanisterId(canisterName); -runTests(getTests(canisterId)); +runTests(getTests(canisterId), canisterName); diff --git a/package-lock.json b/package-lock.json index 737087e001..de86c9c76d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "azle", - "version": "0.24.1", + "version": "0.25.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "azle", - "version": "0.24.1", + "version": "0.25.0", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 7632b3fe75..c7675cedef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "azle", - "version": "0.24.1", + "version": "0.25.0", "description": "TypeScript and JavaScript CDK for the Internet Computer", "scripts": { "typecheck": "tsc --noEmit", diff --git a/src/build/experimental/commands/compile/get_context.ts b/src/build/experimental/commands/compile/get_context.ts index d0e15b10e4..5f247bf502 100644 --- a/src/build/experimental/commands/compile/get_context.ts +++ b/src/build/experimental/commands/compile/get_context.ts @@ -30,7 +30,13 @@ export async function getContext( const wasmData: WasmData = { ...stableContext.wasmData, consumer, - managementDid + managementDid, + recordBenchmarks: + process.env.npm_lifecycle_event === 'pre_tests' || + process.env.npm_lifecycle_event === 'pretest' || + process.env.npm_lifecycle_event === 'test' + ? process.env.AZLE_RECORD_BENCHMARKS !== 'false' + : process.env.AZLE_RECORD_BENCHMARKS === 'true' }; return { diff --git a/src/build/experimental/commands/compile/javascript.ts b/src/build/experimental/commands/compile/javascript.ts index f31c4ceeb4..eae77ed9d6 100644 --- a/src/build/experimental/commands/compile/javascript.ts +++ b/src/build/experimental/commands/compile/javascript.ts @@ -60,6 +60,26 @@ export function getPrelude(main: string): string { // behave in all async situations setTimeout(() => { const canister = Canister.default !== undefined ? Canister.default() : Server(() => globalThis._azleNodeServer)(); + if (globalThis._azleRecordBenchmarks === true) { + const methodMeta = canister.methodMeta; + + globalThis._azleCanisterMethodNames = Object.entries(methodMeta).reduce((acc, [key, value]) => { + if (value === undefined) { + return acc; + } + + if (key === 'queries' || key === 'updates') { + const queriesOrUpdates = value.reduce((innerAcc, method) => { + const indexString = method.index.toString(); + return { ...innerAcc, [indexString]: method.name }; + }, {}); + return { ...acc, ...queriesOrUpdates }; + } else { + const indexString = value.index.toString(); + return { ...acc, [indexString]: value.name }; + } + }, {}); + } const candid = canister.getIdlType([]).accept(new DidVisitor(), { ...getDefaultVisitorData(), diff --git a/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/benchmarking.rs b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/benchmarking.rs new file mode 100644 index 0000000000..8ec47e2944 --- /dev/null +++ b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/benchmarking.rs @@ -0,0 +1,35 @@ +use std::cell::RefCell; + +use candid::CandidType; +use wasmedge_quickjs::{AsObject, Context}; + +#[derive(CandidType, Debug, Clone)] +pub struct BenchmarkEntry { + pub method_name: String, + pub instructions: u64, + pub timestamp: u64, +} + +thread_local! { + pub static BENCHMARKS_REF_CELL: RefCell> = RefCell::new(Vec::new()); +} + +pub fn record_benchmark(context: &mut Context, function_name: &str, instructions: u64) { + let timestamp = ic_cdk::api::time(); + + let global = context.get_global(); + let method_names = global.get("_azleCanisterMethodNames"); + let method_name = method_names + .get(function_name) + .and_then(|v| Some(v.to_string()?.to_string())) + .unwrap_or_else(|| function_name.to_string()); + + BENCHMARKS_REF_CELL.with(|benchmarks_ref_cell| { + let mut benchmarks = benchmarks_ref_cell.borrow_mut(); + benchmarks.push(BenchmarkEntry { + method_name, + instructions, + timestamp, + }); + }); +} diff --git a/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/execute_method_js.rs b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/execute_method_js.rs index 6ce322c9a7..2dcf6cc81a 100644 --- a/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/execute_method_js.rs +++ b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/execute_method_js.rs @@ -1,12 +1,11 @@ +use crate::{benchmarking::record_benchmark, run_event_loop, RUNTIME, WASM_DATA_REF_CELL}; use wasmedge_quickjs::AsObject; -use crate::{run_event_loop, RUNTIME}; - #[no_mangle] #[allow(unused)] pub extern "C" fn execute_method_js(function_index: i32, pass_arg_data: i32) { - let function_name = &function_index.to_string(); - let pass_arg_data = if pass_arg_data == 1 { true } else { false }; + let function_name = function_index.to_string(); + let pass_arg_data = pass_arg_data == 1; RUNTIME.with(|runtime| { let mut runtime = runtime.borrow_mut(); @@ -14,10 +13,9 @@ pub extern "C" fn execute_method_js(function_index: i32, pass_arg_data: i32) { runtime.run_with_context(|context| { let global = context.get_global(); - let callbacks = global.get("_azleCallbacks"); - let method_callback = callbacks.get(function_name).unwrap(); + let method_callback = callbacks.get(&function_name).unwrap(); let candid_args = if pass_arg_data { ic_cdk::api::call::arg_data_raw() @@ -29,13 +27,8 @@ pub extern "C" fn execute_method_js(function_index: i32, pass_arg_data: i32) { context.new_array_buffer(&candid_args).into(); let method_callback_function = method_callback.to_function().unwrap(); - let result = method_callback_function.call(&[candid_args_js_value]); - // TODO error handling is mostly done in JS right now - // TODO we would really like wasmedge-quickjs to add - // TODO good error info to JsException and move error handling - // TODO out of our own code match &result { wasmedge_quickjs::JsValue::Exception(js_exception) => { js_exception.dump_error(); @@ -43,6 +36,17 @@ pub extern "C" fn execute_method_js(function_index: i32, pass_arg_data: i32) { } _ => run_event_loop(context), }; + + if WASM_DATA_REF_CELL.with(|wasm_data_ref_cell| { + wasm_data_ref_cell + .borrow() + .as_ref() + .unwrap() + .record_benchmarks + }) { + let instructions = ic_cdk::api::performance_counter(1); + record_benchmark(context, &function_name, instructions); + } }); }); } diff --git a/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/init_and_post_upgrade.rs b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/init_and_post_upgrade.rs index 6fc967cd6b..aec3c5526a 100644 --- a/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/init_and_post_upgrade.rs +++ b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/init_and_post_upgrade.rs @@ -4,6 +4,7 @@ use wasmedge_quickjs::AsObject; use crate::{ execute_method_js, ic, run_event_loop, wasm_binary_manipulation::get_js_code, wasm_binary_manipulation::get_wasm_data, EXPERIMENTAL, MEMORY_MANAGER_REF_CELL, RUNTIME, + WASM_DATA_REF_CELL, }; #[cfg(feature = "experimental")] @@ -54,6 +55,10 @@ fn initialize(init: bool, function_index: i32, pass_arg_data: i32) { let wasm_data = get_wasm_data(); + WASM_DATA_REF_CELL.with(|wasm_data_ref_cell| { + *wasm_data_ref_cell.borrow_mut() = Some(wasm_data.clone()); + }); + let env_vars: Vec<(&str, &str)> = wasm_data .env_vars .iter() @@ -111,6 +116,16 @@ pub fn initialize_js(js: &str, init: bool, function_index: i32, pass_arg_data: i // TODO what do we do if there is an error in here? context.eval_global_str("globalThis.exports = {};".to_string()); context.eval_global_str(format!("globalThis._azleExperimental = {EXPERIMENTAL};")); + let record_benchmarks = WASM_DATA_REF_CELL.with(|wasm_data_ref_cell| { + wasm_data_ref_cell + .borrow() + .as_ref() + .unwrap() + .record_benchmarks + }); + context.eval_global_str(format!( + "globalThis._azleRecordBenchmarks = {record_benchmarks};" + )); context.eval_module_str(js.to_string(), "main"); run_event_loop(context); diff --git a/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/lib.rs b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/lib.rs index 0201e3202d..61b8204f18 100644 --- a/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/lib.rs +++ b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/lib.rs @@ -14,6 +14,7 @@ use ic_stable_structures::{ #[cfg(feature = "experimental")] mod autoreload; +mod benchmarking; mod candid; mod chunk; mod execute_method_js; @@ -33,6 +34,7 @@ type Memory = VirtualMemory; thread_local! { static RUNTIME: RefCell> = RefCell::new(None); pub static MEMORY_MANAGER_REF_CELL: RefCell> = RefCell::new(MemoryManager::init(DefaultMemoryImpl::default())); + static WASM_DATA_REF_CELL: RefCell> = RefCell::new(None); } const EXPERIMENTAL: bool = cfg!(feature = "experimental"); @@ -96,3 +98,9 @@ pub fn _azle_clear_file_and_info(path: String) { pub fn _azle_get_file_hash(path: String) -> Option { upload_file::get_file_hash(path) } + +#[ic_cdk_macros::query(guard = guard_against_non_controllers)] +pub fn _azle_get_benchmarks() -> Vec { + benchmarking::BENCHMARKS_REF_CELL + .with(|benchmarks_ref_cell| benchmarks_ref_cell.borrow().clone()) +} diff --git a/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/wasm_binary_manipulation.rs b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/wasm_binary_manipulation.rs index 9060c977f8..0ccea8881f 100644 --- a/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/wasm_binary_manipulation.rs +++ b/src/build/experimental/commands/compile/wasm_binary/rust/experimental_canister_template/src/wasm_binary_manipulation.rs @@ -3,10 +3,12 @@ use open_value_sharing::Consumer; use serde::{Deserialize, Serialize}; -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, Clone)] pub struct WasmData { #[serde(rename = "envVars")] pub env_vars: Vec<(String, String)>, + #[serde(rename = "recordBenchmarks")] + pub record_benchmarks: bool, #[cfg(feature = "experimental")] pub consumer: Consumer, #[cfg(feature = "experimental")] diff --git a/src/build/stable/commands/compile/get_context.ts b/src/build/stable/commands/compile/get_context.ts index ee6cb0bb44..76ee81f431 100644 --- a/src/build/stable/commands/compile/get_context.ts +++ b/src/build/stable/commands/compile/get_context.ts @@ -1,6 +1,6 @@ import { join } from 'path'; -import { CanisterConfig, Context, EnvVars } from '../../utils/types'; +import { CanisterConfig, Context, EnvVars, WasmData } from '../../utils/types'; export function getContext( canisterName: string, @@ -25,8 +25,14 @@ export function getContext( const wasmBinaryPath = join(canisterPath, `${canisterName}.wasm`); const envVars = getEnvVars(canisterConfig); - const wasmData = { - envVars + const wasmData: WasmData = { + envVars, + recordBenchmarks: + process.env.npm_lifecycle_event === 'pre_tests' || + process.env.npm_lifecycle_event === 'pretest' || + process.env.npm_lifecycle_event === 'test' + ? process.env.AZLE_RECORD_BENCHMARKS !== 'false' + : process.env.AZLE_RECORD_BENCHMARKS === 'true' }; return { diff --git a/src/build/stable/commands/compile/javascript.ts b/src/build/stable/commands/compile/javascript.ts index 3e7cc7f221..71e5a9d459 100644 --- a/src/build/stable/commands/compile/javascript.ts +++ b/src/build/stable/commands/compile/javascript.ts @@ -18,6 +18,8 @@ function getPrelude(main: string): string { import * as Canister from './${main}'; ${handleClassApiCanister()} + + ${handleBenchmarking()} `; } @@ -107,3 +109,28 @@ function experimentalMessage(importName: string): string { } `; } + +function handleBenchmarking(): string { + return /*TS*/ ` + if (globalThis._azleRecordBenchmarks === true) { + const methodMeta = globalThis._azleMethodMeta; + + globalThis._azleCanisterMethodNames = Object.entries(methodMeta).reduce((acc, [key, value]) => { + if (value === undefined) { + return acc; + } + + if (key === 'queries' || key === 'updates') { + const queriesOrUpdates = value.reduce((innerAcc, method) => { + const indexString = method.index.toString(); + return { ...innerAcc, [indexString]: method.name }; + }, {}); + return { ...acc, ...queriesOrUpdates }; + } else { + const indexString = value.index.toString(); + return { ...acc, [indexString]: value.name }; + } + }, {}); + } + `; +} diff --git a/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/benchmarking.rs b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/benchmarking.rs new file mode 100644 index 0000000000..e9e04839c1 --- /dev/null +++ b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/benchmarking.rs @@ -0,0 +1,38 @@ +use std::{cell::RefCell, error::Error}; + +use candid::CandidType; + +use crate::quickjs_with_ctx; + +#[derive(CandidType, Debug, Clone)] +pub struct BenchmarkEntry { + pub method_name: String, + pub instructions: u64, + pub timestamp: u64, +} + +thread_local! { + pub static BENCHMARKS_REF_CELL: RefCell> = RefCell::new(Vec::new()); +} + +pub fn record_benchmark(function_name: &str, instructions: u64) -> Result<(), Box> { + quickjs_with_ctx(|ctx| { + let timestamp = ic_cdk::api::time(); + + let method_names: rquickjs::Object = + ctx.clone().globals().get("_azleCanisterMethodNames")?; + + let method_name: String = method_names.get(function_name)?; + + BENCHMARKS_REF_CELL.with(|benchmarks_ref_cell| { + let mut benchmarks = benchmarks_ref_cell.borrow_mut(); + benchmarks.push(BenchmarkEntry { + method_name, + instructions, + timestamp, + }); + }); + + Ok(()) + }) +} diff --git a/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/execute_method_js.rs b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/execute_method_js.rs index 207986073f..55d90574bf 100644 --- a/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/execute_method_js.rs +++ b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/execute_method_js.rs @@ -1,4 +1,7 @@ -use crate::{error::handle_promise_error, quickjs_with_ctx}; +use crate::{ + benchmarking::record_benchmark, error::handle_promise_error, quickjs_with_ctx, + WASM_DATA_REF_CELL, +}; #[no_mangle] #[allow(unused)] @@ -35,4 +38,15 @@ pub extern "C" fn execute_method_js(function_index: i32, pass_arg_data: i32) { if let Err(e) = quickjs_result { ic_cdk::trap(&format!("Azle CanisterMethodError: {}", e)); } + + if WASM_DATA_REF_CELL.with(|wasm_data_ref_cell| { + wasm_data_ref_cell + .borrow() + .as_ref() + .unwrap() + .record_benchmarks + }) { + let instructions = ic_cdk::api::performance_counter(1); + record_benchmark(&function_name, instructions); + } } diff --git a/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/init_and_post_upgrade.rs b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/init_and_post_upgrade.rs index 39642a4133..13030f4d6c 100644 --- a/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/init_and_post_upgrade.rs +++ b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/init_and_post_upgrade.rs @@ -4,7 +4,7 @@ use crate::{ execute_method_js::execute_method_js, ic, quickjs_with_ctx, wasm_binary_manipulation::{get_js_code, get_wasm_data}, - CONTEXT_REF_CELL, MEMORY_MANAGER_REF_CELL, MODULE_NAME, + CONTEXT_REF_CELL, MEMORY_MANAGER_REF_CELL, MODULE_NAME, WASM_DATA_REF_CELL, }; #[inline(never)] @@ -33,30 +33,12 @@ fn initialize( function_index: i32, pass_arg_data: i32, ) -> Result<(), Box> { - // std::panic::set_hook(Box::new(|panic_info| { - // let msg = if let Some(s) = panic_info.payload().downcast_ref::<&str>() { - // *s - // } else if let Some(s) = panic_info.payload().downcast_ref::() { - // s.as_str() - // } else { - // "Unknown panic message" - // }; - - // let location = if let Some(location) = panic_info.location() { - // format!(" at {}:{}", location.file(), location.line()) - // } else { - // " (unknown location)".to_string() - // }; - - // let message = &format!("Panic occurred: {}{}", msg, location); - - // ic_cdk::println!("{}", message); - - // ic_cdk::trap(message); - // })); - let wasm_data = get_wasm_data()?; + WASM_DATA_REF_CELL.with(|wasm_data_ref_cell| { + *wasm_data_ref_cell.borrow_mut() = Some(wasm_data.clone()); + }); + let env_vars: Vec<(&str, &str)> = wasm_data .env_vars .iter() diff --git a/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/lib.rs b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/lib.rs index 490c1a9449..251ed4fd09 100644 --- a/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/lib.rs +++ b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/lib.rs @@ -5,6 +5,7 @@ use ic_stable_structures::{ DefaultMemoryImpl, }; +mod benchmarking; mod candid; mod chunk; mod error; @@ -16,6 +17,7 @@ mod quickjs_with_ctx; mod stable_b_tree_map; mod wasm_binary_manipulation; +use guards::guard_against_non_controllers; pub use quickjs_with_ctx::quickjs_with_ctx; // TODO dynamically get the canister name @@ -28,7 +30,14 @@ type Memory = VirtualMemory; thread_local! { static CONTEXT_REF_CELL: RefCell> = RefCell::new(None); pub static MEMORY_MANAGER_REF_CELL: RefCell> = RefCell::new(MemoryManager::init(DefaultMemoryImpl::default())); + static WASM_DATA_REF_CELL: RefCell> = RefCell::new(None); } #[ic_cdk_macros::update] pub fn _azle_chunk() {} + +#[ic_cdk_macros::query(guard = guard_against_non_controllers)] +pub fn _azle_get_benchmarks() -> Vec { + benchmarking::BENCHMARKS_REF_CELL + .with(|benchmarks_ref_cell| benchmarks_ref_cell.borrow().clone()) +} diff --git a/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/wasm_binary_manipulation.rs b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/wasm_binary_manipulation.rs index 19f88591ae..80eea7e326 100644 --- a/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/wasm_binary_manipulation.rs +++ b/src/build/stable/commands/compile/wasm_binary/rust/stable_canister_template/src/wasm_binary_manipulation.rs @@ -2,10 +2,12 @@ use std::error::Error; use serde::{Deserialize, Serialize}; -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, Clone)] pub struct WasmData { #[serde(rename = "envVars")] pub env_vars: Vec<(String, String)>, + #[serde(rename = "recordBenchmarks")] + pub record_benchmarks: bool, } #[inline(never)] diff --git a/src/build/stable/utils/types.ts b/src/build/stable/utils/types.ts index 6debef368b..74daf87a13 100644 --- a/src/build/stable/utils/types.ts +++ b/src/build/stable/utils/types.ts @@ -65,4 +65,5 @@ export type MethodMeta = { export type WasmData = { envVars: EnvVars; + recordBenchmarks: boolean; }; diff --git a/src/lib/experimental/index.ts b/src/lib/experimental/index.ts index 684535ae24..e3b4519563 100644 --- a/src/lib/experimental/index.ts +++ b/src/lib/experimental/index.ts @@ -2,12 +2,12 @@ import './experimental'; import './globals'; import '../../../type_tests'; +export * from '../stable/json'; export * from '../stable/stable_structures/stable_json'; export * from './candid'; export * from './canister_methods'; export { serialize } from './fetch'; export * from './ic'; -export * from './json'; export * from './server'; export * from './stable_structures/stable_b_tree_map'; export * from './system_types'; diff --git a/src/lib/stable/canister_methods/heartbeat.ts b/src/lib/stable/canister_methods/heartbeat.ts index ef65efb635..9bda47b800 100644 --- a/src/lib/stable/canister_methods/heartbeat.ts +++ b/src/lib/stable/canister_methods/heartbeat.ts @@ -5,13 +5,15 @@ export function heartbeat( context: ClassMethodDecoratorContext ): void { const index = globalThis._azleCanisterMethodsIndex++; + const name = context.name as string; + const indexString = index.toString(); globalThis._azleMethodMeta.heartbeat = { - name: context.name as string, + name, index }; - globalThis._azleCallbacks[index.toString()] = async (): Promise => { + globalThis._azleCallbacks[indexString] = async (): Promise => { await executeAndReplyWithCandidSerde( 'heartbeat', [], diff --git a/src/lib/stable/canister_methods/init.ts b/src/lib/stable/canister_methods/init.ts index 7781a6e077..2adf42ea02 100644 --- a/src/lib/stable/canister_methods/init.ts +++ b/src/lib/stable/canister_methods/init.ts @@ -10,9 +10,11 @@ export function init( context: ClassMethodDecoratorContext ): void => { const index = globalThis._azleCanisterMethodsIndex++; + const name = context.name as string; + const indexString = index.toString(); globalThis._azleMethodMeta.init = { - name: context.name as string, + name, index }; @@ -20,7 +22,7 @@ export function init( IDL.Func(paramIdlTypes, [], ['init']) ); - globalThis._azleCallbacks[index.toString()] = async ( + globalThis._azleCallbacks[indexString] = async ( ...args: any[] ): Promise => { await executeAndReplyWithCandidSerde( diff --git a/src/lib/stable/canister_methods/inspect_message.ts b/src/lib/stable/canister_methods/inspect_message.ts index b2aea5ec22..018cb492da 100644 --- a/src/lib/stable/canister_methods/inspect_message.ts +++ b/src/lib/stable/canister_methods/inspect_message.ts @@ -6,13 +6,15 @@ export function inspectMessage( context: ClassMethodDecoratorContext ): void { const index = globalThis._azleCanisterMethodsIndex++; + const name = context.name as string; + const indexString = index.toString(); globalThis._azleMethodMeta.inspect_message = { - name: context.name as string, + name, index }; - globalThis._azleCallbacks[index.toString()] = async (): Promise => { + globalThis._azleCallbacks[indexString] = async (): Promise => { await executeAndReplyWithCandidSerde( 'inspectMessage', [], diff --git a/src/lib/stable/canister_methods/post_upgrade.ts b/src/lib/stable/canister_methods/post_upgrade.ts index fa45a02b3d..451a8d2381 100644 --- a/src/lib/stable/canister_methods/post_upgrade.ts +++ b/src/lib/stable/canister_methods/post_upgrade.ts @@ -10,9 +10,11 @@ export function postUpgrade( context: ClassMethodDecoratorContext ): void => { const index = globalThis._azleCanisterMethodsIndex++; + const name = context.name as string; + const indexString = index.toString(); globalThis._azleMethodMeta.post_upgrade = { - name: context.name as string, + name, index }; @@ -20,7 +22,7 @@ export function postUpgrade( IDL.Func(paramIdlTypes, [], ['post_upgrade']) ); - globalThis._azleCallbacks[index.toString()] = async ( + globalThis._azleCallbacks[indexString] = async ( ...args: any[] ): Promise => { await executeAndReplyWithCandidSerde( diff --git a/src/lib/stable/canister_methods/pre_upgrade.ts b/src/lib/stable/canister_methods/pre_upgrade.ts index 61093b1ddb..c9edef473c 100644 --- a/src/lib/stable/canister_methods/pre_upgrade.ts +++ b/src/lib/stable/canister_methods/pre_upgrade.ts @@ -5,13 +5,15 @@ export function preUpgrade( context: ClassMethodDecoratorContext ): void { const index = globalThis._azleCanisterMethodsIndex++; + const name = context.name as string; + const indexString = index.toString(); globalThis._azleMethodMeta.pre_upgrade = { - name: context.name as string, + name, index }; - globalThis._azleCallbacks[index.toString()] = async (): Promise => { + globalThis._azleCallbacks[indexString] = async (): Promise => { await executeAndReplyWithCandidSerde( 'preUpgrade', [], diff --git a/src/lib/stable/canister_methods/query.ts b/src/lib/stable/canister_methods/query.ts index 9c8c23f766..546d33399c 100644 --- a/src/lib/stable/canister_methods/query.ts +++ b/src/lib/stable/canister_methods/query.ts @@ -17,6 +17,7 @@ export function query( const index = globalThis._azleCanisterMethodsIndex++; const name = context.name as string; const composite = options?.composite ?? false; + const indexString = index.toString(); globalThis._azleMethodMeta.queries?.push({ name, @@ -30,7 +31,7 @@ export function query( ['query'] ); - globalThis._azleCallbacks[index.toString()] = async ( + globalThis._azleCallbacks[indexString] = async ( ...args: any[] ): Promise => { await executeAndReplyWithCandidSerde( diff --git a/src/lib/stable/canister_methods/update.ts b/src/lib/stable/canister_methods/update.ts index 3f9458b8d6..e51c25a718 100644 --- a/src/lib/stable/canister_methods/update.ts +++ b/src/lib/stable/canister_methods/update.ts @@ -15,7 +15,7 @@ export function update( ): void => { const index = globalThis._azleCanisterMethodsIndex++; const name = context.name as string; - + const indexString = index.toString(); globalThis._azleMethodMeta.updates?.push({ name, index }); globalThis._azleCanisterMethodIdlTypes[name] = IDL.Func( @@ -23,7 +23,7 @@ export function update( returnIdlType === undefined ? [] : [returnIdlType] ); - globalThis._azleCallbacks[index.toString()] = async ( + globalThis._azleCallbacks[indexString] = async ( ...args: any[] ): Promise => { await executeAndReplyWithCandidSerde( diff --git a/src/lib/stable/globals.ts b/src/lib/stable/globals.ts index 9f0774fa83..93db17f60f 100644 --- a/src/lib/stable/globals.ts +++ b/src/lib/stable/globals.ts @@ -21,6 +21,8 @@ declare global { // eslint-disable-next-line no-var var _azleCanisterMethodsIndex: number; // eslint-disable-next-line no-var + var _azleCanisterMethodNames: { [key: string]: string }; + // eslint-disable-next-line no-var var _azleExperimental: boolean; // eslint-disable-next-line no-var var _azleIcExperimental: AzleIcExperimental; @@ -41,6 +43,8 @@ declare global { // eslint-disable-next-line no-var var _azlePostUpgradeCalled: boolean; // eslint-disable-next-line no-var + var _azleRecordBenchmarks: boolean; + // eslint-disable-next-line no-var var _azleRejectIds: { [key: string]: (err: any) => void }; // eslint-disable-next-line no-var var _azleResolveIds: { [key: string]: (buf: Uint8Array) => void }; @@ -68,6 +72,8 @@ if (globalThis._azleInsideCanister === true) { globalThis._azleCanisterMethodIdlTypes = {}; + globalThis._azleCanisterMethodNames = {}; + globalThis._azleInitAndPostUpgradeIdlTypes = []; globalThis._azleMethodMeta = { diff --git a/src/lib/stable/index.ts b/src/lib/stable/index.ts index 499c976740..6707ffbb49 100644 --- a/src/lib/stable/index.ts +++ b/src/lib/stable/index.ts @@ -8,6 +8,7 @@ export { query } from './canister_methods/query'; export { update } from './canister_methods/update'; export * from './did_file'; export * from './ic_apis'; +export * from './json'; export * from './stable_structures/stable_b_tree_map'; export * from './stable_structures/stable_json'; export * from '@dfinity/candid'; diff --git a/src/lib/experimental/json.ts b/src/lib/stable/json.ts similarity index 78% rename from src/lib/experimental/json.ts rename to src/lib/stable/json.ts index 36612c55d7..464d62b30a 100644 --- a/src/lib/experimental/json.ts +++ b/src/lib/stable/json.ts @@ -1,9 +1,4 @@ -import './experimental'; - -import { - jsonReplacer, - jsonReviver -} from '../stable/stable_structures/stable_json'; +import { jsonReplacer, jsonReviver } from './stable_structures/stable_json'; export function jsonStringify(value: any, replacer?: any, space?: any): string { return JSON.stringify(value, replacer ?? jsonReplacer, space); diff --git a/test/benchmarks/actor.ts b/test/benchmarks/actor.ts new file mode 100644 index 0000000000..746c1e787e --- /dev/null +++ b/test/benchmarks/actor.ts @@ -0,0 +1,43 @@ +import { Actor, ActorMethod, ActorSubclass } from '@dfinity/agent'; + +import { createAuthenticatedAgent } from '../../dfx'; + +export async function createActor( + canisterId: string, + identityName: string +): Promise> { + const agent = await createAuthenticatedAgent(identityName); + + return Actor.createActor<_SERVICE>( + ({ IDL }) => { + const BenchmarkEntry = IDL.Record({ + method_name: IDL.Text, + instructions: IDL.Nat64, + timestamp: IDL.Nat64 + }); + + return IDL.Service({ + _azle_get_benchmarks: IDL.Func( + [], + [IDL.Vec(BenchmarkEntry)], + ['query'] + ) + }); + }, + { + agent, + canisterId + } + ); +} + +export interface _SERVICE { + _azle_get_benchmarks: ActorMethod< + [], + { + method_name: string; + instructions: bigint; + timestamp: bigint; + }[] + >; +} diff --git a/test/benchmarks/index.ts b/test/benchmarks/index.ts new file mode 100644 index 0000000000..3dd44145f0 --- /dev/null +++ b/test/benchmarks/index.ts @@ -0,0 +1,265 @@ +import { readFile, writeFile } from 'fs/promises'; + +import { getCanisterId, whoami } from '../../dfx'; +// @ts-ignore We would have to add "resolveJsonModule": true to every test tsconfig.json file +import { version } from '../../package.json'; +import { jsonParse, jsonStringify } from '../../src/lib/stable'; +import { createActor } from './actor'; + +type BenchmarkEntry = { + method_name: string; + instructions: bigint; + timestamp: bigint; +}; + +type CanisterBenchmark = { + current: { + version: string; + benchmarks: BenchmarkEntry[]; + }; + previous: { + version: string; + benchmarks: BenchmarkEntry[]; + }; +}; + +type BenchmarksJson = { + [canisterName: string]: CanisterBenchmark; +}; + +export async function runBenchmarksForCanisters( + canisterNames: string[] +): Promise { + const existingBenchmarks = await getBenchmarksJson(); + const updatedBenchmarks = await updateBenchmarksForCanisters( + canisterNames, + existingBenchmarks + ); + await writeBenchmarkResults(canisterNames, updatedBenchmarks); +} + +async function updateBenchmarksForCanisters( + canisterNames: string[], + existingBenchmarks: BenchmarksJson +): Promise { + return canisterNames.reduce(async (accPromise, canisterName) => { + const acc = await accPromise; + const canisterId = getCanisterId(canisterName); + const actor = await createActor(canisterId, whoami()); + const currentBenchmarks = await actor._azle_get_benchmarks(); + + const previousCurrentVersion = acc[canisterName]?.current.version; + const shouldUpdatePrevious = previousCurrentVersion !== version; + + return { + ...acc, + [canisterName]: { + previous: shouldUpdatePrevious + ? acc[canisterName]?.current ?? { + version, + benchmarks: [] + } + : acc[canisterName]?.previous, + current: { + version, + benchmarks: currentBenchmarks + } + } + }; + }, Promise.resolve(existingBenchmarks)); +} + +async function writeBenchmarkResults( + canisterNames: string[], + updatedBenchmarks: BenchmarksJson +): Promise { + await writeBenchmarksMarkdown(canisterNames, updatedBenchmarks); + await writeBenchmarksJson(updatedBenchmarks); +} + +async function writeBenchmarksMarkdown( + canisterNames: string[], + updatedBenchmarks: BenchmarksJson +): Promise { + const markdownContent = + canisterNames + .map((canisterName) => { + const { current, previous } = updatedBenchmarks[canisterName]; + const benchmarkTables = { + current: createBenchmarksTable( + current.benchmarks, + previous.benchmarks + ), + previous: createBenchmarksTable(previous.benchmarks, []) + }; + + return ( + `# Benchmarks for ${canisterName}\n\n` + + `## Current benchmarks Azle version: ${current.version}\n` + + `${benchmarkTables.current}\n\n` + + `## Baseline benchmarks Azle version: ${previous.version}\n` + + `${benchmarkTables.previous}\n\n` + ); + }) + .join('') + createNote(); + + await writeFile(`benchmarks.md`, markdownContent); +} + +async function writeBenchmarksJson( + updatedBenchmarks: BenchmarksJson +): Promise { + await writeFile(`benchmarks.json`, `${jsonStringify(updatedBenchmarks)}\n`); +} + +async function getBenchmarksJson(): Promise { + const filePath = 'benchmarks.json'; + + try { + const fileContent = await readFile(filePath, 'utf-8'); + return jsonParse(fileContent); + } catch (error) { + if ((error as NodeJS.ErrnoException).code === 'ENOENT') { + return {}; + } + throw error; // Re-throw if it's a different error + } +} + +function createBenchmarksTable( + currentBenchmarks: BenchmarkEntry[], + previousBenchmarks: BenchmarkEntry[] +): string { + if (currentBenchmarks.length === 0) { + return 'No benchmarks reported'; + } + + const hasChanges = previousBenchmarks.length > 0; + const tableHeader = createTableHeader(hasChanges); + const tableRows = createTableRows( + currentBenchmarks, + previousBenchmarks, + hasChanges + ); + + return `${tableHeader}${tableRows}`; +} + +function createTableHeader(hasChanges: boolean): string { + const baseHeader = + '| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls |'; + const changeHeader = hasChanges ? ' Change |' : ''; + const separator = + '\n|-----------|-------------|------------|--------|-----|--------------|'; + const changeSeparator = hasChanges ? '-------|' : ''; + + return `${baseHeader}${changeHeader}${separator}${changeSeparator}\n`; +} + +function createTableRows( + currentBenchmarks: BenchmarkEntry[], + previousBenchmarks: BenchmarkEntry[], + hasChanges: boolean +): string { + return currentBenchmarks + .map((currentBenchmark, index) => + createTableRow( + currentBenchmark, + index, + previousBenchmarks[index], + hasChanges + ) + ) + .join('\n'); +} + +function createTableRow( + currentBenchmark: BenchmarkEntry, + index: number, + previousBenchmark: BenchmarkEntry | undefined, + hasChanges: boolean +): string { + const executionNumber = index; + const methodName = currentBenchmark.method_name; + const instructions = currentBenchmark.instructions; + const cycles = calculateCycles(instructions); + const usd = calculateUSD(cycles); + const usdPerMillion = usd * 1_000_000; + + const baseRow = `| ${executionNumber} | ${methodName} | ${formatWithUnderscores( + instructions + )} | ${formatWithUnderscores(cycles)} | $${usd.toFixed( + 10 + )} | $${formatWithUnderscores(usdPerMillion, 2)}`; + + if (!hasChanges) { + return `${baseRow} |`; + } + + const change = previousBenchmark + ? calculateChange(instructions, previousBenchmark.instructions) + : ''; + + return `${baseRow} | ${change} |`; +} + +function createNote(): string { + return ` + +--- + +**Note on calculations:** +- Cycles are calculated using the formula: base_fee + (per_instruction_fee \\* number_of_instructions) + (additional_fee_per_billion \\* floor(number_of_instructions / 1_000_000_000)) +- base_fee: 590_000 cycles +- per_instruction_fee: 0.4 cycles +- additional_fee_per_billion: 400_000_000 cycles per billion instructions +- USD value is derived from the total cycles, where 1 trillion cycles = 1 XDR, and 1 XDR = $1.329670 (as of October 24, 2024) + +For the most up-to-date XDR to USD conversion rate, please refer to the [IMF website](https://www.imf.org/external/np/fin/data/rms_sdrv.aspx). +For the most current fee information, please check the [official documentation](https://internetcomputer.org/docs/current/developer-docs/gas-cost#execution).`; +} + +function calculateCycles(instructions: bigint): bigint { + const baseFee = 590_000n; + const perInstructionFee = 4n; // Multiplied by 10 to avoid fractional bigint + const additionalFeePerBillion = 400_000_000n; + + const instructionFee = (perInstructionFee * instructions) / 10n; + const additionalFee = + (instructions / 1_000_000_000n) * additionalFeePerBillion; + + return baseFee + instructionFee + additionalFee; +} + +function calculateUSD(cycles: bigint): number { + const cyclesPerXDR = 1_000_000_000_000; // 1 trillion cycles = 1 XDR + const usdPerXDR = 1.32967; // As of October 24, 2024 + return (Number(cycles) / cyclesPerXDR) * usdPerXDR; +} + +function calculateChange(current: bigint, previous: bigint): string { + const diff = current - previous; + const color = diff < 0 ? 'green' : 'red'; + return `${ + diff > 0 ? '+' : '' + }${formatWithUnderscores(diff)}`; +} + +function formatWithUnderscores( + value: bigint | number, + decimalPlaces?: number +): string { + const [integerPart, decimalPart] = value.toString().split('.'); + const formattedIntegerPart = integerPart.replace( + /\B(?=(\d{3})+(?!\d))/g, + '_' + ); + if (decimalPart !== undefined && decimalPlaces !== undefined) { + const truncatedDecimalPart = decimalPart.slice(0, decimalPlaces); + return `${formattedIntegerPart}.${truncatedDecimalPart}`; + } + if (decimalPart !== undefined) { + return `${formattedIntegerPart}.${decimalPart}`; + } + return formattedIntegerPart; +} diff --git a/test/index.ts b/test/index.ts index acdee04c58..790a39779f 100644 --- a/test/index.ts +++ b/test/index.ts @@ -8,11 +8,16 @@ import { join } from 'path'; import { getCanisterId } from '../dfx'; import { execSyncPretty } from '../src/build/stable/utils/exec_sync_pretty'; export { expect } from '@jest/globals'; +import { runBenchmarksForCanisters } from './benchmarks'; export type Test = () => void; -export function runTests(tests: Test, cwd: string = process.cwd()): void { - const { shouldRunTests, shouldRunTypeChecks, shouldRunBenchmarks } = +export function runTests( + tests: Test, + canisterNames: string | string[] | undefined = undefined, + cwd: string = process.cwd() +): void { + const { shouldRunTests, shouldRunTypeChecks, shouldRecordBenchmarks } = processEnvVars(); if (shouldRunTests) { @@ -41,8 +46,15 @@ export function runTests(tests: Test, cwd: string = process.cwd()): void { }); } - if (shouldRunBenchmarks) { - describe(`benchmarks`, () => {}); + if (shouldRecordBenchmarks && canisterNames !== undefined) { + const canisterNamesArray = Array.isArray(canisterNames) + ? canisterNames + : [canisterNames]; + + describe(`benchmarks`, () => { + it('runs benchmarks for all canisters', () => + runBenchmarksForCanisters(canisterNamesArray)); + }); } } @@ -93,32 +105,6 @@ export function it( it.only = test.only; it.skip = test.skip; -function processEnvVars(): { - shouldRunTests: boolean; - shouldRunTypeChecks: boolean; - shouldRunBenchmarks: boolean; -} { - const isTestsEnvVarSet = - process.env.AZLE_INTEGRATION_TEST_RUN_TESTS === 'true'; - const isTypeChecksEnvVarSet = - process.env.AZLE_INTEGRATION_TEST_RUN_TYPE_CHECKS === 'true'; - const isBenchmarksEnvVarSet = - process.env.AZLE_INTEGRATION_TEST_RUN_BENCHMARKS === 'true'; - - const areNoVarsSet = - !isTestsEnvVarSet && !isTypeChecksEnvVarSet && !isBenchmarksEnvVarSet; - - const shouldRunTests = isTestsEnvVarSet || areNoVarsSet; - const shouldRunTypeChecks = isTypeChecksEnvVarSet || areNoVarsSet; - const shouldRunBenchmarks = isBenchmarksEnvVarSet || areNoVarsSet; - - return { - shouldRunTests, - shouldRunTypeChecks, - shouldRunBenchmarks - }; -} - export const defaultPropTestParams = { numRuns: Number(process.env.AZLE_PROPTEST_NUM_RUNS ?? 1), endOnFailure: process.env.AZLE_PROPTEST_SHRINK === 'true' ? false : true @@ -138,3 +124,25 @@ export async function getCanisterActor( return actor; } + +function processEnvVars(): { + shouldRunTests: boolean; + shouldRunTypeChecks: boolean; + shouldRecordBenchmarks: boolean; +} { + const runTests = process.env.AZLE_RUN_TESTS ?? 'true'; + const runTypeChecks = process.env.AZLE_RUN_TYPE_CHECKS ?? 'true'; + const recordBenchmarks = process.env.AZLE_RECORD_BENCHMARKS ?? 'true'; + + const hasOnly = [runTests, runTypeChecks].includes('only'); + + return { + shouldRunTests: shouldRun(runTests, hasOnly), + shouldRunTypeChecks: shouldRun(runTypeChecks, hasOnly), + shouldRecordBenchmarks: recordBenchmarks === 'true' && !hasOnly + }; +} + +function shouldRun(envVar: string, hasOnly: boolean): boolean { + return hasOnly ? envVar === 'only' : envVar !== 'false'; +} diff --git a/test/property/test/index.ts b/test/property/test/index.ts index add82832a1..6e65e22182 100644 --- a/test/property/test/index.ts +++ b/test/property/test/index.ts @@ -4,7 +4,7 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires const deepEqual = require('deep-is'); -import { jsonStringify } from '../../../src/lib/experimental/json'; +import { jsonStringify } from '../../../src/lib/stable/json'; export type Test<> = { name: string; diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/async_await/package-lock.json index c192cec29d..cb330c4b06 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/async_await/package-lock.json +++ b/tests/end_to_end/candid_rpc/class_syntax/async_await/package-lock.json @@ -16,78 +16,30 @@ "typescript": "^5.2.2" } }, - "../../../../..": { - "version": "0.24.1", - "hasInstallScript": true, - "license": "MIT", + "../../functional_syntax/async_await": { + "name": "async_await_end_to_end_test_functional_syntax", + "dev": true, "dependencies": { - "@dfinity/agent": "^1.1.0", - "@dfinity/identity-secp256k1": "^1.1.0", - "@types/uuid": "^9.0.4", - "binaryen": "^116.0.0", - "buffer": "^6.0.3", - "chokidar": "^3.6.0", - "class-transformer": "^0.5.1", - "class-validator": "^0.14.1", - "crypto-browserify": "^3.12.0", - "deep-is": "^0.1.4", - "esbuild": "^0.23.0", - "esbuild-plugin-tsc": "^0.4.0", - "ethers": "^6.13.2", - "fs-extra": "^11.2.0", - "glob": "^10.3.15", - "hash-of-directory": "^1.0.1", - "http-message-parser": "^0.0.34", - "intl": "^1.2.5", - "js-sha256": "0.9.0", - "jssha": "^3.3.1", - "net": "^1.0.2", - "pako": "^2.1.0", - "reflect-metadata": "^0.2.2", - "repl": "^0.1.3", - "text-encoding": "0.7.0", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "uuid": "^9.0.1", - "wasmedge_quickjs": "github:demergent-labs/wasmedge-quickjs#3b3b0ee91248ccf9cd954ffafbac7e024648af92" - }, - "bin": { - "azle": "src/build/index.js" + "azle": "0.24.1" }, "devDependencies": { - "@types/deep-equal": "^1.0.4", - "@types/fs-extra": "9.0.13", - "@types/pako": "^2.0.3", - "@types/text-encoding": "^0.0.39", - "@typescript-eslint/eslint-plugin": "^6.13.0", - "@typescript-eslint/parser": "^6.13.0", - "deep-equal": "^2.2.3", - "eslint": "^8.54.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-simple-import-sort": "^10.0.0", - "fast-check": "^3.13.1", - "husky": "7.0.4", + "@dfinity/agent": "^0.19.2", "jest": "^29.7.0", - "lint-staged": "12.3.7", - "prettier": "^3.0.3" - } - }, - "../../../../../node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" } }, - "../../../../../node_modules/@adraffy/ens-normalize": { + "node_modules/@adraffy/ens-normalize": { "version": "1.10.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" }, - "../../../../../node_modules/@ampproject/remapping": { + "node_modules/@ampproject/remapping": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -96,41 +48,44 @@ "node": ">=6.0.0" } }, - "../../../../../node_modules/@babel/code-frame": { - "version": "7.24.6", + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.6", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/compat-data": { - "version": "7.24.6", + "node_modules/@babel/compat-data": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/core": { - "version": "7.24.6", + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helpers": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/traverse": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -145,20 +100,13 @@ "url": "https://opencollective.com/babel" } }, - "../../../../../node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "../../../../../node_modules/@babel/generator": { - "version": "7.24.6", + "node_modules/@babel/generator": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.24.6", + "@babel/types": "^7.25.6", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -167,14 +115,15 @@ "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/helper-compilation-targets": { - "version": "7.24.6", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -182,79 +131,29 @@ "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "../../../../../node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "../../../../../node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "../../../../../node_modules/@babel/helper-environment-visitor": { - "version": "7.24.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "../../../../../node_modules/@babel/helper-function-name": { - "version": "7.24.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../../../../../node_modules/@babel/helper-hoist-variables": { - "version": "7.24.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../../../../../node_modules/@babel/helper-module-imports": { - "version": "7.24.6", + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/helper-module-transforms": { - "version": "7.24.6", + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -263,78 +162,75 @@ "@babel/core": "^7.0.0" } }, - "../../../../../node_modules/@babel/helper-plugin-utils": { - "version": "7.24.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "../../../../../node_modules/@babel/helper-simple-access": { - "version": "7.24.6", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.6" - }, "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.6", + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/helper-string-parser": { - "version": "7.24.6", + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/helper-validator-identifier": { - "version": "7.24.6", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/helper-validator-option": { - "version": "7.24.6", + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/helpers": { - "version": "7.24.6", + "node_modules/@babel/helpers": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" }, "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/highlight": { - "version": "7.24.6", + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -343,10 +239,11 @@ "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/highlight/node_modules/ansi-styles": { + "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -354,10 +251,11 @@ "node": ">=4" } }, - "../../../../../node_modules/@babel/highlight/node_modules/chalk": { + "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -367,39 +265,44 @@ "node": ">=4" } }, - "../../../../../node_modules/@babel/highlight/node_modules/color-convert": { + "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, - "../../../../../node_modules/@babel/highlight/node_modules/color-name": { + "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, - "../../../../../node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, - "../../../../../node_modules/@babel/highlight/node_modules/has-flag": { + "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, - "../../../../../node_modules/@babel/highlight/node_modules/supports-color": { + "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -407,10 +310,14 @@ "node": ">=4" } }, - "../../../../../node_modules/@babel/parser": { - "version": "7.24.6", + "node_modules/@babel/parser": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -418,10 +325,11 @@ "node": ">=6.0.0" } }, - "../../../../../node_modules/@babel/plugin-syntax-async-generators": { + "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -429,10 +337,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-bigint": { + "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -440,10 +349,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-class-properties": { + "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -451,10 +361,41 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-import-meta": { + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", + "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -462,10 +403,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-json-strings": { + "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -473,12 +415,13 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.6", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -487,10 +430,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -498,10 +442,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -509,10 +454,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-numeric-separator": { + "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -520,10 +466,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-object-rest-spread": { + "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -531,10 +478,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-optional-catch-binding": { + "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -542,10 +490,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-optional-chaining": { + "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -553,10 +502,11 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-top-level-await": { + "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -567,12 +517,13 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.6", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -581,118 +532,106 @@ "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/template": { - "version": "7.24.6", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", + "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "../../../../../node_modules/@babel/traverse": { - "version": "7.24.6", + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-function-name": "^7.24.6", - "@babel/helper-hoist-variables": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/types": "^7.24.6", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", + "node_modules/@babel/traverse": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "../../../../../node_modules/@babel/types": { - "version": "7.24.6", + "node_modules/@babel/types": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, - "../../../../../node_modules/@bcoe/v8-coverage": { + "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">= 12" - } + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true }, - "../../../../../node_modules/@cspotcode/source-map-support": { - "version": "0.7.0", + "node_modules/@dfinity/agent": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.19.3.tgz", + "integrity": "sha512-q410aNLoOA1ZkwdAMgSo6t++pjISn9TfSybRXhPRI5Ume7eG6+6qYr/rlvcXy7Nb2+Ar7LTsHNn34IULfjni7w==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" - }, - "engines": { - "node": ">=12" - } - }, - "../../../../../node_modules/@dfinity/agent": { - "version": "1.1.0", - "license": "Apache-2.0", "dependencies": { - "@noble/curves": "^1.2.0", "@noble/hashes": "^1.3.1", "base64-arraybuffer": "^0.2.0", "borc": "^2.1.1", - "buffer": "^6.0.3", "simple-cbor": "^0.4.1" }, "peerDependencies": { - "@dfinity/candid": "^1.1.0", - "@dfinity/principal": "^1.1.0" + "@dfinity/candid": "^0.19.3", + "@dfinity/principal": "^0.19.3" } }, - "../../../../../node_modules/@dfinity/candid": { - "version": "1.1.0", - "license": "Apache-2.0", + "node_modules/@dfinity/candid": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.19.3.tgz", + "integrity": "sha512-yXfbLSWTeRd4G0bLLxYoDqpXH3Jim0P+1PPZOoktXNC1X1hB+ea3yrZebX75t4GVoQK7123F7mxWHiPjuV2tQQ==", + "dev": true, "peer": true, "peerDependencies": { - "@dfinity/principal": "^1.1.0" + "@dfinity/principal": "^0.19.3" } }, - "../../../../../node_modules/@dfinity/identity-secp256k1": { - "version": "1.1.0", - "license": "Apache-2.0", + "node_modules/@dfinity/identity-secp256k1": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-1.4.0.tgz", + "integrity": "sha512-cNJYPp3KaqeAnlw0R70a+f1tKOjwTvPCAvImQ1Nq3KuSDs9/5al0qUBGUx5zalxSIihGSr3/T9//X5L8pQlNMw==", "dependencies": { - "@dfinity/agent": "^1.1.0", - "@noble/curves": "^1.3.0", + "@dfinity/agent": "^1.4.0", + "@noble/curves": "^1.4.0", "@noble/hashes": "^1.3.1", "asn1js": "^3.0.5", "bip39": "^3.1.0", @@ -700,7097 +639,432 @@ "hdkey": "^2.1.0" } }, - "../../../../../node_modules/@dfinity/principal": { - "version": "1.1.0", - "license": "Apache-2.0", + "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/agent": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.4.0.tgz", + "integrity": "sha512-/zgGajZpxtbu+kLXtFx2e9V2+HbMUjrtGWx9ZEwtVwhVxKgVi/2kGQpFRPEDFJ461V7wdTwCig4OkMxVU4shTw==", + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^1.4.0", + "@dfinity/principal": "^1.4.0" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/candid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.4.0.tgz", + "integrity": "sha512-PsTJVn63ZM4A/6Xs5coI0zMFevSwJ8hcyh38LdH/92n6wi9UOTis1yc4qL5MZvvRCUAD0c3rVjELL+49E9sPyA==", + "peer": true, + "peerDependencies": { + "@dfinity/principal": "^1.4.0" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/principal": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.4.0.tgz", + "integrity": "sha512-SuTBVlc71ub89ji0WN5/T100zUG2uIMn5x4+We4vS4nJ0R3/Xt89XJsHepjd5SQTSQPOvP7eQ+S8cQKWRz/RkA==", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.3.1" + } + }, + "node_modules/@dfinity/principal": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.19.3.tgz", + "integrity": "sha512-+nixVvdGt7ECxRvLXDXsvU9q9sSPssBtDQ4bXa149SK6gcYcmZ6lfWIi3DJNqj3tGROxILVBsguel9tECappsA==", + "dev": true, "peer": true, "dependencies": { "@noble/hashes": "^1.3.1" } }, - "../../../../../node_modules/@esbuild/linux-x64": { - "version": "0.23.0", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", "cpu": [ - "x64" + "ppc64" ], - "license": "MIT", "optional": true, "os": [ - "linux" + "aix" ], "engines": { "node": ">=18" } }, - "../../../../../node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=18" } }, - "../../../../../node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "dev": true, - "license": "MIT", + "node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=18" } }, - "../../../../../node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "../../../../../node_modules/@eslint/js": { - "version": "8.54.0", - "dev": true, - "license": "MIT", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" } }, - "../../../../../node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10.10.0" + "node": ">=18" } }, - "../../../../../node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=18" } }, - "../../../../../node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "dev": true, - "license": "BSD-3-Clause" - }, - "../../../../../node_modules/@isaacs/cliui": { - "version": "8.0.2", - "license": "ISC", - "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" - }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "../../../../../node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "license": "MIT", + "node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=18" } }, - "../../../../../node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "license": "MIT", + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "../../../../../node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=18" } }, - "../../../../../node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=18" } }, - "../../../../../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "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" - }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" + "node": ">=18" } }, - "../../../../../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "node": ">=18" } }, - "../../../../../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "../../../../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/@jest/console": { - "version": "29.7.0", - "dev": true, - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/@jest/core": { - "version": "29.7.0", - "dev": true, - "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 - } - } - }, - "../../../../../node_modules/@jest/environment": { - "version": "29.7.0", - "dev": true, - "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" - } - }, - "../../../../../node_modules/@jest/expect": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/@jest/expect-utils": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/@jest/fake-timers": { - "version": "29.7.0", - "dev": true, - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/@jest/reporters": { - "version": "29.7.0", - "dev": true, - "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" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../../../../../node_modules/@jest/reporters/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/@jest/schemas": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/@jest/source-map": { - "version": "29.6.3", - "dev": true, - "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" - } - }, - "../../../../../node_modules/@jest/test-result": { - "version": "29.7.0", - "dev": true, - "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" - } - }, - "../../../../../node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "dev": true, - "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" - } - }, - "../../../../../node_modules/@jest/transform": { - "version": "29.7.0", - "dev": true, - "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" - } - }, - "../../../../../node_modules/@jest/types": { - "version": "29.6.3", - "dev": true, - "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" - } - }, - "../../../../../node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "../../../../../node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "../../../../../node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "../../../../../node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "../../../../../node_modules/@noble/curves": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.3.3" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../../../../node_modules/@noble/hashes": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../../../../node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "../../../../../node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "../../../../../node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "../../../../../node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "../../../../../node_modules/@sinclair/typebox": { - "version": "0.27.8", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../../../../../node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "../../../../../node_modules/@swc/core": { - "version": "1.3.92", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "dependencies": { - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.92", - "@swc/core-darwin-x64": "1.3.92", - "@swc/core-linux-arm-gnueabihf": "1.3.92", - "@swc/core-linux-arm64-gnu": "1.3.92", - "@swc/core-linux-arm64-musl": "1.3.92", - "@swc/core-linux-x64-gnu": "1.3.92", - "@swc/core-linux-x64-musl": "1.3.92", - "@swc/core-win32-arm64-msvc": "1.3.92", - "@swc/core-win32-ia32-msvc": "1.3.92", - "@swc/core-win32-x64-msvc": "1.3.92" - }, - "peerDependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "../../../../../node_modules/@swc/core-linux-x64-gnu": { - "version": "1.3.92", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/@swc/core-linux-x64-musl": { - "version": "1.3.92", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/@swc/counter": { - "version": "0.1.2", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "peer": true - }, - "../../../../../node_modules/@swc/types": { - "version": "0.1.5", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "peer": true - }, - "../../../../../node_modules/@tsconfig/node10": { - "version": "1.0.9", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "../../../../../node_modules/@tsconfig/node12": { - "version": "1.0.11", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "../../../../../node_modules/@tsconfig/node14": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "../../../../../node_modules/@tsconfig/node16": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "../../../../../node_modules/@types/babel__core": { - "version": "7.20.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "../../../../../node_modules/@types/babel__generator": { - "version": "7.6.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "../../../../../node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "../../../../../node_modules/@types/babel__traverse": { - "version": "7.20.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "../../../../../node_modules/@types/deep-equal": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@types/fs-extra": { - "version": "9.0.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../../../../../node_modules/@types/graceful-fs": { - "version": "4.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../../../../../node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "../../../../../node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "../../../../../node_modules/@types/json-schema": { - "version": "7.0.15", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@types/node": { - "version": "20.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.25.1" - } - }, - "../../../../../node_modules/@types/pako": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@types/semver": { - "version": "7.5.8", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@types/stack-utils": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@types/text-encoding": { - "version": "0.0.39", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@types/uuid": { - "version": "9.0.5", - "license": "MIT" - }, - "../../../../../node_modules/@types/validator": { - "version": "13.11.9", - "license": "MIT" - }, - "../../../../../node_modules/@types/yargs": { - "version": "17.0.32", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "../../../../../node_modules/@types/yargs-parser": { - "version": "21.0.3", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.13.0", - "@typescript-eslint/type-utils": "6.13.0", - "@typescript-eslint/utils": "6.13.0", - "@typescript-eslint/visitor-keys": "6.13.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "../../../../../node_modules/@typescript-eslint/parser": { - "version": "6.13.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "6.13.0", - "@typescript-eslint/types": "6.13.0", - "@typescript-eslint/typescript-estree": "6.13.0", - "@typescript-eslint/visitor-keys": "6.13.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "../../../../../node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.13.0", - "@typescript-eslint/visitor-keys": "6.13.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "../../../../../node_modules/@typescript-eslint/type-utils": { - "version": "6.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "6.13.0", - "@typescript-eslint/utils": "6.13.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "../../../../../node_modules/@typescript-eslint/types": { - "version": "6.13.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "../../../../../node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.13.0", - "@typescript-eslint/visitor-keys": "6.13.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "../../../../../node_modules/@typescript-eslint/utils": { - "version": "6.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.13.0", - "@typescript-eslint/types": "6.13.0", - "@typescript-eslint/typescript-estree": "6.13.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "../../../../../node_modules/@typescript-eslint/visitor-keys": { - "version": "6.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.13.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "../../../../../node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "dev": true, - "license": "ISC" - }, - "../../../../../node_modules/acorn": { - "version": "8.10.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "../../../../../node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "../../../../../node_modules/acorn-walk": { - "version": "8.2.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "../../../../../node_modules/aes-js": { - "version": "4.0.0-beta.5", - "license": "MIT" - }, - "../../../../../node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "../../../../../node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../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/anymatch": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "../../../../../node_modules/arg": { - "version": "4.1.3", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "../../../../../node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "../../../../../node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/asn1.js": { - "version": "5.4.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "../../../../../node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "../../../../../node_modules/asn1js": { - "version": "3.0.5", - "license": "BSD-3-Clause", - "dependencies": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "../../../../../node_modules/astral-regex": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/available-typed-arrays": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/babel-jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "../../../../../node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "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": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "../../../../../node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "../../../../../node_modules/babel-preset-jest": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "../../../../../node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "../../../../../node_modules/base-x": { - "version": "4.0.0", - "license": "MIT" - }, - "../../../../../node_modules/base64-arraybuffer": { - "version": "0.2.0", - "engines": { - "node": ">= 0.6.0" - } - }, - "../../../../../node_modules/base64-js": { - "version": "1.5.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" - }, - "../../../../../node_modules/bignumber.js": { - "version": "9.1.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "../../../../../node_modules/binary-extensions": { - "version": "2.2.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/binaryen": { - "version": "116.0.0", - "license": "Apache-2.0", - "bin": { - "wasm-opt": "bin/wasm-opt", - "wasm2js": "bin/wasm2js" - } - }, - "../../../../../node_modules/bip39": { - "version": "3.1.0", - "license": "ISC", - "dependencies": { - "@noble/hashes": "^1.2.0" - } - }, - "../../../../../node_modules/bn.js": { - "version": "5.2.1", - "license": "MIT" - }, - "../../../../../node_modules/borc": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=4" - } - }, - "../../../../../node_modules/borc/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/borc/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "../../../../../node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "../../../../../node_modules/braces": { - "version": "3.0.3", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/brorand": { - "version": "1.1.0", - "license": "MIT" - }, - "../../../../../node_modules/browserify-aes": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "../../../../../node_modules/browserify-cipher": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "../../../../../node_modules/browserify-des": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "../../../../../node_modules/browserify-rsa": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "../../../../../node_modules/browserify-sign": { - "version": "4.2.2", - "license": "ISC", - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 4" - } - }, - "../../../../../node_modules/browserslist": { - "version": "4.23.0", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "../../../../../node_modules/bs58": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "base-x": "^4.0.0" - } - }, - "../../../../../node_modules/bs58check": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "@noble/hashes": "^1.2.0", - "bs58": "^5.0.0" - } - }, - "../../../../../node_modules/bser": { - "version": "2.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "../../../../../node_modules/buffer": { - "version": "6.0.3", - "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.2.1" - } - }, - "../../../../../node_modules/buffer-from": { - "version": "1.1.2", - "license": "MIT" - }, - "../../../../../node_modules/buffer-xor": { - "version": "1.0.3", - "license": "MIT" - }, - "../../../../../node_modules/call-bind": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/caniuse-lite": { - "version": "1.0.30001625", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "../../../../../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/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/chokidar": { - "version": "3.6.0", - "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" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "../../../../../node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../../../../../node_modules/ci-info": { - "version": "3.9.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/cipher-base": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "../../../../../node_modules/cjs-module-lexer": { - "version": "1.3.1", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/class-transformer": { - "version": "0.5.1", - "license": "MIT" - }, - "../../../../../node_modules/class-validator": { - "version": "0.14.1", - "license": "MIT", - "dependencies": { - "@types/validator": "^13.11.8", - "libphonenumber-js": "^1.10.53", - "validator": "^13.9.0" - } - }, - "../../../../../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/cli-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/cli-truncate": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/cliui": { - "version": "8.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "../../../../../node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "../../../../../node_modules/collect-v8-coverage": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "../../../../../node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "../../../../../node_modules/colorette": { - "version": "2.0.20", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/commander": { - "version": "8.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "../../../../../node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/core-util-is": { - "version": "1.0.3", - "license": "MIT" - }, - "../../../../../node_modules/create-ecdh": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "../../../../../node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "../../../../../node_modules/create-hash": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "../../../../../node_modules/create-hmac": { - "version": "1.1.7", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "../../../../../node_modules/create-jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/create-require": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "../../../../../node_modules/cross-spawn": { - "version": "7.0.3", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "../../../../../node_modules/crypto-browserify": { - "version": "3.12.0", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "../../../../../node_modules/debug": { - "version": "4.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../../../../../node_modules/dedent": { - "version": "1.5.3", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "../../../../../node_modules/deep-equal": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/deep-is": { - "version": "0.1.4", - "license": "MIT" - }, - "../../../../../node_modules/deepmerge": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../../../../../node_modules/define-data-property": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "../../../../../node_modules/define-properties": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/delimit-stream": { - "version": "0.1.0", - "license": "BSD-2-Clause" - }, - "../../../../../node_modules/des.js": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "../../../../../node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/diff": { - "version": "4.0.2", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "../../../../../node_modules/diff-sequences": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/diffie-hellman": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "../../../../../node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "../../../../../node_modules/dir-glob": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/doctrine": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "../../../../../node_modules/eastasianwidth": { - "version": "0.2.0", - "license": "MIT" - }, - "../../../../../node_modules/electron-to-chromium": { - "version": "1.4.787", - "dev": true, - "license": "ISC" - }, - "../../../../../node_modules/elliptic": { - "version": "6.5.7", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "../../../../../node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "../../../../../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/emoji-regex": { - "version": "9.2.2", - "license": "MIT" - }, - "../../../../../node_modules/error-ex": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "../../../../../node_modules/es-get-iterator": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/esbuild": { - "version": "0.23.0", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" - } - }, - "../../../../../node_modules/esbuild-plugin-tsc": { - "version": "0.4.0", - "license": "MIT", - "dependencies": { - "strip-comments": "^2.0.1" - }, - "peerDependencies": { - "typescript": "^4.0.0 || ^5.0.0" - } - }, - "../../../../../node_modules/escalade": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/eslint": { - "version": "8.54.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "../../../../../node_modules/eslint-config-prettier": { - "version": "8.5.0", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "../../../../../node_modules/eslint-plugin-simple-import-sort": { - "version": "10.0.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, - "../../../../../node_modules/eslint-scope": { - "version": "7.2.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "../../../../../node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "../../../../../node_modules/espree": { - "version": "9.6.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "../../../../../node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "../../../../../node_modules/esquery": { - "version": "1.5.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "../../../../../node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "../../../../../node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "../../../../../node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "../../../../../node_modules/ethers": { - "version": "6.13.2", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.17.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "../../../../../node_modules/ethers/node_modules/@noble/curves": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../../../../node_modules/ethers/node_modules/@noble/hashes": { - "version": "1.3.2", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../../../../node_modules/ethers/node_modules/@types/node": { - "version": "18.15.13", - "license": "MIT" - }, - "../../../../../node_modules/ethers/node_modules/tslib": { - "version": "2.4.0", - "license": "0BSD" - }, - "../../../../../node_modules/evp_bytestokey": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "../../../../../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/exit": { - "version": "0.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "../../../../../node_modules/expect": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/fast-check": { - "version": "3.13.1", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT", - "dependencies": { - "pure-rand": "^6.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../../../../../node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/fast-glob": { - "version": "3.3.2", - "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" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "../../../../../node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../../../../../node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/fastq": { - "version": "1.15.0", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "../../../../../node_modules/fb-watchman": { - "version": "2.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "../../../../../node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "../../../../../node_modules/fill-range": { - "version": "7.1.1", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "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/flat-cache": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "../../../../../node_modules/flatted": { - "version": "3.2.9", - "dev": true, - "license": "ISC" - }, - "../../../../../node_modules/for-each": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "../../../../../node_modules/foreground-child": { - "version": "3.1.1", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/fs-extra": { - "version": "11.2.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "../../../../../node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "../../../../../node_modules/function-bind": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/functions-have-names": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "../../../../../node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "../../../../../node_modules/get-intrinsic": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "../../../../../node_modules/get-prop": { - "version": "0.0.10", - "license": "MIT" - }, - "../../../../../node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/get-tsconfig": { - "version": "4.7.5", - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "../../../../../node_modules/glob": { - "version": "10.3.15", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "../../../../../node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "../../../../../node_modules/glob/node_modules/minimatch": { - "version": "9.0.4", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/globals": { - "version": "13.23.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/gopd": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/graceful-fs": { - "version": "4.2.11", - "license": "ISC" - }, - "../../../../../node_modules/graphemer": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/has-property-descriptors": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/has-proto": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/has-symbols": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/has-tostringtag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/hash-base": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "../../../../../node_modules/hash-of-directory": { - "version": "1.0.1", - "license": "MIT" - }, - "../../../../../node_modules/hash.js": { - "version": "1.1.7", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "../../../../../node_modules/hasown": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "../../../../../node_modules/hdkey": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "bs58check": "^2.1.2", - "ripemd160": "^2.0.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - } - }, - "../../../../../node_modules/hdkey/node_modules/base-x": { - "version": "3.0.9", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "../../../../../node_modules/hdkey/node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "../../../../../node_modules/hdkey/node_modules/bs58check": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "../../../../../node_modules/hmac-drbg": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "../../../../../node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/http-message-parser": { - "version": "0.0.34", - "license": "MIT", - "dependencies": { - "buffer": "^4.9.1", - "concat-stream": "^1.5.1", - "get-prop": "0.0.10", - "minimist": "^1.2.0", - "stream-buffers": "^3.0.0" - }, - "bin": { - "http-message-parser": "bin/http-message-parser.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../../../../node_modules/http-message-parser/node_modules/buffer": { - "version": "4.9.2", - "license": "MIT", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "../../../../../node_modules/http-message-parser/node_modules/concat-stream": { - "version": "1.6.2", - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "../../../../../node_modules/http-message-parser/node_modules/isarray": { - "version": "1.0.0", - "license": "MIT" - }, - "../../../../../node_modules/http-message-parser/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/http-message-parser/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "../../../../../node_modules/http-message-parser/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "../../../../../node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "../../../../../node_modules/husky": { - "version": "7.0.4", - "dev": true, - "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "../../../../../node_modules/ieee754": { - "version": "1.2.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": "BSD-3-Clause" - }, - "../../../../../node_modules/ignore": { - "version": "5.2.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "../../../../../node_modules/import-fresh": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/import-local": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "../../../../../node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "../../../../../node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "../../../../../node_modules/internal-slot": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "../../../../../node_modules/intl": { - "version": "1.2.5", - "license": "MIT" - }, - "../../../../../node_modules/is-arguments": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-array-buffer": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/is-bigint": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-binary-path": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/is-boolean-object": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-callable": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-core-module": { - "version": "2.13.1", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-date-object": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-extglob": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../../../../../node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/is-generator-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/is-glob": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../../../../node_modules/is-map": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-number": { - "version": "7.0.0", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "../../../../../node_modules/is-number-object": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/is-regex": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-set": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/is-string": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-symbol": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-typed-array": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-weakmap": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/is-weakset": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/isexe": { - "version": "2.0.0", - "license": "ISC" - }, - "../../../../../node_modules/iso-url": { - "version": "0.4.7", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/istanbul-lib-report": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/istanbul-reports": { - "version": "3.1.7", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/jackspeak": { - "version": "2.3.6", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "../../../../../node_modules/jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../../../../../node_modules/jest-changed-files": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-circus": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-cli": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../../../../../node_modules/jest-config": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "../../../../../node_modules/jest-config/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/jest-diff": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-docblock": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-each": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-environment-node": { - "version": "29.7.0", - "dev": true, - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-get-type": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-haste-map": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "../../../../../node_modules/jest-leak-detector": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-matcher-utils": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-message-util": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-mock": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "../../../../../node_modules/jest-regex-util": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-resolve": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-runner": { - "version": "29.7.0", - "dev": true, - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-runtime": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-runtime/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/jest-snapshot": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-util": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-validate": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/jest-watcher": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-worker": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../../../../node_modules/js-sha256": { - "version": "0.9.0", - "license": "MIT" - }, - "../../../../../node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../../../../../node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "../../../../../node_modules/json-buffer": { - "version": "3.0.1", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/json-text-sequence": { - "version": "0.1.1", - "license": "MIT", - "dependencies": { - "delimit-stream": "0.1.0" - } - }, - "../../../../../node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/jsonfile": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "../../../../../node_modules/jssha": { - "version": "3.3.1", - "license": "BSD-3-Clause", - "engines": { - "node": "*" - } - }, - "../../../../../node_modules/keyv": { - "version": "4.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "../../../../../node_modules/kleur": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/leven": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../../../../../node_modules/libphonenumber-js": { - "version": "1.10.61", - "license": "MIT" - }, - "../../../../../node_modules/lilconfig": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/lint-staged": { - "version": "12.3.7", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.16", - "commander": "^8.3.0", - "debug": "^4.3.3", - "execa": "^5.1.1", - "lilconfig": "2.0.4", - "listr2": "^4.0.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.0", - "pidtree": "^0.5.0", - "string-argv": "^0.3.1", - "supports-color": "^9.2.1", - "yaml": "^1.10.2" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "../../../../../node_modules/lint-staged/node_modules/supports-color": { - "version": "9.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../../../../node_modules/listr2": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.5", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "../../../../../node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/listr2/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/listr2/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/listr2/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/log-update": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/log-update/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "../../../../../node_modules/log-update/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.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/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/make-dir": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/make-error": { - "version": "1.3.6", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true - }, - "../../../../../node_modules/makeerror": { - "version": "1.0.12", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "../../../../../node_modules/md5.js": { - "version": "1.3.5", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "../../../../../node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "../../../../../node_modules/micromatch": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "../../../../../node_modules/miller-rabin": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "../../../../../node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "../../../../../node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "../../../../../node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "../../../../../node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "../../../../../node_modules/minimist": { - "version": "1.2.8", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/minipass": { - "version": "7.1.1", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "../../../../../node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/net": { - "version": "1.0.2", - "license": "MIT" - }, - "../../../../../node_modules/node-addon-api": { - "version": "2.0.2", - "license": "MIT" - }, - "../../../../../node_modules/node-gyp-build": { - "version": "4.8.0", - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "../../../../../node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/node-releases": { - "version": "2.0.14", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/normalize-path": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../../../../../node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/object-inspect": { - "version": "1.13.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/object-is": { - "version": "1.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "../../../../../node_modules/object.assign": { - "version": "4.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../../../../../node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/optionator": { - "version": "0.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../../../../../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/pako": { - "version": "2.1.0", - "license": "(MIT AND Zlib)" - }, - "../../../../../node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "../../../../../node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../../../../../node_modules/path-key": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/path-scurry": { - "version": "1.11.1", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "../../../../../node_modules/path-type": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/pbkdf2": { - "version": "3.1.2", - "license": "MIT", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "../../../../../node_modules/picocolors": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "../../../../../node_modules/picomatch": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "../../../../../node_modules/pidtree": { - "version": "0.5.0", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "../../../../../node_modules/pirates": { - "version": "4.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "../../../../../node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "../../../../../node_modules/prettier": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "../../../../../node_modules/pretty-format": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "../../../../../node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "../../../../../node_modules/process-nextick-args": { - "version": "2.0.1", - "license": "MIT" - }, - "../../../../../node_modules/prompts": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "../../../../../node_modules/public-encrypt": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "../../../../../node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "../../../../../node_modules/punycode": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/pure-rand": { - "version": "6.0.4", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, - "../../../../../node_modules/pvtsutils": { - "version": "1.3.5", - "license": "MIT", - "dependencies": { - "tslib": "^2.6.1" - } - }, - "../../../../../node_modules/pvutils": { - "version": "1.1.3", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "../../../../../node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "../../../../../node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "../../../../../node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "../../../../../node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/readable-stream": { - "version": "3.6.2", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../../../../../node_modules/readdirp": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "../../../../../node_modules/reflect-metadata": { - "version": "0.2.2", - "license": "Apache-2.0" - }, - "../../../../../node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/repl": { - "version": "0.1.3", - "engines": { - "node": ">= 0.4.0" - } - }, - "../../../../../node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../../../../../node_modules/resolve": { - "version": "1.22.8", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../../../../../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "../../../../../node_modules/resolve.exports": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/restore-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/reusify": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "../../../../../node_modules/rfdc": { - "version": "1.3.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/ripemd160": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "../../../../../node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "../../../../../node_modules/rxjs": { - "version": "7.8.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "../../../../../node_modules/safe-buffer": { - "version": "5.2.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" - }, - "../../../../../node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "../../../../../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" - } - }, - "../../../../../node_modules/semver": { - "version": "7.6.0", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/set-function-length": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "../../../../../node_modules/set-function-name": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "../../../../../node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "../../../../../node_modules/shebang-command": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/shebang-regex": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/side-channel": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "../../../../../node_modules/simple-cbor": { - "version": "0.4.1", - "license": "ISC" - }, - "../../../../../node_modules/sisteransi": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/slice-ansi": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "../../../../../node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "../../../../../node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "../../../../../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/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "../../../../../node_modules/stack-utils": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "../../../../../node_modules/stream-buffers": { - "version": "3.0.2", - "license": "Unlicense", - "engines": { - "node": ">= 0.10.0" - } - }, - "../../../../../node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "../../../../../node_modules/string-argv": { - "version": "0.3.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "../../../../../node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/string-width": { - "version": "5.1.2", - "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" - } - }, - "../../../../../node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" - }, - "../../../../../node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "../../../../../node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "../../../../../node_modules/strip-ansi": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/strip-comments": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../../../../node_modules/text-encoding": { - "version": "0.7.0", - "license": "(Unlicense OR Apache-2.0)" - }, - "../../../../../node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "../../../../../node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../../../../../node_modules/to-regex-range": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "../../../../../node_modules/ts-api-utils": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "../../../../../node_modules/ts-node": { - "version": "10.3.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "0.7.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", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "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 - } - } - }, - "../../../../../node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, - "../../../../../node_modules/tsx": { - "version": "4.15.7", - "license": "MIT", - "dependencies": { - "esbuild": "~0.21.4", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../../../../../node_modules/tsx/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "../../../../../node_modules/tsx/node_modules/esbuild": { - "version": "0.21.5", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "../../../../../node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../../../../../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../../../../../node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../../../../node_modules/typedarray": { - "version": "0.0.6", - "license": "MIT" - }, - "../../../../../node_modules/typescript": { - "version": "5.2.2", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "../../../../../node_modules/undici-types": { - "version": "5.25.3", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/universalify": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "../../../../../node_modules/update-browserslist-db": { - "version": "1.0.16", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "../../../../../node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "../../../../../node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "../../../../../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/v8-to-istanbul": { - "version": "9.2.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "../../../../../node_modules/validator": { - "version": "13.11.0", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "../../../../../node_modules/walker": { - "version": "1.0.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "../../../../../node_modules/wasmedge_quickjs": { - "version": "0.0.0" - }, - "../../../../../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.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/which-collection": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/which-typed-array": { - "version": "1.1.13", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../../../../node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "../../../../../node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "../../../../../node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" - }, - "../../../../../node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "../../../../../node_modules/write-file-atomic": { - "version": "4.0.2", - "dev": true, - "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/ws": { - "version": "8.17.1", - "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/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "../../../../../node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "../../../../../node_modules/yaml": { - "version": "1.10.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "../../../../../node_modules/yargs": { - "version": "17.7.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" - }, - "engines": { - "node": ">=12" - } - }, - "../../../../../node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "../../../../../node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "../../../../../node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../../../../node_modules/yn": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "../../../../../node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../functional_syntax/async_await": { - "name": "async_await_end_to_end_test_functional_syntax", - "dev": true, - "dependencies": { - "azle": "0.24.1" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.25.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.25.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.25.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.6", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.25.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.25.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.6" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.25.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/template": { - "version": "7.25.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" - }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/traverse": { - "version": "7.25.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/types": { - "version": "7.25.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@dfinity/agent": { - "version": "0.19.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "simple-cbor": "^0.4.1" - }, - "peerDependencies": { - "@dfinity/candid": "^0.19.3", - "@dfinity/principal": "^0.19.3" + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@dfinity/candid": { - "version": "0.19.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "peerDependencies": { - "@dfinity/principal": "^0.19.3" + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@dfinity/principal": { - "version": "0.19.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@noble/hashes": "^1.3.1" + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@esbuild/linux-x64": { + "node_modules/@esbuild/win32-x64": { "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", "cpu": [ "x64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ - "linux" + "win32" ], "engines": { "node": ">=18" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -7804,16 +1078,18 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/console": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -7828,8 +1104,9 @@ }, "node_modules/@jest/core": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, - "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", @@ -7874,16 +1151,18 @@ }, "node_modules/@jest/core/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/core/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7893,8 +1172,9 @@ }, "node_modules/@jest/environment": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -7907,8 +1187,9 @@ }, "node_modules/@jest/expect": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, - "license": "MIT", "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" @@ -7919,8 +1200,9 @@ }, "node_modules/@jest/expect-utils": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3" }, @@ -7930,8 +1212,9 @@ }, "node_modules/@jest/fake-timers": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -7946,8 +1229,9 @@ }, "node_modules/@jest/globals": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -7960,8 +1244,9 @@ }, "node_modules/@jest/reporters": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, - "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", @@ -8002,16 +1287,18 @@ }, "node_modules/@jest/reporters/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/reporters/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8019,8 +1306,10 @@ }, "node_modules/@jest/reporters/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8038,8 +1327,9 @@ }, "node_modules/@jest/reporters/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -8049,8 +1339,9 @@ }, "node_modules/@jest/reporters/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8060,8 +1351,9 @@ }, "node_modules/@jest/schemas": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -8071,8 +1363,9 @@ }, "node_modules/@jest/source-map": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -8084,8 +1377,9 @@ }, "node_modules/@jest/test-result": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", @@ -8098,8 +1392,9 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", @@ -8112,8 +1407,9 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -8137,8 +1433,9 @@ }, "node_modules/@jest/types": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -8153,8 +1450,9 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -8166,38 +1464,56 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@noble/curves": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "dependencies": { + "@noble/hashes": "1.5.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/hashes": { "version": "1.5.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", "engines": { "node": "^14.21.3 || >=16" }, @@ -8205,31 +1521,44 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true }, "node_modules/@sinonjs/commons": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.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==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -8240,16 +1569,18 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -8257,68 +1588,92 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/graceful-fs": { "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/node": { "version": "18.15.13", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" }, "node_modules/@types/stack-utils": { "version": "2.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" + }, + "node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==" }, "node_modules/@types/yargs": { "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, - "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" }, "node_modules/ansi-escapes": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -8329,10 +1684,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -8345,41 +1711,143 @@ }, "node_modules/anymatch": { "version": "3.1.3", - "dev": true, - "license": "ISC", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" }, - "engines": { - "node": ">= 8" + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true + }, + "node_modules/async_await_end_to_end_test_functional_syntax": { + "resolved": "../../functional_syntax/async_await", + "link": true + }, + "node_modules/azle": { + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/azle/-/azle-0.24.1.tgz", + "integrity": "sha512-k7E3TyKSdIH25fbLP8ix4kwJtKHQH9ooPtATyPCTWkGyRMs2RedyEimfcEjznPgYvciS4AcNwyWJUwx0jKpKsw==", + "hasInstallScript": true, + "dependencies": { + "@dfinity/agent": "^1.1.0", + "@dfinity/identity-secp256k1": "^1.1.0", + "@types/uuid": "^9.0.4", + "binaryen": "^116.0.0", + "buffer": "^6.0.3", + "chokidar": "^3.6.0", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", + "crypto-browserify": "^3.12.0", + "deep-is": "^0.1.4", + "esbuild": "^0.23.0", + "esbuild-plugin-tsc": "^0.4.0", + "ethers": "^6.13.2", + "fs-extra": "^11.2.0", + "glob": "^10.3.15", + "hash-of-directory": "^1.0.1", + "http-message-parser": "^0.0.34", + "intl": "^1.2.5", + "js-sha256": "0.9.0", + "jssha": "^3.3.1", + "net": "^1.0.2", + "pako": "^2.1.0", + "reflect-metadata": "^0.2.2", + "repl": "^0.1.3", + "text-encoding": "0.7.0", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "uuid": "^9.0.1", + "wasmedge_quickjs": "github:demergent-labs/wasmedge-quickjs#3b3b0ee91248ccf9cd954ffafbac7e024648af92" + }, + "bin": { + "azle": "src/build/index.js" } }, - "node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", + "node_modules/azle/node_modules/@dfinity/agent": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.4.0.tgz", + "integrity": "sha512-/zgGajZpxtbu+kLXtFx2e9V2+HbMUjrtGWx9ZEwtVwhVxKgVi/2kGQpFRPEDFJ461V7wdTwCig4OkMxVU4shTw==", "dependencies": { - "sprintf-js": "~1.0.2" + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^1.4.0", + "@dfinity/principal": "^1.4.0" } }, - "node_modules/async": { - "version": "3.2.6", - "dev": true, - "license": "MIT" - }, - "node_modules/async_await_end_to_end_test_functional_syntax": { - "resolved": "../../functional_syntax/async_await", - "link": true + "node_modules/azle/node_modules/@dfinity/candid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.4.0.tgz", + "integrity": "sha512-PsTJVn63ZM4A/6Xs5coI0zMFevSwJ8hcyh38LdH/92n6wi9UOTis1yc4qL5MZvvRCUAD0c3rVjELL+49E9sPyA==", + "peer": true, + "peerDependencies": { + "@dfinity/principal": "^1.4.0" + } }, - "node_modules/azle": { - "resolved": "../../../../..", - "link": true + "node_modules/azle/node_modules/@dfinity/principal": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.4.0.tgz", + "integrity": "sha512-SuTBVlc71ub89ji0WN5/T100zUG2uIMn5x4+We4vS4nJ0R3/Xt89XJsHepjd5SQTSQPOvP7eQ+S8cQKWRz/RkA==", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.3.1" + } }, "node_modules/babel-jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "license": "MIT", "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -8398,8 +1866,9 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -8413,8 +1882,9 @@ }, "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -8428,8 +1898,9 @@ }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -8442,8 +1913,9 @@ }, "node_modules/babel-preset-current-node-syntax": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -8467,8 +1939,9 @@ }, "node_modules/babel-preset-jest": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, - "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -8482,19 +1955,26 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, "node_modules/base64-arraybuffer": { "version": "0.2.0", - "dev": true, + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", "engines": { "node": ">= 0.6.0" } }, "node_modules/base64-js": { "version": "1.5.1", - "dev": true, + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -8508,21 +1988,53 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/bignumber.js": { "version": "9.1.2", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", "engines": { "node": "*" } }, + "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==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/binaryen": { + "version": "116.0.0", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0.tgz", + "integrity": "sha512-Hp0dXC6Cb/rTwWEoUS2BRghObE7g/S9umKtxuTDt3f61G6fNTE/YVew/ezyy3IdHcLx3f17qfh6LwETgCfvWkQ==", + "bin": { + "wasm-opt": "bin/wasm-opt", + "wasm2js": "bin/wasm2js" + } + }, + "node_modules/bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "dependencies": { + "@noble/hashes": "^1.2.0" + } + }, + "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==" + }, "node_modules/borc": { "version": "2.1.2", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", "dependencies": { "bignumber.js": "^9.0.0", "buffer": "^5.5.0", @@ -8538,7 +2050,8 @@ }, "node_modules/borc/node_modules/buffer": { "version": "5.7.1", - "dev": true, + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { "type": "github", @@ -8553,7 +2066,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -8561,16 +2073,16 @@ }, "node_modules/brace-expansion": { "version": "2.0.1", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.3", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { "fill-range": "^7.1.1" }, @@ -8578,8 +2090,110 @@ "node": ">=8" } }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/browserslist": { "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, "funding": [ { @@ -8595,7 +2209,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001646", "electron-to-chromium": "^1.5.4", @@ -8611,8 +2224,9 @@ }, "node_modules/bs-logger": { "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, - "license": "MIT", "dependencies": { "fast-json-stable-stringify": "2.x" }, @@ -8620,37 +2234,87 @@ "node": ">= 6" } }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/bs58check": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", + "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "dependencies": { + "@noble/hashes": "^1.2.0", + "bs58": "^5.0.0" + } + }, "node_modules/bser": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-from": { "version": "1.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001660", + "version": "1.0.30001663", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", + "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==", "dev": true, "funding": [ { @@ -8665,13 +2329,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "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, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8685,14 +2349,40 @@ }, "node_modules/char-regex": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/ci-info": { "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -8700,20 +2390,45 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], - "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/cjs-module-lexer": { "version": "1.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "dev": true + }, + "node_modules/class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + "node_modules/class-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", + "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "dependencies": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.10.53", + "validator": "^13.9.0" + } }, "node_modules/cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -8725,21 +2440,24 @@ }, "node_modules/cliui/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8751,8 +2469,9 @@ }, "node_modules/cliui/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8762,8 +2481,9 @@ }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8778,8 +2498,9 @@ }, "node_modules/co": { "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, - "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -8787,44 +2508,133 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true }, "node_modules/color-convert": { "version": "2.0.1", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" } }, - "node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } }, "node_modules/create-jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -8843,8 +2653,8 @@ }, "node_modules/cross-spawn": { "version": "7.0.3", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8854,10 +2664,32 @@ "node": ">= 8" } }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, "node_modules/debug": { "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -8872,8 +2704,9 @@ }, "node_modules/dedent": { "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, - "license": "MIT", "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -8883,39 +2716,77 @@ } } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, "node_modules/deepmerge": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/delimit-stream": { "version": "0.1.0", - "dev": true, - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==" + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } }, "node_modules/detect-newline": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/diff-sequences": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/ejs": { "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -8927,14 +2798,35 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.22", - "dev": true, - "license": "ISC" + "version": "1.5.27", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.27.tgz", + "integrity": "sha512-o37j1vZqCoEgBuWWXLHQgTN/KDKe7zwpiY5CPeq2RvUqOyJw9xnrULzZAEVQ5p4h+zjMk7hgtOoPdnLxr7m/jw==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", + "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/emittery": { "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -8942,19 +2834,25 @@ "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, "node_modules/error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/esbuild": { "version": "0.23.1", - "dev": true, + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -8988,26 +2886,40 @@ "@esbuild/win32-x64": "0.23.1" } }, + "node_modules/esbuild-plugin-tsc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/esbuild-plugin-tsc/-/esbuild-plugin-tsc-0.4.0.tgz", + "integrity": "sha512-q9gWIovt1nkwchMLc2zhyksaiHOv3kDK4b0AUol8lkMCRhJ1zavgfb2fad6BKp7FT9rh/OHmEBXVjczLoi/0yw==", + "dependencies": { + "strip-comments": "^2.0.1" + }, + "peerDependencies": { + "typescript": "^4.0.0 || ^5.0.0" + } + }, "node_modules/escalade": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -9016,10 +2928,74 @@ "node": ">=4" } }, + "node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@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.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "node_modules/execa": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -9040,11 +3016,14 @@ }, "node_modules/execa/node_modules/signal-exit": { "version": "3.0.7", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, "node_modules/exit": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -9052,8 +3031,9 @@ }, "node_modules/expect": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", @@ -9067,29 +3047,33 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fb-watchman": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, "node_modules/filelist": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.1" } }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9099,8 +3083,8 @@ }, "node_modules/fill-range": { "version": "7.1.1", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -9110,8 +3094,9 @@ }, "node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -9120,47 +3105,99 @@ "node": ">=8" } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, "node_modules/function-bind": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-package-type": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.0.0" } }, + "node_modules/get-prop": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/get-prop/-/get-prop-0.0.10.tgz", + "integrity": "sha512-XRSGBgcIisSMLJ/dwe1y/eMm9yzLicEJKmEXA3ArBkDkCW2nyRroLOoKIz+SdxuG5SI7ym2QHaTU5ifCl7MTDg==" + }, "node_modules/get-stream": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -9168,65 +3205,202 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-tsconfig": { - "version": "4.8.1", - "dev": true, - "license": "MIT", + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-of-directory": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hash-of-directory/-/hash-of-directory-1.0.1.tgz", + "integrity": "sha512-PX6VaxD6JK8R4113ChdTtEnWIo2XA9mz4yrtGBuUGUKtWCj6iWWYj/qwjdfs3Zgm+FdiNj0Vmt4VwPlwxx8WHw==" + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdkey": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", + "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", + "dependencies": { + "bs58check": "^2.1.2", + "ripemd160": "^2.0.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" + } + }, + "node_modules/hdkey/node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + "safe-buffer": "^5.0.1" } }, - "node_modules/globals": { - "version": "11.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "node_modules/hdkey/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" + "node_modules/hdkey/node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } }, - "node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/hasown": { + "node_modules/html-escaper": { "version": "2.0.2", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-message-parser": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/http-message-parser/-/http-message-parser-0.0.34.tgz", + "integrity": "sha512-KABKXT347AYvQoaMZg9/K+/GqW6gfB4pKCiTyMUYnosfkdkaBkrXE/cWGSLk5jvD5tiDeLFlYSHLhhPhQKbRrA==", "dependencies": { - "function-bind": "^1.1.2" + "buffer": "^4.9.1", + "concat-stream": "^1.5.1", + "get-prop": "0.0.10", + "minimist": "^1.2.0", + "stream-buffers": "^3.0.0" + }, + "bin": { + "http-message-parser": "bin/http-message-parser.js" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" + "node_modules/http-message-parser/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } }, "node_modules/human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/ieee754": { "version": "1.2.1", - "dev": true, + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -9240,13 +3414,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/import-local": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, - "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -9263,16 +3437,19 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -9280,18 +3457,36 @@ }, "node_modules/inherits": { "version": "2.0.4", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" }, "node_modules/is-arrayish": { "version": "0.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/is-core-module": { "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, - "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -9302,34 +3497,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, "node_modules/is-generator-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-number": { "version": "7.0.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { "node": ">=0.12.0" } }, "node_modules/is-stream": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -9337,31 +3553,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "node_modules/isexe": { "version": "2.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/iso-url": { "version": "0.4.7", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", "engines": { "node": ">=10" } }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -9375,8 +3598,9 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -9386,8 +3610,9 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -9399,8 +3624,9 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -9412,8 +3638,9 @@ }, "node_modules/istanbul-reports": { "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9422,10 +3649,25 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jake": { "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -9441,8 +3683,9 @@ }, "node_modules/jake/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9450,8 +3693,9 @@ }, "node_modules/jake/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9461,8 +3705,9 @@ }, "node_modules/jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -9486,8 +3731,9 @@ }, "node_modules/jest-changed-files": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, - "license": "MIT", "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -9499,8 +3745,9 @@ }, "node_modules/jest-circus": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -9529,8 +3776,9 @@ }, "node_modules/jest-cli": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, - "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -9561,8 +3809,9 @@ }, "node_modules/jest-config": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -9605,8 +3854,9 @@ }, "node_modules/jest-config/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9614,8 +3864,10 @@ }, "node_modules/jest-config/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9633,8 +3885,9 @@ }, "node_modules/jest-config/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9644,8 +3897,9 @@ }, "node_modules/jest-diff": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -9658,8 +3912,9 @@ }, "node_modules/jest-docblock": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, - "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -9669,8 +3924,9 @@ }, "node_modules/jest-each": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -9684,8 +3940,9 @@ }, "node_modules/jest-environment-node": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -9700,16 +3957,18 @@ }, "node_modules/jest-get-type": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -9732,8 +3991,9 @@ }, "node_modules/jest-leak-detector": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, - "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -9744,8 +4004,9 @@ }, "node_modules/jest-matcher-utils": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -9758,8 +4019,9 @@ }, "node_modules/jest-message-util": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -9777,8 +4039,9 @@ }, "node_modules/jest-mock": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -9790,8 +4053,9 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -9806,16 +4070,18 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -9833,8 +4099,9 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, - "license": "MIT", "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -9845,8 +4112,9 @@ }, "node_modules/jest-runner": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -9876,8 +4144,9 @@ }, "node_modules/jest-runtime": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -9908,8 +4177,9 @@ }, "node_modules/jest-runtime/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9917,8 +4187,10 @@ }, "node_modules/jest-runtime/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9936,8 +4208,9 @@ }, "node_modules/jest-runtime/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9947,8 +4220,9 @@ }, "node_modules/jest-snapshot": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -9977,8 +4251,9 @@ }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -9988,8 +4263,9 @@ }, "node_modules/jest-util": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -10004,8 +4280,9 @@ }, "node_modules/jest-validate": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -10020,8 +4297,9 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -10031,8 +4309,9 @@ }, "node_modules/jest-watcher": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, - "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -10049,8 +4328,9 @@ }, "node_modules/jest-worker": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -10063,8 +4343,9 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10075,15 +4356,22 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, "node_modules/js-tokens": { "version": "4.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -10094,8 +4382,9 @@ }, "node_modules/jsesc": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -10105,21 +4394,23 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "node_modules/json-text-sequence": { "version": "0.1.1", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==", "dependencies": { "delimit-stream": "0.1.0" } }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -10127,31 +4418,59 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jssha": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.3.1.tgz", + "integrity": "sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==", + "engines": { + "node": "*" + } + }, "node_modules/kleur": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/leven": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/libphonenumber-js": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.9.tgz", + "integrity": "sha512-Zs5wf5HaWzW2/inlupe2tstl0I/Tbqo7lH20ZLr6Is58u7Dz2n+gRFGNlj9/gWxFvNfp9+YyDsiegjNhdixB9A==" + }, "node_modules/lines-and-columns": { "version": "1.2.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -10161,21 +4480,24 @@ }, "node_modules/lodash.memoize": { "version": "4.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true }, "node_modules/lru-cache": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/make-dir": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -10188,8 +4510,9 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -10199,26 +4522,40 @@ }, "node_modules/make-error": { "version": "1.3.6", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, "node_modules/makeerror": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "node_modules/merge-stream": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/micromatch": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -10227,46 +4564,129 @@ "node": ">=8.6" } }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { "version": "2.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true }, "node_modules/natural-compare": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/net": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", + "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } }, "node_modules/node-int64": { "version": "0.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true }, "node_modules/node-releases": { "version": "2.0.18", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true }, "node_modules/normalize-path": { "version": "3.0.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -10276,16 +4696,18 @@ }, "node_modules/once": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -10298,8 +4720,9 @@ }, "node_modules/p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -10312,8 +4735,9 @@ }, "node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -10323,8 +4747,9 @@ }, "node_modules/p-locate/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -10337,16 +4762,44 @@ }, "node_modules/p-try": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/parse-json": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -10362,42 +4815,81 @@ }, "node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } }, "node_modules/picocolors": { "version": "1.1.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" }, @@ -10407,16 +4899,18 @@ }, "node_modules/pirates": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -10426,8 +4920,9 @@ }, "node_modules/pretty-format": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -10439,8 +4934,9 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -10448,10 +4944,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, "node_modules/prompts": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -10460,8 +4962,28 @@ "node": ">= 6" } }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/pure-rand": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -10472,18 +4994,51 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ], - "license": "MIT" + ] + }, + "node_modules/pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "dependencies": { + "tslib": "^2.6.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } }, "node_modules/react-is": { "version": "18.3.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true }, "node_modules/readable-stream": { "version": "3.6.2", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -10493,18 +5048,44 @@ "node": ">= 6" } }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "node_modules/repl": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/repl/-/repl-0.1.3.tgz", + "integrity": "sha512-C3ZEHaX28+EvM9lPiXl9ruN2g5M5sUvyCIDvZ0M4VCusfA1Cn0+z3tJcQl/lvxPsBm82q4hKHKebPlE3SEhFKg==", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -10519,8 +5100,9 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -10530,31 +5112,43 @@ }, "node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/resolve.exports": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", - "dev": true, + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -10568,21 +5162,47 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } }, "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/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, "node_modules/shebang-command": { "version": "2.0.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -10592,42 +5212,57 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "engines": { "node": ">=8" } }, + "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==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/simple-cbor": { "version": "0.4.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", + "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" }, "node_modules/sisteransi": { "version": "1.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true }, "node_modules/slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "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/source-map-support": { "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -10635,13 +5270,15 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true }, "node_modules/stack-utils": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -10649,18 +5286,27 @@ "node": ">=10" } }, + "node_modules/stream-buffers": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.3.tgz", + "integrity": "sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==", + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-length": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, - "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -10671,16 +5317,18 @@ }, "node_modules/string-length/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/string-length/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -10688,26 +5336,125 @@ "node": ">=8" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -10717,8 +5464,9 @@ }, "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, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10728,8 +5476,9 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10739,8 +5488,9 @@ }, "node_modules/test-exclude": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -10752,8 +5502,9 @@ }, "node_modules/test-exclude/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10761,8 +5512,10 @@ }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10780,8 +5533,9 @@ }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -10789,23 +5543,31 @@ "node": "*" } }, + "node_modules/text-encoding": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", + "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", + "deprecated": "no longer maintained" + }, "node_modules/tmpl": { "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true }, "node_modules/to-fast-properties": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dependencies": { "is-number": "^7.0.0" }, @@ -10815,8 +5577,9 @@ }, "node_modules/ts-jest": { "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, - "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "ejs": "^3.1.10", @@ -10862,8 +5625,9 @@ }, "node_modules/ts-jest/node_modules/semver": { "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -10871,10 +5635,15 @@ "node": ">=10" } }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, "node_modules/tsx": { "version": "4.19.1", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", + "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", "dependencies": { "esbuild": "~0.23.0", "get-tsconfig": "^4.7.5" @@ -10891,16 +5660,18 @@ }, "node_modules/type-detect": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -10908,10 +5679,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, "node_modules/typescript": { "version": "5.6.2", - "dev": true, - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -10920,8 +5696,18 @@ "node": ">=14.17" } }, + "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/update-browserslist-db": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -10937,7 +5723,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.1.2", "picocolors": "^1.0.1" @@ -10951,13 +5736,26 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } }, "node_modules/v8-to-istanbul": { "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -10967,18 +5765,32 @@ "node": ">=10.12.0" } }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/walker": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } }, + "node_modules/wasmedge_quickjs": { + "version": "0.0.0", + "resolved": "git+ssh://git@github.com/demergent-labs/wasmedge-quickjs.git#3b3b0ee91248ccf9cd954ffafbac7e024648af92", + "integrity": "sha512-YJ6XmvCtoMOF5/W00su0j6K0mkiDNWVbAGeVj12DhbeEdz0Z2Pr84Mz6rcTfFl8Oa1RQOGb6cWv/Pb5/UJ7/ug==" + }, "node_modules/which": { "version": "2.0.2", - "dev": true, - "license": "ISC", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dependencies": { "isexe": "^2.0.0" }, @@ -10989,15 +5801,98 @@ "node": ">= 8" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/write-file-atomic": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, - "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -11008,26 +5903,50 @@ }, "node_modules/write-file-atomic/node_modules/signal-exit": { "version": "3.0.7", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "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/y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/yargs": { "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -11043,29 +5962,33 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yargs/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11077,8 +6000,9 @@ }, "node_modules/yargs/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11088,8 +6012,9 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/async_await/test/test.ts index 3c6ce55058..0b19ed46e8 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/async_await/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/async_await/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/async_await'; -const asyncAwaitCanister = createActor(getCanisterId('async_await'), { +const canisterName = 'async_await'; +const asyncAwaitCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(asyncAwaitCanister)); +runTests(getTests(asyncAwaitCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/test.ts index 6debc7c140..28813aac9e 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/audio_recorder'; -const audioRecorderCanister = createActor(getCanisterId('audio_recorder'), { +const canisterName = 'audio_recorder'; +const audioRecorderCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(audioRecorderCanister)); +runTests(getTests(audioRecorderCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/test.ts index 2c3edeb39e..7ce363fee9 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/test.ts @@ -6,7 +6,8 @@ import { getTests } from 'bitcoin_end_to_end_test_functional_syntax/test/tests'; import { createActor } from './dfx_generated/bitcoin'; import { BitcoinDaemon, startBitcoinDaemon } from './setup'; -const bitcoinCanister = createActor(getCanisterId('bitcoin'), { +const canisterName = 'bitcoin'; +const bitcoinCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } @@ -27,4 +28,4 @@ runTests(() => { 'runs bitcoin tests while bitcoin daemon is running', getTests(bitcoinCanister) ); -}); +}, canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/benchmarks.json b/tests/end_to_end/candid_rpc/class_syntax/blob_array/benchmarks.json new file mode 100644 index 0000000000..536a72ba61 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_syntax/blob_array/benchmarks.json @@ -0,0 +1,6 @@ +{ + "blob_array": { + "previous": { "version": "0.25.0", "benchmarks": [] }, + "current": { "version": "0.25.0", "benchmarks": [] } + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/benchmarks.md b/tests/end_to_end/candid_rpc/class_syntax/blob_array/benchmarks.md new file mode 100644 index 0000000000..b67ef9445b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_syntax/blob_array/benchmarks.md @@ -0,0 +1,16 @@ +# Benchmarks for blob_array + +## Current benchmarks Azle version: 0.25.0 + +## Baseline benchmarks Azle version: 0.25.0 + +--- + +**Note on calculations:** + +- Cycles are calculated using the formula: base_fee + (per_instruction_fee \* number_of_instructions) +- Base fee: 590,000 cycles +- Per instruction fee: 0.4 cycles +- USD value is derived from the total cycles, where 1 trillion cycles = 1 XDR, and 1 XDR = $1.336610 (as of December 18, 2023) + +For the most up-to-date fee information, please refer to the [official documentation](https://internetcomputer.org/docs/current/developer-docs/gas-cost#execution). diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/blob_array/package-lock.json index 02d2f3bd46..9221992aac 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/blob_array/package-lock.json +++ b/tests/end_to_end/candid_rpc/class_syntax/blob_array/package-lock.json @@ -17,6 +17,7 @@ } }, "../../functional_syntax/blob_array": { + "name": "blob_array_end_to_end_test_functional_syntax", "dev": true, "dependencies": { "azle": "0.24.1" diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/test.ts index a12355db8b..adbd139829 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'blob_array_end_to_end_test_functional_syntax/test/test import { createActor } from './dfx_generated/blob_array'; -const blobCanister = createActor(getCanisterId('blob_array'), { +const canisterName = 'blob_array'; +const blobCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(blobCanister)); +runTests(getTests(blobCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/bytes/test/test.ts index 1b1ab707ef..5d33cad6a8 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/bytes/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'bytes_end_to_end_test_functional_syntax/test/tests'; import { createActor } from './dfx_generated/bytes_canister'; -const bytesCanister = createActor(getCanisterId('bytes_canister'), { +const canisterName = 'bytes_canister'; +const bytesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(bytesCanister)); +runTests(getTests(bytesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/test.ts index 0874c11212..a27472ec68 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'call_raw_end_to_end_test_functional_syntax/test/tests' import { createActor } from '../test/dfx_generated/call_raw'; -const callRawCanister = createActor(getCanisterId('call_raw'), { +const canisterName = 'call_raw'; +const callRawCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(callRawCanister)); +runTests(getTests(callRawCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/test.ts index 2207a63591..0d131443cb 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'candid_encoding_end_to_end_test_functional_syntax/test import { createActor } from './dfx_generated/candid_encoding'; -const candidEncodingCanister = createActor(getCanisterId('candid_encoding'), { +const canisterName = 'candid_encoding'; +const candidEncodingCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(candidEncodingCanister)); +runTests(getTests(candidEncodingCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/test.ts index 4af6a9a099..160b5947d9 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'candid_keywords_end_to_end_test_functional_syntax/test import { createActor } from './dfx_generated/candid_keywords'; -const queryCanister = createActor(getCanisterId('candid_keywords'), { +const canisterName = 'candid_keywords'; +const queryCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(queryCanister)); +runTests(getTests(queryCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/canister/test/test.ts index 5922535b93..a2c03fafbd 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/canister/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/canister/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'canister_end_to_end_test_functional_syntax/test/tests' import { createActor } from './dfx_generated/canister'; -const canister = createActor(getCanisterId('canister'), { +const canisterName = 'canister'; +const canister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(canister)); +runTests(getTests(canister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/test.ts index 277fbf3431..2ce73894b6 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/test.ts @@ -10,13 +10,18 @@ import { createActor as createComplexActor } from './dfx_generated/complex_init' // @ts-ignore import { createActor as createRecActor } from './dfx_generated/rec_init'; -const complexInitCanister = createComplexActor(getCanisterId('complex_init'), { - agentOptions: { - host: 'http://127.0.0.1:8000' +const complexInitCanisterName = 'complex_init'; +const complexInitCanister = createComplexActor( + getCanisterId(complexInitCanisterName), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } } -}); +); -const recInitCanister = createRecActor(getCanisterId('rec_init'), { +const recInitCanisterName = 'rec_init'; +const recInitCanister = createRecActor(getCanisterId(recInitCanisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } @@ -25,4 +30,4 @@ const recInitCanister = createRecActor(getCanisterId('rec_init'), { runTests(() => { describe('complex init canister', getTests(complexInitCanister)); describe('rec init canister', getRecTests(recInitCanister)); -}); +}, [complexInitCanisterName, recInitCanisterName]); diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/test.ts index 279ca72b21..8a0ac733c9 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/test.ts @@ -6,10 +6,11 @@ import { getTests } from 'complex_types_end_to_end_test_functional_syntax/test/t import { createActor } from '../test/dfx_generated/complex_types'; -const complexTypesCanister = createActor(getCanisterId('complex_types'), { +const canisterName = 'complex_types'; +const complexTypesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(complexTypesCanister)); +runTests(getTests(complexTypesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/test.ts index 39ef994e34..a77e03c369 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'composite_queries_end_to_end_test_functional_syntax/te import { createActor } from './dfx_generated/canister1'; -const canister1 = createActor(getCanisterId('canister1'), { +const canisterName = 'canister1'; +const canister1 = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(canister1)); +runTests(getTests(canister1), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/counter/test/test.ts index ede495bd89..454d01c3d0 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/counter/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/counter/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'counter_end_to_end_test_functional_syntax/test/tests'; import { createActor } from './dfx_generated/counter'; -const counterCanister = createActor(getCanisterId('counter'), { +const canisterName = 'counter'; +const counterCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(counterCanister)); +runTests(getTests(counterCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/benchmarks.json b/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/benchmarks.json new file mode 100644 index 0000000000..87cc865e56 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/benchmarks.json @@ -0,0 +1,93 @@ +{ + "canister1": { + "previous": { "version": "0.25.0", "benchmarks": [] }, + "current": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "2296025" }, + "method_name": "balance", + "timestamp": { "__bigint__": "1729714519747695193" } + }, + { + "instructions": { "__bigint__": "3635289" }, + "method_name": "account", + "timestamp": { "__bigint__": "1729714521691249148" } + }, + { + "instructions": { "__bigint__": "2217840" }, + "method_name": "balance", + "timestamp": { "__bigint__": "1729714523840593552" } + }, + { + "instructions": { "__bigint__": "3613420" }, + "method_name": "account", + "timestamp": { "__bigint__": "1729714525750420766" } + }, + { + "instructions": { "__bigint__": "1653154" }, + "method_name": "accounts", + "timestamp": { "__bigint__": "1729714527857554646" } + }, + { + "instructions": { "__bigint__": "3562571" }, + "method_name": "transfer", + "timestamp": { "__bigint__": "1729714529874095831" } + }, + { + "instructions": { "__bigint__": "2213914" }, + "method_name": "balance", + "timestamp": { "__bigint__": "1729714531945517721" } + }, + { + "instructions": { "__bigint__": "3605228" }, + "method_name": "account", + "timestamp": { "__bigint__": "1729714533952535454" } + }, + { + "instructions": { "__bigint__": "2211079" }, + "method_name": "balance", + "timestamp": { "__bigint__": "1729714536032707509" } + }, + { + "instructions": { "__bigint__": "3609636" }, + "method_name": "account", + "timestamp": { "__bigint__": "1729714538024298815" } + }, + { + "instructions": { "__bigint__": "1651452" }, + "method_name": "accounts", + "timestamp": { "__bigint__": "1729714540130779019" } + }, + { + "instructions": { "__bigint__": "1622561" }, + "method_name": "trap", + "timestamp": { "__bigint__": "1729714542106354081" } + }, + { + "instructions": { "__bigint__": "2655331" }, + "method_name": "sendNotification", + "timestamp": { "__bigint__": "1729714544160196111" } + } + ] + } + }, + "canister2": { + "previous": { "version": "0.25.0", "benchmarks": [] }, + "current": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "2157380" }, + "method_name": "transfer", + "timestamp": { "__bigint__": "1729714529874095831" } + }, + { + "instructions": { "__bigint__": "1383243" }, + "method_name": "receiveNotification", + "timestamp": { "__bigint__": "1729714544160196111" } + } + ] + } + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/benchmarks.md b/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/benchmarks.md new file mode 100644 index 0000000000..2bf19e13c7 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/benchmarks.md @@ -0,0 +1,45 @@ +# Benchmarks for canister1 + +## Current benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | +| --- | ---------------- | ------------ | --------- | ------------- | ----------------- | +| 0 | balance | 2_296_025 | 1_508_410 | $0.0000020162 | $2.0162 | +| 1 | account | 3_635_289 | 2_044_115 | $0.0000027322 | $2.7322 | +| 2 | balance | 2_217_840 | 1_477_136 | $0.0000019744 | $1.9744 | +| 3 | account | 3_613_420 | 2_035_368 | $0.0000027205 | $2.7205 | +| 4 | accounts | 1_653_154 | 1_251_261 | $0.0000016724 | $1.6724 | +| 5 | transfer | 3_562_571 | 2_015_028 | $0.0000026933 | $2.6933 | +| 6 | balance | 2_213_914 | 1_475_565 | $0.0000019723 | $1.9723 | +| 7 | account | 3_605_228 | 2_032_091 | $0.0000027161 | $2.7161 | +| 8 | balance | 2_211_079 | 1_474_431 | $0.0000019707 | $1.9707 | +| 9 | account | 3_609_636 | 2_033_854 | $0.0000027185 | $2.7185 | +| 10 | accounts | 1_651_452 | 1_250_580 | $0.0000016715 | $1.6715 | +| 11 | trap | 1_622_561 | 1_239_024 | $0.0000016561 | $1.6561 | +| 12 | sendNotification | 2_655_331 | 1_652_132 | $0.0000022083 | $2.2083 | + +## Baseline benchmarks Azle version: 0.25.0 + +# Benchmarks for canister2 + +## Current benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | +| --- | ------------------- | ------------ | --------- | ------------- | ----------------- | +| 0 | transfer | 2_157_380 | 1_452_952 | $0.0000019420 | $1.9420 | +| 1 | receiveNotification | 1_383_243 | 1_143_297 | $0.0000015281 | $1.5281 | + +## Baseline benchmarks Azle version: 0.25.0 + +--- + +**Note on calculations:** + +- Cycles are calculated using the formula: base*fee + (per_instruction_fee * number*of_instructions) + (additional_fee_per_billion * floor(number_of_instructions / 1_billion)) +- Base fee: 590,000 cycles +- Per instruction fee: 0.4 cycles +- Additional fee: 400,000,000 cycles per billion instructions +- USD value is derived from the total cycles, where 1 trillion cycles = 1 XDR, and 1 XDR = $1.33661 (as of December 18, 2023) + +For the most up-to-date XDR to USD conversion rate, please refer to the [IMF website](https://www.imf.org/external/np/fin/data/rms_sdrv.aspx). +For the most current fee information, please check the [official documentation](https://internetcomputer.org/docs/current/developer-docs/gas-cost#execution). diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/test.ts index 27fe423e64..cb4eb828c6 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/test.ts @@ -5,16 +5,18 @@ import { getTests } from 'cross_canister_calls_end_to_end_test_functional_syntax import { createActor as createActorCanister1 } from './dfx_generated/canister1'; import { createActor as createActorCanister2 } from './dfx_generated/canister2'; -const canister1 = createActorCanister1(getCanisterId('canister1'), { +const canister1Name = 'canister1'; +const canister1 = createActorCanister1(getCanisterId(canister1Name), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -const canister2 = createActorCanister2(getCanisterId('canister2'), { +const canister2Name = 'canister2'; +const canister2 = createActorCanister2(getCanisterId(canister2Name), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(canister1, canister2)); +runTests(getTests(canister1, canister2), [canister1Name, canister2Name]); diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/cycles/test/test.ts index 900088be06..dcc4b2152e 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/cycles/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/cycles/test/test.ts @@ -7,14 +7,16 @@ import { getTests } from 'cycles_end_to_end_test_functional_syntax/test/tests'; import { createActor as createCyclesActor } from './dfx_generated/cycles'; import { createActor as createIntermediaryActor } from './dfx_generated/intermediary'; -const cyclesCanister = createCyclesActor(getCanisterId('cycles'), { +const cyclesCanisterName = 'cycles'; +const cyclesCanister = createCyclesActor(getCanisterId(cyclesCanisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); +const intermediaryCanisterName = 'intermediary'; const intermediaryCanister = createIntermediaryActor( - getCanisterId('intermediary'), + getCanisterId(intermediaryCanisterName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -22,4 +24,7 @@ const intermediaryCanister = createIntermediaryActor( } ); -runTests(getTests(cyclesCanister, intermediaryCanister)); +runTests(getTests(cyclesCanister, intermediaryCanister), [ + cyclesCanisterName, + intermediaryCanisterName +]); diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/date/test/test.ts index e87c0ceae4..3e1a160c6f 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/date/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/date/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'date_end_to_end_test_functional_syntax/test/tests'; import { createActor } from './dfx_generated/date'; -const dateCanister = createActor(getCanisterId('date'), { +const canisterName = 'date'; +const dateCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(dateCanister)); +runTests(getTests(dateCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/test.ts index 24ebd60c2f..4fdf9f7b0b 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/test.ts @@ -12,13 +12,11 @@ if (process.env.ETHEREUM_URL === undefined) { ); } -const ethereumJsonRpcCanister = createActor( - getCanisterId('ethereum_json_rpc'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'ethereum_json_rpc'; +const ethereumJsonRpcCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(ethereumJsonRpcCanister)); +runTests(getTests(ethereumJsonRpcCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/func_types/test/test.ts index 4e8af58ed7..bc3c2aeedb 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/func_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/func_types/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'func_types_end_to_end_test_functional_syntax/test/test import { createActor } from './dfx_generated/func_types'; -const funcTypesCanister = createActor(getCanisterId('func_types'), { +const canisterName = 'func_types'; +const funcTypesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(funcTypesCanister)); +runTests(getTests(funcTypesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/test.ts index 6680b29950..b16290d066 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/test.ts @@ -5,8 +5,9 @@ import { getTests } from 'heartbeat_end_to_end_test_functional_syntax/test/tests import { createActor as createActorHeartbeatAsync } from './dfx_generated/heartbeat_async'; import { createActor as createActorHeartbeatSync } from './dfx_generated/heartbeat_sync'; +const heartbeatAsyncName = 'heartbeat_async'; const heartbeatAsyncCanister = createActorHeartbeatAsync( - getCanisterId('heartbeat_async'), + getCanisterId(heartbeatAsyncName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -14,8 +15,9 @@ const heartbeatAsyncCanister = createActorHeartbeatAsync( } ); +const heartbeatSyncName = 'heartbeat_sync'; const heartbeatSyncCanister = createActorHeartbeatSync( - getCanisterId('heartbeat_sync'), + getCanisterId(heartbeatSyncName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -23,4 +25,7 @@ const heartbeatSyncCanister = createActorHeartbeatSync( } ); -runTests(getTests(heartbeatAsyncCanister, heartbeatSyncCanister)); +runTests(getTests(heartbeatAsyncCanister, heartbeatSyncCanister), [ + heartbeatAsyncName, + heartbeatSyncName +]); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/test.ts index 40bf30e43f..7fbdf49181 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'ic_api_end_to_end_test_functional_syntax/test/tests'; import { createActor } from './dfx_generated/ic_api'; -const icApiCanister = createActor(getCanisterId('ic_api'), { +const canisterName = 'ic_api'; +const icApiCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(icApiCanister as any)); +runTests(getTests(icApiCanister as any), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/icrc/test/test.ts index 57026140cd..68c3824468 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/icrc/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/icrc/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'icrc_end_to_end_test_functional_syntax/test/tests'; import { createActor } from '../test/dfx_generated/proxy'; -const proxyCanister = createActor(getCanisterId('proxy'), { +const canisterName = 'proxy'; +const proxyCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(proxyCanister)); +runTests(getTests(proxyCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/imports/test/test.ts index 7a2fced99a..5a9742c677 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/imports/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/imports/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'imports_end_to_end_test_functional_syntax/test/tests'; import { createActor } from '../test/dfx_generated/imports'; -const importsCanister = createActor(getCanisterId('imports'), { +const canisterName = 'imports'; +const importsCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(importsCanister)); +runTests(getTests(importsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/init/test/test.ts index a31a392466..ad4895dc65 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/init/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/init/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'init_end_to_end_test_functional_syntax/test/tests'; import { createActor } from './dfx_generated/init'; -const initCanister = createActor(getCanisterId('init'), { +const canisterName = 'init'; +const initCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(initCanister)); +runTests(getTests(initCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/inspect_message/package-lock.json index dc9500e3bd..f810fce2d1 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/package-lock.json +++ b/tests/end_to_end/candid_rpc/class_syntax/inspect_message/package-lock.json @@ -17,6 +17,7 @@ } }, "../../functional_syntax/inspect_message": { + "name": "inspect_message_end_to_end_test_functional_syntax", "dev": true, "dependencies": { "azle": "0.24.1" diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/src/index.ts b/tests/end_to_end/candid_rpc/class_syntax/inspect_message/src/index.ts index 8788bb16bc..a979318f4e 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/src/index.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/inspect_message/src/index.ts @@ -5,7 +5,10 @@ export default class { inspectMessage(): void { console.info('inspectMessage called'); - if (methodName() === 'accessible') { + if ( + methodName() === 'accessible' || + methodName() === '_azle_get_benchmarks' + ) { acceptMessage(); return; } diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/test.ts index 3ea68d2476..ef0cdb72fd 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'inspect_message_end_to_end_test_functional_syntax/test import { createActor } from './dfx_generated/inspect_message'; -const inspectMessageCanister = createActor(getCanisterId('inspect_message'), { +const canisterName = 'inspect_message'; +const inspectMessageCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(inspectMessageCanister)); +runTests(getTests(inspectMessageCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/test.ts index 00f8c2af3a..ac5e696d05 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'key_value_store_end_to_end_test_functional_syntax/test import { createActor } from './dfx_generated/key_value_store'; -const keyValueStoreCanister = createActor(getCanisterId('key_value_store'), { +const canisterName = 'key_value_store'; +const keyValueStoreCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(keyValueStoreCanister)); +runTests(getTests(keyValueStoreCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/test.ts index 88da2a398b..271094e127 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/test.ts @@ -7,10 +7,11 @@ import { getTests } from 'ledger_canister_end_to_end_test_functional_syntax/test import { createActor } from '../test/dfx_generated/ledger_canister'; -const ledgerCanister = createActor(getCanisterId('ledger_canister'), { +const canisterName = 'ledger_canister'; +const ledgerCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(ledgerCanister)); +runTests(getTests(ledgerCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/test.ts index 73e38536ae..c9542f959d 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'list_of_lists_end_to_end_test_functional_syntax/test/t import { createActor } from '../dfx_generated/list_of_lists'; -const listOfListsCanister = createActor(getCanisterId('list_of_lists'), { +const canisterName = 'list_of_lists'; +const listOfListsCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(listOfListsCanister)); +runTests(getTests(listOfListsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/test.ts index 0db22d9b55..f1ac058034 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/test.ts @@ -5,11 +5,10 @@ import { getTests } from 'management_canister_end_to_end_test_functional_syntax/ import { createActor } from '../test/dfx_generated/management_canister'; const canisterName = 'management_canister'; - const managementCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(managementCanister)); +runTests(getTests(managementCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/test.ts index 6664eb4b18..e68828f914 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'manual_reply_end_to_end_test_functional_syntax/test/te import { createActor } from './dfx_generated/manual_reply'; -const manualReplyCanister = createActor(getCanisterId('manual_reply'), { +const canisterName = 'manual_reply'; +const manualReplyCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(manualReplyCanister)); +runTests(getTests(manualReplyCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/test.ts index 5a9514548a..8754d27ab7 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/test.ts @@ -5,10 +5,11 @@ import { getTests } from 'calc_end_to_end_test_functional_syntax/test/tests'; // @ts-ignore import { createActor } from './dfx_generated/calc'; -const calcCanister = createActor(getCanisterId('calc'), { +const canisterName = 'calc'; +const calcCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(calcCanister)); +runTests(getTests(calcCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/test.ts index 22201eea63..d742fb97d5 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/test.ts @@ -5,10 +5,11 @@ import { getTests } from 'counter_end_to_end_test_functional_syntax/test/tests'; // @ts-ignore import { createActor } from './dfx_generated/counter'; -const counterCanister = createActor(getCanisterId('counter'), { +const canisterName = 'counter'; +const counterCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(counterCanister)); +runTests(getTests(counterCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/test.ts index 5a23046d68..088b17446e 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/test.ts @@ -5,10 +5,11 @@ import { getTests } from 'echo_end_to_end_test_functional_syntax/test/tests'; // @ts-ignore import { createActor } from './dfx_generated/echo'; -const echoCanister = createActor(getCanisterId('echo'), { +const canisterName = 'echo'; +const echoCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(echoCanister)); +runTests(getTests(echoCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/test.ts index 13b2144c60..232451d46e 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/test.ts @@ -5,10 +5,11 @@ import { getTests } from 'factorial_end_to_end_test_functional_syntax/test/tests // @ts-ignore import { createActor } from './dfx_generated/factorial'; -const factorialCanister = createActor(getCanisterId('factorial'), { +const canisterName = 'factorial'; +const factorialCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(factorialCanister)); +runTests(getTests(factorialCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/test.ts index 9bd2b45606..33968c50fd 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/test.ts @@ -5,10 +5,11 @@ import { getTests } from 'hello-world_end_to_end_test_functional_syntax/test/tes // @ts-ignore import { createActor } from './dfx_generated/hello_world'; -const helloWorldCanister = createActor(getCanisterId('hello_world'), { +const canisterName = 'hello_world'; +const helloWorldCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(helloWorldCanister)); +runTests(getTests(helloWorldCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/test.ts index 282acb79d6..cd9b5853ba 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/test.ts @@ -5,10 +5,11 @@ import { getTests } from 'hello_end_to_end_test_functional_syntax/test/tests'; // @ts-ignore import { createActor } from '../dfx_generated/hello'; -const helloCanister = createActor(getCanisterId('hello'), { +const canisterName = 'hello'; +const helloCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(helloCanister)); +runTests(getTests(helloCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/test.ts index ab57459241..e7c7c7d76e 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/test.ts @@ -5,10 +5,11 @@ import { getTests } from 'minimal-counter-dapp_end_to_end_test_functional_syntax // @ts-ignore import { createActor } from '../src/declarations/minimal_dapp'; -const counterCanister = createActor(getCanisterId('minimal_dapp'), { +const canisterName = 'minimal_dapp'; +const counterCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(counterCanister)); +runTests(getTests(counterCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/test.ts index e704300eec..49bd0c7651 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/test.ts @@ -4,13 +4,11 @@ import { getTests } from 'persistent-storage_end_to_end_test_functional_syntax/t import { createActor } from './dfx_generated/persistent_storage'; -const persistentStorageCanister = createActor( - getCanisterId('persistent_storage'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'persistent_storage'; +const persistentStorageCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(persistentStorageCanister)); +runTests(getTests(persistentStorageCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/test.ts index ebbfbf78fb..911fc20b3e 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'phone-book_end_to_end_test_functional_syntax/test/test import { createActor } from '../src/declarations/phone_book'; -const phoneBookCanister = createActor(getCanisterId('phone_book'), { +const canisterName = 'phone_book'; +const phoneBookCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(phoneBookCanister)); +runTests(getTests(phoneBookCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/test.ts index 7251839aa4..02e83b6f24 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/test.ts @@ -5,10 +5,11 @@ import { getTests } from 'quicksort_end_to_end_test_functional_syntax/test/tests // @ts-ignore import { createActor } from './dfx_generated/quicksort'; -const quicksortCanister = createActor(getCanisterId('quicksort'), { +const canisterName = 'quicksort'; +const quicksortCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(quicksortCanister)); +runTests(getTests(quicksortCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/test.ts index 8604ae8f62..47bd899851 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/test.ts @@ -5,10 +5,11 @@ import { getTests } from 'simple-to-do_end_to_end_test_functional_syntax/test/te // @ts-ignore import { createActor } from './dfx_generated/simple_to_do'; -const todoCanister = createActor(getCanisterId('simple_to_do'), { +const canisterName = 'simple_to_do'; +const todoCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(todoCanister)); +runTests(getTests(todoCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/package-lock.json index 8e9bc7c121..b196b8b805 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/package-lock.json +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/package-lock.json @@ -36,6 +36,7 @@ } }, "../../../functional_syntax/motoko_examples/superheroes": { + "name": "superheroes_end_to_end_test_functional_syntax", "dev": true, "dependencies": { "azle": "0.24.1", diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/test.ts index 7d30819963..e55cf8ac8c 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'superheroes_end_to_end_test_functional_syntax/test/tes import { createActor } from '../src/declarations'; -const superheroesCanister = createActor(getCanisterId('superheroes'), { +const canisterName = 'superheroes'; +const superheroesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(superheroesCanister)); +runTests(getTests(superheroesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/test.ts index 5feb248604..bf24e19b4f 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/test.ts @@ -4,7 +4,8 @@ import { getTests } from 'threshold_ecdsa_end_to_end_test_functional_syntax/test import { createActor } from './dfx_generated/threshold_ecdsa'; -const tEcdsaCanister = createActor(getCanisterId('threshold_ecdsa'), { +const canisterName = 'threshold_ecdsa'; +const tEcdsaCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } @@ -14,4 +15,4 @@ const tEcdsaCanister = createActor(getCanisterId('threshold_ecdsa'), { // any tecdsa requests, so we are skipping these tests until we can think of // an elegant way to run these tests only after the replica is ready to process // them, when we are no longer skipping the tests we can remove the dummy test -runTests(getTests(tEcdsaCanister)); +runTests(getTests(tEcdsaCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/package-lock.json index 6cf5554d02..a9f6770b95 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/package-lock.json +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/package-lock.json @@ -18,6 +18,7 @@ } }, "../../../functional_syntax/motoko_examples/whoami": { + "name": "whoami_end_to_end_test_functional_syntax", "dev": true, "dependencies": { "azle": "0.24.1" diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/test.ts index 3a58c58d2e..83e2967b6e 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/test.ts @@ -7,6 +7,7 @@ import { import { createActor } from './dfx_generated/whoami'; +const canisterName = 'whoami'; const whoamiCanister = createActor(canisterId, { agentOptions: { host: 'http://127.0.0.1:8000', @@ -14,4 +15,4 @@ const whoamiCanister = createActor(canisterId, { } }); -runTests(getTests(whoamiCanister, 'whoami')); +runTests(getTests(whoamiCanister, canisterName), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/benchmarks.json b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/benchmarks.json new file mode 100644 index 0000000000..fd9b6f972d --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/benchmarks.json @@ -0,0 +1,28 @@ +{ + "canister1": { + "previous": { "version": "0.25.0", "benchmarks": [] }, + "current": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "1604051" }, + "method_name": "sendNotification", + "timestamp": { "__bigint__": "1729714463172455556" } + } + ] + } + }, + "canister2": { + "previous": { "version": "0.25.0", "benchmarks": [] }, + "current": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "907281" }, + "method_name": "receiveNotification", + "timestamp": { "__bigint__": "1729714463172455556" } + } + ] + } + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/benchmarks.md b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/benchmarks.md new file mode 100644 index 0000000000..f52cb8425b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/benchmarks.md @@ -0,0 +1,32 @@ +# Benchmarks for canister1 + +## Current benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | +| --- | ---------------- | ------------ | --------- | ------------- | ----------------- | +| 0 | sendNotification | 1_604_051 | 1_231_620 | $0.0000016462 | $1.6462 | + +## Baseline benchmarks Azle version: 0.25.0 + +# Benchmarks for canister2 + +## Current benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | +| --- | ------------------- | ------------ | ------- | ------------- | ----------------- | +| 0 | receiveNotification | 907_281 | 952_912 | $0.0000012737 | $1.2737 | + +## Baseline benchmarks Azle version: 0.25.0 + +--- + +**Note on calculations:** + +- Cycles are calculated using the formula: base*fee + (per_instruction_fee * number*of_instructions) + (additional_fee_per_billion * floor(number_of_instructions / 1_billion)) +- Base fee: 590,000 cycles +- Per instruction fee: 0.4 cycles +- Additional fee: 400,000,000 cycles per billion instructions +- USD value is derived from the total cycles, where 1 trillion cycles = 1 XDR, and 1 XDR = $1.33661 (as of December 18, 2023) + +For the most up-to-date XDR to USD conversion rate, please refer to the [IMF website](https://www.imf.org/external/np/fin/data/rms_sdrv.aspx). +For the most current fee information, please check the [official documentation](https://internetcomputer.org/docs/current/developer-docs/gas-cost#execution). diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/package-lock.json index e99a8770ab..d6d147e4e5 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/package-lock.json +++ b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/package-lock.json @@ -34,7 +34,7 @@ "name": "notify_raw_end_to_end_test_functional_syntax", "dev": true, "dependencies": { - "azle": "0.24.0" + "azle": "0.24.1" }, "devDependencies": { "@dfinity/agent": "0.11.1", @@ -9921,7 +9921,7 @@ "version": "file:../../functional_syntax/notify_raw", "requires": { "@dfinity/agent": "0.11.1", - "azle": "0.24.0", + "azle": "0.24.1", "jest": "^29.7.0", "ts-jest": "^29.1.5", "tsx": "^4.15.7", diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/test.ts index 7b94bd256c..5197fb1ca1 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/test.ts @@ -5,16 +5,19 @@ import { getTests } from 'notify_raw_end_to_end_test_functional_syntax/test/test import { createActor as createActorCanister1 } from './dfx_generated/canister1'; import { createActor as createActorCanister2 } from './dfx_generated/canister2'; -const canister1 = createActorCanister1(getCanisterId('canister1'), { +const canister1Name = 'canister1'; +const canister2Name = 'canister2'; + +const canister1 = createActorCanister1(getCanisterId(canister1Name), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -const canister2 = createActorCanister2(getCanisterId('canister2'), { +const canister2 = createActorCanister2(getCanisterId(canister2Name), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(canister1, canister2)); +runTests(getTests(canister1, canister2), [canister1Name, canister2Name]); diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/null_example/test/test.ts index 9b1806e1b8..36566fe41f 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/null_example/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/null_example/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'null_example_end_to_end_test_functional_syntax/test/te import { createActor } from './dfx_generated/null_example'; -const nullExampleCanister = createActor(getCanisterId('null_example'), { +const canisterName = 'null_example'; +const nullExampleCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(nullExampleCanister)); +runTests(getTests(nullExampleCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/test.ts index 2ec6370b7a..0929c7e908 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'optional_types_end_to_end_test_functional_syntax/test/ import { createActor } from '../test/dfx_generated/optional_types'; -const optionalTypesCanister = createActor(getCanisterId('optional_types'), { +const canisterName = 'optional_types'; +const optionalTypesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(optionalTypesCanister)); +runTests(getTests(optionalTypesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/test.ts index 09b5b4a328..9406f601d4 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/test.ts @@ -4,13 +4,11 @@ import { getTests } from 'outgoing_http_requests_end_to_end_test_functional_synt import { createActor } from './dfx_generated/outgoing_http_requests'; -const outgoingHttpRequestsCanister = createActor( - getCanisterId('outgoing_http_requests'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'outgoing_http_requests'; +const outgoingHttpRequestsCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(outgoingHttpRequestsCanister)); +runTests(getTests(outgoingHttpRequestsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/test.ts index db56311ca0..fcad85d186 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/test.ts @@ -4,13 +4,11 @@ import { getTests } from 'pre_and_post_upgrade_end_to_end_test_functional_syntax import { createActor } from './dfx_generated/pre_and_post_upgrade'; -const preAndPostUpgradeCanister = createActor( - getCanisterId('pre_and_post_upgrade'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'pre_and_post_upgrade'; +const preAndPostUpgradeCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(preAndPostUpgradeCanister)); +runTests(getTests(preAndPostUpgradeCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/test.ts index 5bda6eeb3c..17806b4343 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'primitive_types_end_to_end_test_functional_syntax/test import { createActor } from '../test/dfx_generated/primitive_types'; -const primitiveTypesCanister = createActor(getCanisterId('primitive_types'), { +const canisterName = 'primitive_types'; +const primitiveTypesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(primitiveTypesCanister)); +runTests(getTests(primitiveTypesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/principal/test/test.ts index 20acf1d867..9eb8da1f70 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/principal/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/principal/test/test.ts @@ -2,12 +2,13 @@ import { getCanisterId } from 'azle/dfx'; import { runTests } from 'azle/test'; import { getTests } from 'principal_end_to_end_test_functional_syntax/test/tests'; -import { createActor } from '../test/dfx_generated/principal'; +import { createActor } from './dfx_generated/principal'; -const principalCanister = createActor(getCanisterId('principal'), { +const canisterName = 'principal'; +const principalCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(principalCanister)); +runTests(getTests(principalCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/query/test/test.ts index bb5b49d66b..5e944f5776 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/query/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/query/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'query_end_to_end_test_functional_syntax/test/tests'; import { createActor } from './dfx_generated/query'; -const queryCanister = createActor(getCanisterId('query'), { +const canisterName = 'query'; +const queryCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(queryCanister)); +runTests(getTests(queryCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/randomness/test/test.ts index c06f5c80fb..87ff4332e5 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/randomness/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/randomness/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'randomness_end_to_end_test_functional_syntax/test/test import { createActor } from './dfx_generated/randomness'; -const randomnessCanister = createActor(getCanisterId('randomness'), { +const canisterName = 'randomness'; +const randomnessCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(randomnessCanister)); +runTests(getTests(randomnessCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/recursion/test/test.ts index 5daa289376..432b8caefd 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/recursion/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/recursion/test/test.ts @@ -11,14 +11,17 @@ import { createActor } from './dfx_generated/recursion'; // @ts-ignore import { createActor as createRecursiveActor } from './dfx_generated/recursive_canister'; -const recursionCanister = createActor(getCanisterId('recursion'), { +const canisterName = 'recursion'; +const recursiveCanisterName = 'recursive_canister'; + +const recursionCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); const recursiveCanister = createRecursiveActor( - getCanisterId('recursive_canister'), + getCanisterId(recursiveCanisterName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -32,4 +35,4 @@ runTests(() => { 'getRecursiveCanisterTests', getRecursiveCanisterTests(recursiveCanister) ); -}); +}, [canisterName, recursiveCanisterName]); diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/rejections/test/test.ts index 3092846bc8..04e1bbfc16 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/rejections/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/rejections/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'rejections_end_to_end_test_functional_syntax/test/test import { createActor } from './dfx_generated/rejections'; -const rejectionsCanister = createActor(getCanisterId('rejections'), { +const canisterName = 'rejections'; +const rejectionsCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(rejectionsCanister)); +runTests(getTests(rejectionsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/test.ts index 2a702b3192..0f8686b7df 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'simple_erc20_end_to_end_test_functional_syntax/test/te import { createActor } from './dfx_generated/simple_erc20'; -const simpleErc20Canister = createActor(getCanisterId('simple_erc20'), { +const canisterName = 'simple_erc20'; +const simpleErc20Canister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(simpleErc20Canister)); +runTests(getTests(simpleErc20Canister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/test.ts index 205ef36c8b..dcf9cb7f20 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/test.ts @@ -4,13 +4,11 @@ import { getTests } from 'simple_user_accounts_end_to_end_test_functional_syntax import { createActor } from './dfx_generated/simple_user_accounts'; -const simpleUserAccountsCanister = createActor( - getCanisterId('simple_user_accounts'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'simple_user_accounts'; +const simpleUserAccountsCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(simpleUserAccountsCanister)); +runTests(getTests(simpleUserAccountsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/test.ts index d14a1b4e05..2db578f973 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/test.ts @@ -4,8 +4,9 @@ import { getTests } from 'stable_b_tree_map_instruction_threshold_end_to_end_tes import { createActor } from './dfx_generated/stable_b_tree_map_instruction_threshold'; +const canisterName = 'stable_b_tree_map_instruction_threshold'; const stableBTreeMapInstructionThresholdCanister = createActor( - getCanisterId('stable_b_tree_map_instruction_threshold'), + getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -13,4 +14,4 @@ const stableBTreeMapInstructionThresholdCanister = createActor( } ); -runTests(getTests(stableBTreeMapInstructionThresholdCanister)); +runTests(getTests(stableBTreeMapInstructionThresholdCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/test.ts index 3e85a7a911..fa6d2c4ab9 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/test.ts @@ -7,8 +7,10 @@ import { createActor as createActorCanister2 } from './dfx_generated/canister2'; import { createActor as createActorCanister3 } from './dfx_generated/canister3'; import { _SERVICE } from './dfx_generated/canister3/canister3.did'; -const stableStructuresCanister_1 = createActorCanister1( - getCanisterId('canister1'), +const stableStructuresCanister1Name = 'canister1'; + +const stableStructuresCanister1 = createActorCanister1( + getCanisterId(stableStructuresCanister1Name), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -16,16 +18,18 @@ const stableStructuresCanister_1 = createActorCanister1( } ); -const stableStructuresCanister_2 = createActorCanister2( - getCanisterId('canister2'), +const stableStructuresCanister2Name = 'canister2'; +const stableStructuresCanister2 = createActorCanister2( + getCanisterId(stableStructuresCanister2Name), { agentOptions: { host: 'http://127.0.0.1:8000' } } ); -const stableStructuresCanister_3 = createActorCanister3( - getCanisterId('canister3'), +const stableStructuresCanister3Name = 'canister3'; +const stableStructuresCanister3 = createActorCanister3( + getCanisterId(stableStructuresCanister3Name), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -35,8 +39,13 @@ const stableStructuresCanister_3 = createActorCanister3( runTests( getTests( - stableStructuresCanister_1, - stableStructuresCanister_2, - stableStructuresCanister_3 - ) + stableStructuresCanister1, + stableStructuresCanister2, + stableStructuresCanister3 + ), + [ + stableStructuresCanister1Name, + stableStructuresCanister2Name, + stableStructuresCanister3Name + ] ); diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/timers/test/test.ts index 0bb0daa2a3..3dfdcf7e21 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/timers/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/timers/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'timers_end_to_end_test_functional_syntax/test/tests'; import { createActor } from './dfx_generated/timers'; -const timersCanister = createActor(getCanisterId('timers'), { +const canisterName = 'timers'; +const timersCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(timersCanister)); +runTests(getTests(timersCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/test.ts index ec752d3d32..d381cf0014 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'tuple_types_end_to_end_test_functional_syntax/test/tes import { createActor } from './dfx_generated/tuple_types'; -const tupleTypesCanister = createActor(getCanisterId('tuple_types'), { +const canisterName = 'tuple_types'; +const tupleTypesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(tupleTypesCanister)); +runTests(getTests(tupleTypesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/update/test/test.ts index 57d8851c76..ef9f2c0852 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/update/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/update/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'update_end_to_end_test_functional_syntax/test/tests'; import { createActor } from './dfx_generated/update'; -const updateCanister = createActor(getCanisterId('update'), { +const canisterName = 'update'; +const updateCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(updateCanister)); +runTests(getTests(updateCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/test.ts index 99b087f65d..bcd3417f34 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/test.ts +++ b/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/test.ts @@ -4,10 +4,11 @@ import { getTests } from 'vanilla_js_end_to_end_test_functional_syntax/test/test import { createActor } from './dfx_generated/vanilla_js'; -const vanillaJsCanister = createActor(getCanisterId('vanilla_js'), { +const canisterName = 'vanilla_js'; +const vanillaJsCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(vanillaJsCanister)); +runTests(getTests(vanillaJsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/async_await/test/test.ts index 9593c208c1..c6cbac4ddf 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/async_await/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/async_await/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/async_await'; import { getTests } from './tests'; -const asyncAwaitCanister = createActor(getCanisterId('async_await'), { +const canisterName = 'async_await'; +const asyncAwaitCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(asyncAwaitCanister)); +runTests(getTests(asyncAwaitCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/test.ts index a9ac1b6412..e211d1a317 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/audio_recorder'; import { getTests } from './tests'; -const audio_recorder_canister = createActor(getCanisterId('audio_recorder'), { +const canisterName = 'audio_recorder'; +const audio_recorder_canister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(audio_recorder_canister)); +runTests(getTests(audio_recorder_canister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/test.ts index ff6e92a873..9df111cc82 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/test.ts @@ -6,7 +6,8 @@ import { createActor } from './dfx_generated/bitcoin'; import { BitcoinDaemon, startBitcoinDaemon } from './setup'; import { getTests } from './tests'; -const bitcoinCanister = createActor(getCanisterId('bitcoin'), { +const canisterName = 'bitcoin'; +const bitcoinCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } @@ -27,4 +28,4 @@ runTests(() => { 'runs bitcoin tests while bitcoin daemon is running', getTests(bitcoinCanister) ); -}); +}, canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/test.ts index 3789cd5415..862209f41f 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/blob_array'; import { getTests } from './tests'; -const blobCanister = createActor(getCanisterId('blob_array'), { +const canisterName = 'blob_array'; +const blobCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(blobCanister)); +runTests(getTests(blobCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/test.ts index 7da71ecc37..4ae66744f2 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/bytes_canister'; import { getTests } from './tests'; -const bytesCanister = createActor(getCanisterId('bytes_canister'), { +const canisterName = 'bytes_canister'; +const bytesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(bytesCanister)); +runTests(getTests(bytesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/test.ts index f19a1e1b0f..43b6ede863 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/call_raw'; import { getTests } from './tests'; -const callRawCanister = createActor(getCanisterId('call_raw'), { +const canisterName = 'call_raw'; +const callRawCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(callRawCanister)); +runTests(getTests(callRawCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/test.ts index a78ce832d6..728a42fe9f 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/candid_encoding'; import { getTests } from './tests'; -const candidEncodingCanister = createActor(getCanisterId('candid_encoding'), { +const canisterName = 'candid_encoding'; +const candidEncodingCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(candidEncodingCanister)); +runTests(getTests(candidEncodingCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/test.ts index 9a644c1ebc..42ee019ce0 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/candid_keywords'; import { getTests } from './tests'; -const queryCanister = createActor(getCanisterId('candid_keywords'), { +const canisterName = 'candid_keywords'; +const queryCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(queryCanister)); +runTests(getTests(queryCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/canister/test/test.ts index 6b2458e4fb..313796dbe8 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/canister/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/canister/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/canister'; import { getTests } from './tests'; -const canister = createActor(getCanisterId('canister'), { +const canisterName = 'canister'; +const canister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(canister)); +runTests(getTests(canister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/test.ts index 851499ccc7..b0e6281d53 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/test.ts @@ -20,6 +20,8 @@ export type Config = { caller: string; }; +const canisterName = 'wallet_backend'; + const configs = [createConfig(0), createConfig(1)]; runTests(() => { @@ -37,7 +39,7 @@ runTests(() => { 'run ckbtc tests while bitcoin daemon is running', getTests(configs) ); -}); +}, canisterName); async function startBitcoinDaemon(): Promise { if (existsSync(`.bitcoin/regtest`)) { @@ -67,7 +69,7 @@ async function startBitcoinDaemon(): Promise { } function createConfig(id: number): Config { - const walletBackendCanisterId = getCanisterId('wallet_backend'); + const walletBackendCanisterId = getCanisterId(canisterName); const identity = createIdentity(id); const canister = createActor(walletBackendCanisterId, { agentOptions: { diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/test.ts index ec786b1d77..fb088dcd0f 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/test.ts @@ -6,13 +6,18 @@ import { createActor as createComplexActor } from './dfx_generated/complex_init' import { createActor as createRecActor } from './dfx_generated/rec_init'; import { getRecTests, getTests } from './tests'; -const complexInitCanister = createComplexActor(getCanisterId('complex_init'), { - agentOptions: { - host: 'http://127.0.0.1:8000' +const complexInitCanisterName = 'complex_init'; +const complexInitCanister = createComplexActor( + getCanisterId(complexInitCanisterName), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } } -}); +); -const recInitCanister = createRecActor(getCanisterId('rec_init'), { +const recInitCanisterName = 'rec_init'; +const recInitCanister = createRecActor(getCanisterId(recInitCanisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } @@ -21,4 +26,4 @@ const recInitCanister = createRecActor(getCanisterId('rec_init'), { runTests(() => { describe('complex init canister', getTests(complexInitCanister)); describe('rec init canister', getRecTests(recInitCanister)); -}); +}, [complexInitCanisterName, recInitCanisterName]); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/test.ts index c7498f0ac4..c72c57a28c 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/test.ts @@ -6,10 +6,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/complex_types'; import { getTests } from './tests'; -const complexTypesCanister = createActor(getCanisterId('complex_types'), { +const canisterName = 'complex_types'; +const complexTypesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(complexTypesCanister)); +runTests(getTests(complexTypesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/test.ts index 887d464228..2007809afa 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/canister1'; import { getTests } from './tests'; -const canister1 = createActor(getCanisterId('canister1'), { +const canisterName = 'canister1'; +const canister1 = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(canister1)); +runTests(getTests(canister1), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/counter/test/test.ts index 84ee3db5e2..7213f1205f 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/counter/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/counter/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/counter'; import { getTests } from './tests'; -const counterCanister = createActor(getCanisterId('counter'), { +const canisterName = 'counter'; +const counterCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(counterCanister)); +runTests(getTests(counterCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/test.ts index b5e38aeef4..0b2f83d382 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/test.ts @@ -5,16 +5,18 @@ import { createActor as createActorCanister1 } from './dfx_generated/canister1'; import { createActor as createActorCanister2 } from './dfx_generated/canister2'; import { getTests } from './tests'; -const canister1 = createActorCanister1(getCanisterId('canister1'), { +const canister1Name = 'canister1'; +const canister1 = createActorCanister1(getCanisterId(canister1Name), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -const canister2 = createActorCanister2(getCanisterId('canister2'), { +const canister2Name = 'canister2'; +const canister2 = createActorCanister2(getCanisterId(canister2Name), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(canister1, canister2)); +runTests(getTests(canister1, canister2), [canister1Name, canister2Name]); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/cycles/test/test.ts index 52e5113d99..e6ef23fffa 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/cycles/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/cycles/test/test.ts @@ -7,14 +7,16 @@ import { createActor as createCyclesActor } from './dfx_generated/cycles'; import { createActor as createIntermediaryActor } from './dfx_generated/intermediary'; import { getTests } from './tests'; -const cyclesCanister = createCyclesActor(getCanisterId('cycles'), { +const cyclesCanisterName = 'cycles'; +const cyclesCanister = createCyclesActor(getCanisterId(cyclesCanisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); +const intermediaryCanisterName = 'intermediary'; const intermediaryCanister = createIntermediaryActor( - getCanisterId('intermediary'), + getCanisterId(intermediaryCanisterName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -22,4 +24,7 @@ const intermediaryCanister = createIntermediaryActor( } ); -runTests(getTests(cyclesCanister, intermediaryCanister)); +runTests(getTests(cyclesCanister, intermediaryCanister), [ + cyclesCanisterName, + intermediaryCanisterName +]); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/date/test/test.ts index 085d2e0a5f..22a8cd00b3 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/date/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/date/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/date'; import { getTests } from './tests'; -const dateCanister = createActor(getCanisterId('date'), { +const canisterName = 'date'; +const dateCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(dateCanister)); +runTests(getTests(dateCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/test.ts index 4b40273a6a..3e01de827c 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/test.ts @@ -12,13 +12,11 @@ if (process.env.ETHEREUM_URL === undefined) { ); } -const ethereumJsonRpcCanister = createActor( - getCanisterId('ethereum_json_rpc'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'ethereum_json_rpc'; +const ethereumJsonRpcCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(ethereumJsonRpcCanister)); +runTests(getTests(ethereumJsonRpcCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/func_types/test/test.ts index f7624ce170..847bc98e4b 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/func_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/func_types/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/func_types'; import { getTests } from './tests'; -const func_types_canister = createActor(getCanisterId('func_types'), { +const canisterName = 'func_types'; +const func_types_canister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(func_types_canister)); +runTests(getTests(func_types_canister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/test.ts index c9e7713607..3848c3c1f0 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/test.ts @@ -5,8 +5,9 @@ import { createActor as createActorHeartbeatAsync } from './dfx_generated/heartb import { createActor as createActorHeartbeatSync } from './dfx_generated/heartbeat_sync'; import { getTests } from './tests'; +const heartbeatAsyncName = 'heartbeat_async'; const heartbeatAsyncCanister = createActorHeartbeatAsync( - getCanisterId('heartbeat_async'), + getCanisterId(heartbeatAsyncName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -14,8 +15,9 @@ const heartbeatAsyncCanister = createActorHeartbeatAsync( } ); +const heartbeatSyncName = 'heartbeat_sync'; const heartbeatSyncCanister = createActorHeartbeatSync( - getCanisterId('heartbeat_sync'), + getCanisterId(heartbeatSyncName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -23,4 +25,7 @@ const heartbeatSyncCanister = createActorHeartbeatSync( } ); -runTests(getTests(heartbeatAsyncCanister, heartbeatSyncCanister)); +runTests(getTests(heartbeatAsyncCanister, heartbeatSyncCanister), [ + heartbeatAsyncName, + heartbeatSyncName +]); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/test.ts index 1f4572e798..2bb82144a9 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/ic_api'; import { getTests } from './tests'; -const icApiCanister = createActor(getCanisterId('ic_api'), { +const canisterName = 'ic_api'; +const icApiCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(icApiCanister as any)); +runTests(getTests(icApiCanister as any), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/icrc/test/test.ts index b63a04dcca..e5f202365f 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/icrc/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/icrc/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/proxy'; import { getTests } from './tests'; -const proxyCanister = createActor(getCanisterId('proxy'), { +const canisterName = 'proxy'; +const proxyCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(proxyCanister)); +runTests(getTests(proxyCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/imports/test/test.ts index 1cd96c23ca..ee1f7d84d7 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/imports/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/imports/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/imports'; import { getTests } from './tests'; -const importsCanister = createActor(getCanisterId('imports'), { +const canisterName = 'imports'; +const importsCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(importsCanister)); +runTests(getTests(importsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/init/test/test.ts index 5c39a46a60..7bf7e28aa9 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/init/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/init/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/init'; import { getTests } from './tests'; -const init_canister = createActor(getCanisterId('init'), { +const canisterName = 'init'; +const init_canister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(init_canister)); +runTests(getTests(init_canister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/test.ts index 5a8814061b..13c8a87825 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/inspect_message'; import { getTests } from './tests'; -const inspectMessageCanister = createActor(getCanisterId('inspect_message'), { +const canisterName = 'inspect_message'; +const inspectMessageCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(inspectMessageCanister)); +runTests(getTests(inspectMessageCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/test.ts index 587cf3cd57..95e3ee034b 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/key_value_store'; import { getTests } from './tests'; -const keyValueStoreCanister = createActor(getCanisterId('key_value_store'), { +const canisterName = 'key_value_store'; +const keyValueStoreCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(keyValueStoreCanister)); +runTests(getTests(keyValueStoreCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/test.ts index 25c4de6d19..b90a5b6515 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/test.ts @@ -7,10 +7,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/ledger_canister'; import { getTests } from './tests'; -const ledgerCanister = createActor(getCanisterId('ledger_canister'), { +const canisterName = 'ledger_canister'; +const ledgerCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(ledgerCanister)); +runTests(getTests(ledgerCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/test.ts index 3610a17d90..719f576bfd 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from '../dfx_generated/list_of_lists'; import { getTests } from './tests'; -const listOfListsCanister = createActor(getCanisterId('list_of_lists'), { +const canisterName = 'list_of_lists'; +const listOfListsCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(listOfListsCanister)); +runTests(getTests(listOfListsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/test.ts index 9ed618ff95..d61414c2b6 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/test.ts @@ -5,11 +5,10 @@ import { createActor } from './dfx_generated/management_canister'; import { getTests } from './tests'; const canisterName = 'management_canister'; - const managementCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(managementCanister)); +runTests(getTests(managementCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/test.ts index 8792ca6985..c6a0018716 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/manual_reply'; import { getTests } from './tests'; -const manualReplyCanister = createActor(getCanisterId('manual_reply'), { +const canisterName = 'manual_reply'; +const manualReplyCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(manualReplyCanister)); +runTests(getTests(manualReplyCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/test.ts index 1feaa8e17f..b24e335130 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/test.ts @@ -5,10 +5,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/calc'; import { getTests } from './tests'; -const calcCanister = createActor(getCanisterId('calc'), { +const canisterName = 'calc'; +const calcCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(calcCanister)); +runTests(getTests(calcCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/test.ts index 637be5b7d5..a39bfa048f 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/test.ts @@ -5,10 +5,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/counter'; import { getTests } from './tests'; -const counterCanister = createActor(getCanisterId('counter'), { +const canisterName = 'counter'; +const counterCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(counterCanister)); +runTests(getTests(counterCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/test.ts index 1a5744dbe8..300cfb7042 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/test.ts @@ -5,10 +5,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/echo'; import { getTests } from './tests'; -const echoCanister = createActor(getCanisterId('echo'), { +const canisterName = 'echo'; +const echoCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(echoCanister)); +runTests(getTests(echoCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/test.ts index be8029f65d..af87a45df1 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/test.ts @@ -5,10 +5,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/factorial'; import { getTests } from './tests'; -const factorialCanister = createActor(getCanisterId('factorial'), { +const canisterName = 'factorial'; +const factorialCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(factorialCanister)); +runTests(getTests(factorialCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/test.ts index e29046419f..d35c2047ce 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/test.ts @@ -5,10 +5,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/hello_world'; import { getTests } from './tests'; -const helloWorldCanister = createActor(getCanisterId('hello_world'), { +const canisterName = 'hello_world'; +const helloWorldCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(helloWorldCanister)); +runTests(getTests(helloWorldCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/test.ts index dac6802bfe..ddc17dd599 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/test.ts @@ -5,10 +5,11 @@ import { runTests } from 'azle/test'; import { createActor } from '../dfx_generated/hello'; import { getTests } from './tests'; -const helloCanister = createActor(getCanisterId('hello'), { +const canisterName = 'hello'; +const helloCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(helloCanister)); +runTests(getTests(helloCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/test.ts index 7cf7636dd6..cca6c5e2fa 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/test.ts @@ -5,10 +5,11 @@ import { runTests } from 'azle/test'; import { createActor } from '../src/declarations/minimal_dapp'; import { getTests } from './tests'; -const counterCanister = createActor(getCanisterId('minimal_dapp'), { +const canisterName = 'minimal_dapp'; +const counterCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(counterCanister)); +runTests(getTests(counterCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/test.ts index d133f4ed43..e9d40b93ac 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/test.ts @@ -4,13 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/persistent_storage'; import { getTests } from './tests'; -const persistentStorageCanister = createActor( - getCanisterId('persistent_storage'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'persistent_storage'; +const persistentStorageCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(persistentStorageCanister)); +runTests(getTests(persistentStorageCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/test.ts index 8bfa786512..01ca7e283e 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from '../src/declarations/phone_book'; import { getTests } from './tests'; -const phoneBookCanister = createActor(getCanisterId('phone_book'), { +const canisterName = 'phone_book'; +const phoneBookCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(phoneBookCanister)); +runTests(getTests(phoneBookCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/test.ts index 7afbf5707c..63abf16e22 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/test.ts @@ -5,10 +5,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/quicksort'; import { getTests } from './tests'; -const quicksortCanister = createActor(getCanisterId('quicksort'), { +const canisterName = 'quicksort'; +const quicksortCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(quicksortCanister)); +runTests(getTests(quicksortCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/test.ts index 21a6185800..b97c864356 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/test.ts @@ -5,10 +5,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/simple_to_do'; import { getTests } from './tests'; -const todoCanister = createActor(getCanisterId('simple_to_do'), { +const canisterName = 'simple_to_do'; +const todoCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(todoCanister)); +runTests(getTests(todoCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/test.ts index f34d94f3ed..4cd84036f6 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from '../src/declarations'; import { getTests } from './tests'; -const superheroesCanister = createActor(getCanisterId('superheroes'), { +const canisterName = 'superheroes'; +const superheroesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(superheroesCanister)); +runTests(getTests(superheroesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/test.ts index 3c379fd664..36fe833146 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/test.ts @@ -4,7 +4,8 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/threshold_ecdsa'; import { getTests } from './tests'; -const tEcdsaCanister = createActor(getCanisterId('threshold_ecdsa'), { +const canisterName = 'threshold_ecdsa'; +const tEcdsaCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } @@ -14,4 +15,4 @@ const tEcdsaCanister = createActor(getCanisterId('threshold_ecdsa'), { // any tecdsa requests, so we are skipping these tests until we can think of // an elegant way to run these tests only after the replica is ready to process // them, when we are no longer skipping the tests we can remove the dummy test -runTests(getTests(tEcdsaCanister)); +runTests(getTests(tEcdsaCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/test.ts index eea805f046..8527637bf0 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/test.ts @@ -3,6 +3,7 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/whoami'; import { callingIdentity, canisterId, getTests } from './tests'; +const canisterName = 'whoami'; const whoamiCanister = createActor(canisterId, { agentOptions: { host: 'http://127.0.0.1:8000', @@ -10,4 +11,4 @@ const whoamiCanister = createActor(canisterId, { } }); -runTests(getTests(whoamiCanister, 'whoami')); +runTests(getTests(whoamiCanister, canisterName), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/test.ts index b5e38aeef4..0b2f83d382 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/test.ts @@ -5,16 +5,18 @@ import { createActor as createActorCanister1 } from './dfx_generated/canister1'; import { createActor as createActorCanister2 } from './dfx_generated/canister2'; import { getTests } from './tests'; -const canister1 = createActorCanister1(getCanisterId('canister1'), { +const canister1Name = 'canister1'; +const canister1 = createActorCanister1(getCanisterId(canister1Name), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -const canister2 = createActorCanister2(getCanisterId('canister2'), { +const canister2Name = 'canister2'; +const canister2 = createActorCanister2(getCanisterId(canister2Name), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(canister1, canister2)); +runTests(getTests(canister1, canister2), [canister1Name, canister2Name]); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/null_example/test/test.ts index 904a97317a..22333892e1 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/null_example/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/null_example/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/null_example'; import { getTests } from './tests'; -const nullExampleCanister = createActor(getCanisterId('null_example'), { +const canisterName = 'null_example'; +const nullExampleCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(nullExampleCanister)); +runTests(getTests(nullExampleCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/test.ts index 4c4f490eb5..61b288725f 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/optional_types'; import { getTests } from './tests'; -const optionalTypesCanister = createActor(getCanisterId('optional_types'), { +const canisterName = 'optional_types'; +const optionalTypesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(optionalTypesCanister)); +runTests(getTests(optionalTypesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/test.ts index 27c506cae2..8b7f1e056f 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/test.ts @@ -4,13 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/outgoing_http_requests'; import { getTests } from './tests'; -const outgoingHttpRequestsCanister = createActor( - getCanisterId('outgoing_http_requests'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'outgoing_http_requests'; +const outgoingHttpRequestsCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(outgoingHttpRequestsCanister)); +runTests(getTests(outgoingHttpRequestsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/test.ts index d67f185786..9fb08471dc 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/test.ts @@ -4,13 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/pre_and_post_upgrade'; import { getTests } from './tests'; -const preAndPostUpgradeCanister = createActor( - getCanisterId('pre_and_post_upgrade'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'pre_and_post_upgrade'; +const preAndPostUpgradeCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(preAndPostUpgradeCanister)); +runTests(getTests(preAndPostUpgradeCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/test.ts index aa4b6b95ef..af9eeb2482 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/primitive_types'; import { getTests } from './tests'; -const primitiveTypesCanister = createActor(getCanisterId('primitive_types'), { +const canisterName = 'primitive_types'; +const primitiveTypesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(primitiveTypesCanister)); +runTests(getTests(primitiveTypesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/principal/test/test.ts index 93696aad0f..beca649fc7 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/principal/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/principal/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/principal'; import { getTests } from './tests'; -const principalCanister = createActor(getCanisterId('principal'), { +const canisterName = 'principal'; +const principalCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(principalCanister)); +runTests(getTests(principalCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/query/test/test.ts index 6c30d9b368..6abefaded0 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/query/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/query/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/query'; import { getTests } from './tests'; -const queryCanister = createActor(getCanisterId('query'), { +const canisterName = 'query'; +const queryCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(queryCanister)); +runTests(getTests(queryCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/randomness/test/test.ts index 99939a0cdc..3c8521dc7e 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/randomness/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/randomness/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/randomness'; import { getTests } from './tests'; -const randomnessCanister = createActor(getCanisterId('randomness'), { +const canisterName = 'randomness'; +const randomnessCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(randomnessCanister)); +runTests(getTests(randomnessCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/recursion/test/test.ts index a89d85b2a3..2a8d6d9f23 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/recursion/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/recursion/test/test.ts @@ -8,14 +8,16 @@ import { createActor } from './dfx_generated/recursion'; import { createActor as createRecursiveActor } from './dfx_generated/recursive_canister'; import { getRecursiveCanisterTests, getTests } from './tests'; -const recursionCanister = createActor(getCanisterId('recursion'), { +const recursionName = 'recursion'; +const recursionCanister = createActor(getCanisterId(recursionName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); +const recursiveCanisterName = 'recursive_canister'; const recursiveCanister = createRecursiveActor( - getCanisterId('recursive_canister'), + getCanisterId(recursiveCanisterName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -29,4 +31,4 @@ runTests(() => { 'recursive canister tests', getRecursiveCanisterTests(recursiveCanister) ); -}); +}, [recursionName, recursiveCanisterName]); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/rejections/test/test.ts index e0a19d2571..e3afcac6b7 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/rejections/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/rejections/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/rejections'; import { getTests } from './tests'; -const rejectionsCanister = createActor(getCanisterId('rejections'), { +const canisterName = 'rejections'; +const rejectionsCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(rejectionsCanister)); +runTests(getTests(rejectionsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/test.ts index c06c8294a7..423137468b 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from '../dfx_generated/robust_imports'; import { getTests } from './tests'; -const robustImportsCanister = createActor(getCanisterId('robust_imports'), { +const canisterName = 'robust_imports'; +const robustImportsCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(robustImportsCanister)); +runTests(getTests(robustImportsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/test.ts index d9d2beee50..c086b090dd 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/simple_erc20'; import { getTests } from './tests'; -const simpleErc20Canister = createActor(getCanisterId('simple_erc20'), { +const canisterName = 'simple_erc20'; +const simpleErc20Canister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(simpleErc20Canister)); +runTests(getTests(simpleErc20Canister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/test.ts index 3b71af3796..9d1778077e 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/test.ts @@ -4,13 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/simple_user_accounts'; import { getTests } from './tests'; -const simpleUserAccountsCanister = createActor( - getCanisterId('simple_user_accounts'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } +const canisterName = 'simple_user_accounts'; +const simpleUserAccountsCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' } -); +}); -runTests(getTests(simpleUserAccountsCanister)); +runTests(getTests(simpleUserAccountsCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/test.ts index 10f6927c05..d91593085e 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/test.ts @@ -4,8 +4,9 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/stable_b_tree_map_instruction_threshold'; import { getTests } from './tests'; +const canisterName = 'stable_b_tree_map_instruction_threshold'; const stableBTreeMapInstructionThresholdCanister = createActor( - getCanisterId('stable_b_tree_map_instruction_threshold'), + getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -13,4 +14,4 @@ const stableBTreeMapInstructionThresholdCanister = createActor( } ); -runTests(getTests(stableBTreeMapInstructionThresholdCanister)); +runTests(getTests(stableBTreeMapInstructionThresholdCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/test.ts index f973d6bd5b..2e163fbd04 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/test.ts @@ -8,8 +8,9 @@ import { createActor as createActorCanister3 } from './dfx_generated/canister3'; import { _SERVICE } from './dfx_generated/canister3/canister3.did'; import { getTests } from './tests'; -const stableStructuresCanister_1 = createActorCanister1( - getCanisterId('canister1'), +const stableStructuresCanister1Name = 'canister1'; +const stableStructuresCanister1 = createActorCanister1( + getCanisterId(stableStructuresCanister1Name), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -17,16 +18,19 @@ const stableStructuresCanister_1 = createActorCanister1( } ); -const stableStructuresCanister_2 = createActorCanister2( - getCanisterId('canister2'), +const stableStructuresCanister2Name = 'canister2'; +const stableStructuresCanister2 = createActorCanister2( + getCanisterId(stableStructuresCanister2Name), { agentOptions: { host: 'http://127.0.0.1:8000' } } ); -const stableStructuresCanister_3 = createActorCanister3( - getCanisterId('canister3'), + +const stableStructuresCanister3Name = 'canister3'; +const stableStructuresCanister3 = createActorCanister3( + getCanisterId(stableStructuresCanister3Name), { agentOptions: { host: 'http://127.0.0.1:8000' @@ -36,8 +40,13 @@ const stableStructuresCanister_3 = createActorCanister3( runTests( getTests( - stableStructuresCanister_1, - stableStructuresCanister_2, - stableStructuresCanister_3 - ) + stableStructuresCanister1, + stableStructuresCanister2, + stableStructuresCanister3 + ), + [ + stableStructuresCanister1Name, + stableStructuresCanister2Name, + stableStructuresCanister3Name + ] ); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/timers/test/test.ts index 8c5f04896e..64134a1300 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/timers/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/timers/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/timers'; import { getTests } from './tests'; -const timersCanister = createActor(getCanisterId('timers'), { +const canisterName = 'timers'; +const timersCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(timersCanister)); +runTests(getTests(timersCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/test.ts index a3029418b9..6ad393a9e8 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/tuple_types'; import { getTests } from './tests'; -const tupleTypesCanister = createActor(getCanisterId('tuple_types'), { +const canisterName = 'tuple_types'; +const tupleTypesCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(tupleTypesCanister)); +runTests(getTests(tupleTypesCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/update/test/test.ts index ca1b069e53..96337e970e 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/update/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/update/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/update'; import { getTests } from './tests'; -const updateCanister = createActor(getCanisterId('update'), { +const canisterName = 'update'; +const updateCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(updateCanister)); +runTests(getTests(updateCanister), canisterName); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/test.ts b/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/test.ts index f6622b81db..669c00432a 100644 --- a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/test.ts +++ b/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/test.ts @@ -4,10 +4,11 @@ import { runTests } from 'azle/test'; import { createActor } from './dfx_generated/vanilla_js'; import { getTests } from './tests'; -const vanillaJsCanister = createActor(getCanisterId('vanilla_js'), { +const canisterName = 'vanilla_js'; +const vanillaJsCanister = createActor(getCanisterId(canisterName), { agentOptions: { host: 'http://127.0.0.1:8000' } }); -runTests(getTests(vanillaJsCanister)); +runTests(getTests(vanillaJsCanister), canisterName); diff --git a/tests/end_to_end/http_server/hybrid_canister/benchmarks.json b/tests/end_to_end/http_server/hybrid_canister/benchmarks.json new file mode 100644 index 0000000000..dbe6826b7d --- /dev/null +++ b/tests/end_to_end/http_server/hybrid_canister/benchmarks.json @@ -0,0 +1,180 @@ +{ + "server": { + "previous": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8135030419" }, + "method_name": "init", + "timestamp": { "__bigint__": "1729789184232959936" } + }, + { + "instructions": { "__bigint__": "44761508" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789205482596874" } + }, + { + "instructions": { "__bigint__": "1426413" }, + "method_name": "candidUpdate", + "timestamp": { "__bigint__": "1729789206415779121" } + } + ] + }, + "current": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8135030419" }, + "method_name": "init", + "timestamp": { "__bigint__": "1729789868878859263" } + }, + { + "instructions": { "__bigint__": "44761508" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789892635759837" } + }, + { + "instructions": { "__bigint__": "1426413" }, + "method_name": "candidUpdate", + "timestamp": { "__bigint__": "1729789893385184586" } + } + ] + } + }, + "server_init_and_post_upgrade": { + "previous": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8147052903" }, + "method_name": "postUpgrade", + "timestamp": { "__bigint__": "1729789214629857330" } + }, + { + "instructions": { "__bigint__": "45136919" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789217429528381" } + }, + { + "instructions": { "__bigint__": "1799989" }, + "method_name": "candidUpdate", + "timestamp": { "__bigint__": "1729789217903772171" } + } + ] + }, + "current": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8147052903" }, + "method_name": "postUpgrade", + "timestamp": { "__bigint__": "1729789902463575022" } + }, + { + "instructions": { "__bigint__": "45136919" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789905073235499" } + }, + { + "instructions": { "__bigint__": "1799989" }, + "method_name": "candidUpdate", + "timestamp": { "__bigint__": "1729789905526650107" } + } + ] + } + }, + "canister": { + "previous": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8136155991" }, + "method_name": "init", + "timestamp": { "__bigint__": "1729789174562855436" } + }, + { + "instructions": { "__bigint__": "44775155" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789190590601615" } + }, + { + "instructions": { "__bigint__": "44708712" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789190949108101" } + }, + { + "instructions": { "__bigint__": "1453654" }, + "method_name": "candidUpdate", + "timestamp": { "__bigint__": "1729789191837973721" } + } + ] + }, + "current": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8136155991" }, + "method_name": "init", + "timestamp": { "__bigint__": "1729789860205240195" } + }, + { + "instructions": { "__bigint__": "44775155" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789876782008351" } + }, + { + "instructions": { "__bigint__": "44708712" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789877547662292" } + }, + { + "instructions": { "__bigint__": "1453654" }, + "method_name": "candidUpdate", + "timestamp": { "__bigint__": "1729789877956665999" } + } + ] + } + }, + "canister_init_and_post_upgrade": { + "previous": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8147479160" }, + "method_name": "postUpgrade", + "timestamp": { "__bigint__": "1729789200276611904" } + }, + { + "instructions": { "__bigint__": "45174549" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789202952014438" } + }, + { + "instructions": { "__bigint__": "1814907" }, + "method_name": "candidUpdate", + "timestamp": { "__bigint__": "1729789203390264943" } + } + ] + }, + "current": { + "version": "0.25.0", + "benchmarks": [ + { + "instructions": { "__bigint__": "8147479160" }, + "method_name": "postUpgrade", + "timestamp": { "__bigint__": "1729789887476275002" } + }, + { + "instructions": { "__bigint__": "45174549" }, + "method_name": "http_request_update", + "timestamp": { "__bigint__": "1729789890193389348" } + }, + { + "instructions": { "__bigint__": "1814907" }, + "method_name": "candidUpdate", + "timestamp": { "__bigint__": "1729789890646429484" } + } + ] + } + } +} diff --git a/tests/end_to_end/http_server/hybrid_canister/benchmarks.md b/tests/end_to_end/http_server/hybrid_canister/benchmarks.md new file mode 100644 index 0000000000..aba4f1235a --- /dev/null +++ b/tests/end_to_end/http_server/hybrid_canister/benchmarks.md @@ -0,0 +1,86 @@ +# Benchmarks for server + +## Current benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | Change | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | -------------------------- | +| 0 | init | 8_135_030_419 | 6_454_602_167 | $0.0085824909 | $8582.4909 | 0 | +| 1 | http_request_update | 44_761_508 | 18_494_603 | $0.0000245917 | $24.5917 | 0 | +| 2 | candidUpdate | 1_426_413 | 1_160_565 | $0.0000015432 | $1.5432 | 0 | + +## Baseline benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | +| 0 | init | 8_135_030_419 | 6_454_602_167 | $0.0085824909 | $8582.4909 | +| 1 | http_request_update | 44_761_508 | 18_494_603 | $0.0000245917 | $24.5917 | +| 2 | candidUpdate | 1_426_413 | 1_160_565 | $0.0000015432 | $1.5432 | + +# Benchmarks for server_init_and_post_upgrade + +## Current benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | Change | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | -------------------------- | +| 0 | postUpgrade | 8_147_052_903 | 6_459_411_161 | $0.0085888852 | $8588.8852 | 0 | +| 1 | http_request_update | 45_136_919 | 18_644_767 | $0.0000247914 | $24.7914 | 0 | +| 2 | candidUpdate | 1_799_989 | 1_309_995 | $0.0000017419 | $1.7419 | 0 | + +## Baseline benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | +| 0 | postUpgrade | 8_147_052_903 | 6_459_411_161 | $0.0085888852 | $8588.8852 | +| 1 | http_request_update | 45_136_919 | 18_644_767 | $0.0000247914 | $24.7914 | +| 2 | candidUpdate | 1_799_989 | 1_309_995 | $0.0000017419 | $1.7419 | + +# Benchmarks for canister + +## Current benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | Change | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | -------------------------- | +| 0 | init | 8_136_155_991 | 6_455_052_396 | $0.0085830895 | $8583.0895 | 0 | +| 1 | http_request_update | 44_775_155 | 18_500_062 | $0.0000245990 | $24.5990 | 0 | +| 2 | http_request_update | 44_708_712 | 18_473_484 | $0.0000245636 | $24.5636 | 0 | +| 3 | candidUpdate | 1_453_654 | 1_171_461 | $0.0000015577 | $1.5577 | 0 | + +## Baseline benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | +| 0 | init | 8_136_155_991 | 6_455_052_396 | $0.0085830895 | $8583.0895 | +| 1 | http_request_update | 44_775_155 | 18_500_062 | $0.0000245990 | $24.5990 | +| 2 | http_request_update | 44_708_712 | 18_473_484 | $0.0000245636 | $24.5636 | +| 3 | candidUpdate | 1_453_654 | 1_171_461 | $0.0000015577 | $1.5577 | + +# Benchmarks for canister_init_and_post_upgrade + +## Current benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | Change | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | -------------------------- | +| 0 | postUpgrade | 8_147_479_160 | 6_459_581_664 | $0.0085891120 | $8589.1120 | 0 | +| 1 | http_request_update | 45_174_549 | 18_659_819 | $0.0000248114 | $24.8114 | 0 | +| 2 | candidUpdate | 1_814_907 | 1_315_962 | $0.0000017498 | $1.7498 | 0 | + +## Baseline benchmarks Azle version: 0.25.0 + +| Id | Method Name | Instructions | Cycles | USD | USD/Million Calls | +| --- | ------------------- | ------------- | ------------- | ------------- | ----------------- | +| 0 | postUpgrade | 8_147_479_160 | 6_459_581_664 | $0.0085891120 | $8589.1120 | +| 1 | http_request_update | 45_174_549 | 18_659_819 | $0.0000248114 | $24.8114 | +| 2 | candidUpdate | 1_814_907 | 1_315_962 | $0.0000017498 | $1.7498 | + +--- + +**Note on calculations:** + +- Cycles are calculated using the formula: base*fee + (per_instruction_fee * number*of_instructions) + (additional_fee_per_billion * floor(number_of_instructions / 1_billion)) +- Base fee: 590_000 cycles +- Per instruction fee: 0.4 cycles +- Additional fee: 400_000_000 cycles per billion instructions +- USD value is derived from the total cycles, where 1 trillion cycles = 1 XDR, and 1 XDR = $1.329670 (as of October 24, 2024) + +For the most up-to-date XDR to USD conversion rate, please refer to the [IMF website](https://www.imf.org/external/np/fin/data/rms_sdrv.aspx). +For the most current fee information, please check the [official documentation](https://internetcomputer.org/docs/current/developer-docs/gas-cost#execution). diff --git a/tests/end_to_end/http_server/hybrid_canister/test/test.ts b/tests/end_to_end/http_server/hybrid_canister/test/test.ts index cde0793583..8606ccc67a 100644 --- a/tests/end_to_end/http_server/hybrid_canister/test/test.ts +++ b/tests/end_to_end/http_server/hybrid_canister/test/test.ts @@ -2,4 +2,9 @@ import { runTests } from 'azle/test'; import { getTests } from './tests'; -runTests(getTests()); +runTests(getTests(), [ + 'server', + 'server_init_and_post_upgrade', + 'canister', + 'canister_init_and_post_upgrade' +]);