diff --git a/.changeset/README.md b/.changeset/README.md deleted file mode 100644 index e5b6d8d6a..000000000 --- a/.changeset/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Changesets - -Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works -with multi-package repos, or single-package repos to help you version and publish your code. You can -find the full documentation for it [in our repository](https://github.com/changesets/changesets) - -We have a quick list of common questions to get you started engaging with this project in -[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index 0a4a640a5..000000000 --- a/.changeset/config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@2.2.0/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": false, - "fixed": [], - "linked": [], - "access": "public", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "ignore": ["ad4m-host", "ad4m-launcher"] -} diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index 45f079349..3fab49960 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -26,7 +26,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -38,13 +39,20 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/agent-language/hc-dna/zomes/tests && yarn install && yarn run test \ No newline at end of file diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index 6d764183d..79c003454 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -26,7 +26,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -38,13 +39,20 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/direct-message-language/hc-dna/tests && yarn install && yarn run test \ No newline at end of file diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index 3747a85bc..cef568be1 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -26,7 +26,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -38,15 +39,22 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/file-storage/hc-dna/tests && yarn install && yarn run test integration: @@ -64,7 +72,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -76,13 +85,20 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/file-storage && yarn run integration-test \ No newline at end of file diff --git a/.github/workflows/integration_cli.yml b/.github/workflows/integration_cli.yml index 9f2426090..eae160233 100644 --- a/.github/workflows/integration_cli.yml +++ b/.github/workflows/integration_cli.yml @@ -9,7 +9,7 @@ on: jobs: test: - name: AD4M cli <> AD4M host + name: AD4M cli runs-on: macos-latest strategy: matrix: @@ -26,7 +26,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.63.0 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo @@ -46,18 +46,25 @@ jobs: with: node-version: ${{ matrix.node-version }} + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + + - name: Install HC + run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" + - name: Yarn Install run: yarn install - - name: Yarn Build + - name: Yarn Build (builds entire workspace) run: yarn build - - name: Build AD4M-Host - run: yarn run package-macos - - - name: Build AD4M cli - run: cd cli && cargo build --release - - name: Run binaries test script run: ./tests/bats/bin/bats tests/binaries.bats || cat ~/Library/Logs/DiagnosticReports/* diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index c9e6e502f..36b4402b0 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -8,25 +8,33 @@ on: pull_request: jobs: - test: - name: JS Ad4mClient <> AD4M host - runs-on: macos-latest + test-linux: + name: JS Ad4mClient <> AD4M Executor - Linux + strategy: matrix: + platform: [ubuntu-22.04] node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + runs-on: ${{ matrix.platform }} steps: - - name: Fetch source code - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.71.1 - - name: git init submodule - run: git submodule init && git submodule update + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' - - name: Install Rust stable - uses: actions-rs/toolchain@v1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 with: - override: true - toolchain: 1.63.0 + node-version: ${{ matrix.node-version }} + cache: 'yarn' - name: Cache cargo id: cache-cargo @@ -38,26 +46,162 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ runner.os }}-cargo + key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + ${{ runner.os }}-cargo - run: rustup target add wasm32-unknown-unknown - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + - name: Install Deno + uses: denoland/setup-deno@v1 with: - node-version: ${{ matrix.node-version }} + deno-version: v1.32.4 - - name: Yarn Install + - name: install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf + + - name: Install HC + run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" + + - name: Install dependencies run: yarn install - - name: Yarn Build - run: yarn build + - name: Build the workspace + run: yarn run build + + - uses: actions/cache/save@v3 + if: always() + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + + - name: Run the tests + run: yarn test + + # test-windows: + # name: JS Ad4mClient <> AD4M Executor - Windows + # runs-on: windows-2019 + # strategy: + # matrix: + # node-version: [16.x] - - name: Build AD4M-Host - run: yarn run package-macos + # steps: + # - uses: actions/checkout@v2 + # - uses: actions-rs/toolchain@v1 + # with: + # toolchain: 1.68.2 + # - name: Cache cargo + # id: cache-cargo + # uses: actions/cache@v3 + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # restore-keys: | + # ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # ${{ runner.os }}-cargo + # - run: rustup target add wasm32-unknown-unknown - - name: Run tests/js - run: | - cd tests/js - yarn install - yarn test - \ No newline at end of file + # - name: Use Node.js ${{ matrix.node-version }} + # uses: actions/setup-node@v2 + # with: + # node-version: ${{ matrix.node-version }} + # cache: 'yarn' + + # - name: Install Deno + # uses: denoland/setup-deno@v1 + # with: + # deno-version: v1.32.4 + + # - name: Install dependencies + # run: yarn install + + # - name: Build the workspace + # run: yarn run build + + # - uses: actions/cache/save@v3 + # if: always() + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + + # - name: Run the tests + # run: | + # choco install swi-prolog + # $env:path += ";C:\Program Files\swipl\bin" + # yarn run test:windows + + # test-macos: + # name: JS Ad4mClient <> AD4M Executor - MacOS + # runs-on: macos-latest + # strategy: + # matrix: + # node-version: [16.x] + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rs/toolchain@v1 + # with: + # toolchain: 1.68.2 + # - name: Use Node.js ${{ matrix.node-version }} + # uses: actions/setup-node@v2 + # with: + # node-version: ${{ matrix.node-version }} + # cache: 'yarn' + + # - name: Cache cargo + # id: cache-cargo + # uses: actions/cache@v3 + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # restore-keys: | + # ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # ${{ runner.os }}-cargo + # - run: rustup target add wasm32-unknown-unknown + + # - name: Install Deno + # uses: denoland/setup-deno@v1 + # with: + # deno-version: v1.32.4 + + # - name: Install dependencies + # run: yarn install + + # - name: Build the workspace + # run: yarn run build + + # - uses: actions/cache/save@v3 + # if: always() + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + + # - name: Run the tests + # run: yarn test diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 22edf590c..274e4dae2 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -55,7 +55,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -67,15 +67,22 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-pull render: @@ -93,7 +100,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -105,15 +113,22 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-render revisions: @@ -131,7 +146,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -143,15 +159,22 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-revisions signals: @@ -169,7 +192,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -181,15 +205,22 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-signals @@ -208,7 +239,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -220,15 +252,22 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-stress telepresence: @@ -246,7 +285,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -258,15 +298,22 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-telepresence integration: @@ -284,7 +331,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -296,13 +344,20 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync && yarn run integration-test \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index dc0b49595..2c3c54f0b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,7 +7,7 @@ on: jobs: create-release: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} @@ -17,6 +17,12 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16 + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - name: Create Tags From id: create_tag uses: jaywcjlove/create-tag-action@v1.3.14 @@ -27,7 +33,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token with: tag_name: ${{ steps.create_tag.outputs.version }} - release_name: AD4M Launcher & Host ${{ steps.create_tag.outputs.version }} + release_name: AD4M Launcher & Cli ${{ steps.create_tag.outputs.version }} body: See the assets to download this version and install. draft: true prerelease: false @@ -36,10 +42,10 @@ jobs: strategy: fail-fast: false matrix: - platform: [ubuntu-latest, macos-latest, windows-latest] - node-version: [16.x] + platform: [ubuntu-22.04, macos-latest, windows-latest] + node-version: [18.17.0] - needs: + needs: - create-release - npm-publish @@ -53,11 +59,21 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.63.0 + toolchain: 1.71.1 + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-latest' + if: matrix.platform == 'ubuntu-22.04' run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf @@ -79,39 +95,85 @@ jobs: - name: Yarn Install run: yarn install - - name: Build AD4M-Host & build Launcher binary (macos-latest) - if: matrix.platform == 'macos-latest' - run: yarn run build-macos + - name: Build AD4M-CLI & build Launcher binary (macos/linux-latest) + if: matrix.platform != 'windows-latest' + env: + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} + run: yarn run package-ad4m - - name: Build AD4M-Host & build Launcher binary (windows-latest) + - name: Build AD4M-CLI & build Launcher binary (windows-latest) if: matrix.platform == 'windows-latest' - run: yarn run build-windows - - - name: Build AD4M-Host & build Launcher binary (linux-latest) - if: matrix.platform == 'ubuntu-latest' - run: yarn run build-linux + env: + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + run: | + choco install curl cygwin gnuwin32-m4 libgcc make mingw + yarn run package-ad4m - name: Upload Release Deb Asset id: upload-release-deb-asset + if: matrix.platform == 'ubuntu-22.04' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_content_type: application/octet-stream + + - name: Upload Release AppImage Asset + id: upload-release-appimage-asset + if: matrix.platform == 'ubuntu-22.04' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage + asset_content_type: application/octet-stream + + - name: Upload Release AppImage Update Asset + id: upload-release-appimage-asset-update if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb - asset_name: ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Linux Binary - id: upload-release-linux-ad4m-host-binary + - name: Upload Release AppImage update sig Asset + id: upload-release-appimage-asset-update-sig if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/host/dist/ad4m-linux-x64 + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz.sig + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig + asset_content_type: application/octet-stream + + - name: Upload Release AD4M CLI Linux Binary + id: upload-release-linux-ad4m-cli-binary + if: matrix.platform == 'ubuntu-22.04' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/ad4m asset_name: ad4m-linux-${{ steps.extract_version.outputs.version }}-x64 asset_content_type: application/octet-stream @@ -123,19 +185,43 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg - asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg + asset_path: "/Users/runner/work/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Macos Binary - id: upload-release-macos-ad4m-host-binary + - name: Upload Release Macos update Asset + id: upload-release-macos-asset-update if: matrix.platform == 'macos-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/host/dist/ad4m-macos-x64 + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/macos/ADAM Launcher.app.tar.gz" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.app.tar.gz + asset_content_type: application/octet-stream + + - name: Upload Release Macos update sig Asset + id: upload-release-macos-asset-update-sig + if: matrix.platform == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/macos/ADAM Launcher.app.tar.gz.sig" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.app.tar.gz.sig + asset_content_type: application/octet-stream + + - name: Upload Release AD4M CLI Macos Binary + id: upload-release-macos-ad4m-cli-binary + if: matrix.platform == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /Users/runner/work/ad4m/ad4m/target/release/ad4m asset_name: ad4m-macos-${{ steps.extract_version.outputs.version }}-x64 asset_content_type: application/octet-stream @@ -147,34 +233,48 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi - asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi + asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Windows Binary - id: upload-release-windows-ad4m-host-binary + - name: Upload Release MSI update Asset + id: upload-release-msi-asset-update if: matrix.platform == 'windows-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\host\dist\ad4m-windows-x64.exe + asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip + asset_content_type: application/octet-stream + + - name: Upload Release MSI update sig Asset + id: upload-release-msi-asset-update-sig + if: matrix.platform == 'windows-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig + asset_content_type: application/octet-stream + + - name: Upload Release AD4M CLI Windows Binary + id: upload-release-windows-ad4m-cli-binary + if: matrix.platform == 'windows-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: D:\a\ad4m\ad4m\target\release\ad4m-x64.exe asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe asset_content_type: application/octet-stream - # - name: "Upload built AD4MIN" - # uses: tauri-apps/tauri-action@v0.3 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version - # releaseName: "Ad4min v__VERSION__" - # releaseBody: "See the assets to download this version and install." - # projectPath: "./ui" - npm-publish: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 # Setup .npmrc file to publish to npm @@ -182,8 +282,20 @@ jobs: uses: actions/setup-node@v1 with: node-version: 16.x + - name: Install deps run: yarn install + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - name: Build modules run: yarn run build-libs - name: Publish core @@ -191,35 +303,45 @@ jobs: with: token: ${{ secrets.NPM_TOKEN }} package: core/package.json + - name: Publish connect uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: connect/package.json + - name: Publish executor uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: executor/package.json + - name: Publish Test runner uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: test-runner/package.json - - + + crates-publish: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: 1.71.1 override: true + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - uses: actions/setup-node@v3 with: node-version: '16.x' cache: 'yarn' + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -231,6 +353,7 @@ jobs: ~/.cargo/git/db/ key: ${{ runner.os }}-cargo restore-keys: ${{ runner.os }}-cargo + - run: rustup target add wasm32-unknown-unknown - run: cd core && yarn install && yarn build && cd .. - run: cargo install cargo-workspaces || echo "cargo-workspaces already installed" diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 31d6dd33b..19a6d6823 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -7,7 +7,7 @@ on: jobs: create-release: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} @@ -17,6 +17,12 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16 + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - name: Create Tags From id: create_tag uses: jaywcjlove/create-tag-action@v1.3.14 @@ -27,7 +33,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token with: tag_name: ${{ steps.create_tag.outputs.version }} - release_name: AD4M Launcher & Host ${{ steps.create_tag.outputs.version }} Prerelease + release_name: AD4M Launcher & CLI ${{ steps.create_tag.outputs.version }} Prerelease body: See the assets to download this version and install. draft: true prerelease: true @@ -36,15 +42,13 @@ jobs: strategy: fail-fast: false matrix: - platform: [ubuntu-latest, macos-latest, windows-latest] - node-version: [16.x] + platform: [ubuntu-22.04, macos-latest, windows-latest] + node-version: [18.17.0] - needs: + needs: - create-release - - npm-publish runs-on: ${{ matrix.platform }} - steps: - name: Fetch source code uses: actions/checkout@v2 @@ -53,11 +57,15 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.63.0 + toolchain: 1.71.1 + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-latest' + if: matrix.platform == 'ubuntu-22.04' run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf @@ -76,42 +84,93 @@ jobs: with: node-version: ${{ matrix.node-version }} + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - name: Yarn Install - run: yarn install + run: yarn install --no-cache - - name: Build AD4M-Host & build Launcher binary (macos-latest) - if: matrix.platform == 'macos-latest' - run: yarn run build-macos + - name: Build AD4M-CLI & build Launcher binary (macos/linux-latest) + if: matrix.platform != 'windows-latest' + env: + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + run: yarn run package-ad4m - - name: Build AD4M-Host & build Launcher binary (windows-latest) + - name: Build AD4M-CLI & build Launcher binary (windows-latest) if: matrix.platform == 'windows-latest' - run: yarn run build-windows - - - name: Build AD4M-Host & build Launcher binary (linux-latest) - if: matrix.platform == 'ubuntu-latest' - run: yarn run build-linux + env: + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} + run: | + choco install curl cygwin gnuwin32-m4 libgcc make mingw + yarn run package-ad4m - name: Upload Release Deb Asset id: upload-release-deb-asset + if: matrix.platform == 'ubuntu-22.04' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_content_type: application/octet-stream + + - name: Upload Release AppImage Asset + id: upload-release-appimage-asset + if: matrix.platform == 'ubuntu-22.04' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage + asset_content_type: application/octet-stream + + - name: Upload Release AppImage Update Asset + id: upload-release-appimage-asset-update if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb - asset_name: ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Linux Binary - id: upload-release-linux-ad4m-host-binary + - name: Upload Release AppImage update sig Asset + id: upload-release-appimage-asset-update-sig if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/host/dist/ad4m-linux-x64 + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz.sig + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig + asset_content_type: application/octet-stream + + - name: Upload Release AD4M CLI Linux Binary + id: upload-release-linux-ad4m-cli-binary + if: matrix.platform == 'ubuntu-22.04' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/ad4m asset_name: ad4m-linux-${{ steps.extract_version.outputs.version }}-x64 asset_content_type: application/octet-stream @@ -123,19 +182,43 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg - asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg + asset_path: "/Users/runner/work/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Macos Binary - id: upload-release-macos-ad4m-host-binary + - name: Upload Release Macos update Asset + id: upload-release-macos-asset-update if: matrix.platform == 'macos-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/host/dist/ad4m-macos-x64 + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/macos/ADAM Launcher.app.tar.gz" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.app.tar.gz + asset_content_type: application/octet-stream + + - name: Upload Release Macos update sig Asset + id: upload-release-macos-asset-update-sig + if: matrix.platform == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/macos/ADAM Launcher.app.tar.gz.sig" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.app.tar.gz.sig + asset_content_type: application/octet-stream + + - name: Upload Release AD4M CLI Macos Binary + id: upload-release-macos-ad4m-cli-binary + if: matrix.platform == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /Users/runner/work/ad4m/target/release/ad4m asset_name: ad4m-macos-${{ steps.extract_version.outputs.version }}-x64 asset_content_type: application/octet-stream @@ -147,34 +230,48 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi - asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi + asset_path: 'D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi' + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi + asset_content_type: application/octet-stream + + - name: Upload Release MSI update Asset + id: upload-release-msi-asset-update + if: matrix.platform == 'windows-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: 'D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip' + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Windows Binary - id: upload-release-windows-ad4m-host-binary + - name: Upload Release MSI update sig Asset + id: upload-release-msi-asset-update-sig if: matrix.platform == 'windows-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\host\dist\ad4m-windows-x64.exe + asset_path: 'D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig' + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig + asset_content_type: application/octet-stream + + - name: Upload Release AD4M CLI Windows Binary + id: upload-release-windows-ad4m-cli-binary + if: matrix.platform == 'windows-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: D:\a\ad4m\ad4m\target\release\ad4m-x64.exe asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe asset_content_type: application/octet-stream - # - name: "Upload built AD4MIN" - # uses: tauri-apps/tauri-action@v0.3 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version - # releaseName: "Ad4min v__VERSION__" - # releaseBody: "See the assets to download this version and install." - # projectPath: "./ui" - npm-publish: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 # Setup .npmrc file to publish to npm @@ -182,44 +279,94 @@ jobs: uses: actions/setup-node@v1 with: node-version: 16.x + + - name: Extract version + id: extract_version + uses: Saionaro/extract-package-version@v1.1.1 + with: + path: ui + + - name: Check if string contains prerelease + run: | + STRING="${{ steps.extract_version.outputs.version }}" + if [[ $STRING == *"prerelease"* ]]; then + echo "CONTAINS_PRERELEASE=true" >> $GITHUB_ENV + else + echo "CONTAINS_PRERELEASE=false" >> $GITHUB_ENV + fi + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - name: Install deps run: yarn install + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - name: Build modules run: yarn run build-libs + + - name: Set NPM tag + run: | + if [ "$CONTAINS_PRERELEASE" = "true" ]; then + echo "NPM_TAG=next" >> $GITHUB_ENV + else + echo "NPM_TAG=latest" >> $GITHUB_ENV + fi + - name: Publish core uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: core/package.json + tag: ${{ env.NPM_TAG }} + - name: Publish connect uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: connect/package.json + tag: ${{ env.NPM_TAG }} + - name: Publish executor uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: executor/package.json + tag: ${{ env.NPM_TAG }} + - name: Publish Test runner uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: test-runner/package.json - - + tag: ${{ env.NPM_TAG }} + + crates-publish: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: 1.71.1 override: true + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - uses: actions/setup-node@v3 with: node-version: '16.x' cache: 'yarn' + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 270b97f52..000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,91 +0,0 @@ -name: AD4M components - -on: - push: - branches: - - main - - dev - pull_request: - -jobs: - test: - name: Test - - strategy: - matrix: - platform: [ubuntu-22.04] - node-version: [16.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - runs-on: ${{ matrix.platform }} - - steps: - - uses: actions/checkout@v3 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - - name: Install dependencies - run: yarn install - - - name: Run the tests - run: yarn test - - test-windows: - name: Test - runs-on: windows-2019 - strategy: - matrix: - node-version: [16.x] - - steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.63.0 - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} - restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} - ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - - - name: Install dependencies - run: yarn install - - - name: Run the tests - run: | - choco install swi-prolog - $env:path += ";C:\Program Files\swipl\bin" - yarn run test:windows diff --git a/.gitignore b/.gitignore index e834ad208..a36dcc081 100644 --- a/.gitignore +++ b/.gitignore @@ -20,11 +20,9 @@ docs-src/api.md docs-src/typedoc docs-src/_book docs/out - host/dist host/build - ui/build ui/src-tauri/bins ui/.pnp @@ -56,4 +54,4 @@ tests/ad4m2 test-runner/.ad4m-test -temp \ No newline at end of file +temp diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..d53087ad5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,188 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "lldb", + "request": "launch", + "name": "Debug ad4m executor for JS tests", + "cargo": { + "args": [ + "build", + "--bin=ad4m", + "--package=ad4m" + ], + "filter": { + "name": "ad4m", + "kind": "bin" + } + }, + "args": [ + "run", + "--app-data-path", "/Users/nicolasluck/Coasys/code/ad4m/tests/js/tst-tmp/agents/integration-agent", + "--gql-port", "15500", + "--hc-admin-port", "15501", + "--hc-app-port", "15502", + "--ipfs-swarm-port", "15503", + "--hc-use-bootstrap", "false", + "--hc-use-proxy", "false", + "--hc-use-local-proxy", "false", + "--hc-use-mdns", "true", + "--language-language-only", "false", + "--run-dapp-server", "false" + ], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'ad4m'", + "cargo": { + "args": [ + "build", + "--bin=ad4m", + "--package=ad4m" + ], + "filter": { + "name": "ad4m", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'ad4m'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=ad4m", + "--package=ad4m" + ], + "filter": { + "name": "ad4m", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'ad4m-client'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=ad4m-client" + ], + "filter": { + "name": "ad4m-client", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'rust_executor'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=rust-executor" + ], + "filter": { + "name": "rust_executor", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'rust_executor_bin'", + "cargo": { + "args": [ + "build", + "--bin=rust_executor_bin", + "--package=rust-executor" + ], + "filter": { + "name": "rust_executor_bin", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'rust_executor_bin'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=rust_executor_bin", + "--package=rust-executor" + ], + "filter": { + "name": "rust_executor_bin", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'ad4m-launcher'", + "cargo": { + "args": [ + "build", + "--bin=ad4m-launcher", + "--package=ad4m-launcher" + ], + "filter": { + "name": "ad4m-launcher", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'ad4m-launcher'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=ad4m-launcher", + "--package=ad4m-launcher" + ], + "filter": { + "name": "ad4m-launcher", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git a/CHANGELOG b/CHANGELOG index 3c7d14bfc..92ee93011 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -15,14 +15,65 @@ This project _loosely_ adheres to [Semantic Versioning](https://semver.org/spec/ ### Fixed -## [0.5.1] - 25/07/2023 +## [0.6.0] - 22/09/2023 + +### Added + - Rust runtime which runs a GraphQL server (warp & juniper based), Deno runtime, Scryer prolog engine & Holochain. Rust runtime now used as the main logic for ADAM and loads old JS code where needed, giving migration path to full Rust. + - Entanglement proof logic to ADAM to allow linking of ADAM DID's, Holochain Keys & Blockchain wallets + - Ability to update ADAM Layer via the Launcher + - MacOS signing in CD + - Ability to create paginated queries directly to prolog engine + +### Changed + - Updated Holochain to 0.2.2 + - Updated Tauri to latest version 1.4.1 + - All seperate ADAM Layer services now run on seperate thread pools + - ADAM Rust CLI can now init and run an agent + - ADAM Rust CLI command line arguments for init and run refactor to be much cleaner + - Each Perspective now has its own independant Scryer Prolog thread + - Whole ADAM Layer package now runs from a single binary; either ADAM CLI or ADAM Launcher + - ADAM Languages now expected to be Deno compatible modules; not old ESM node JS + - JS executor now builds to be a Deno bundle to be consumed by rust-executor + +### Deprecated + +### Removed + - SWIPL Prolog + - No longer used a node library to parse results coming in and out of a prolog engine + - AD4M Host + - GraphQL server from JS code + - Agent key methods from JS code + - Independant Holochain, HC & Lair-keystore binaries ### Fixed + - Slow launcher start + - Very high CPU usage from ADAM and its related services + - No longer reconnection issues after sleeping computer or closing ADAM app instances + +## [0.5.1] - 25/07/2023 + +### Added + - After login / registration the launcher will now open by default [PR#278](https://github.com/perspect3vism/ad4m/pull/278) + - If the user has no installed applications, we now show some info about connecting apps to AD4M and a link to Flux [PR#278](https://github.com/perspect3vism/ad4m/pull/278) + - Holochain DHT status logs every 60 seconds [PR#277](https://github.com/perspect3vism/ad4m/pull/277) + - ad4m-connect connection settings gives you the option of connecting to local or remote [PR#278](https://github.com/perspect3vism/ad4m/pull/278) + - Convience overloads for telepresence functions: `setOnlineStatusU`, `sendSignalU`, `sendBroadcastU` in `NeighbourhoodProxy`, which take new type `PerspectiveUnsignedInput` as argument. This enables sending signed signals without having to create temporary perspectives. These functions sign the whole perspective including links. [PR#296](https://github.com/perspect3vism/ad4m/pull/296) + - ad4m-launcher now has update functionality [PR#304](https://github.com/perspect3vism/ad4m/pull/304) - Added missing Prolog declarations for new SDNA predicates `collection_adder/collection_remover`, fixing breaking apps using SDNA Subject Classes that don't have collections defined [PR#398](https://github.com/coasys/ad4m/pull/398) - Replaced old and depreciated link to AD4Min launcher in docs with link to ADAM Launcher releases [PR#393](https://github.com/coasys/ad4m/pull/393) ### Changed - Moved code that deals with the IPFS repo lock from JS to Rust, improving (in most cases: unblocking) startup of the Launcher on Windows [PR#392](https://github.com/coasys/ad4m/pull/392) + +### Deprecated + +### Removed + +### Fixed +- Fixed resolveLanguage not working for properties [PR#402](https://github.com/coasys/ad4m/pull/402) +- Fixed destructor not working because it would not remove all intial value [PR#402](https://github.com/coasys/ad4m/pull/402) +- Handle not being able to parse expression URL if the language didn't exists [PR#402](https://github.com/coasys/ad4m/pull/402) + ## [0.5.0] - 10/07/2023 ### Added diff --git a/Cargo.lock b/Cargo.lock index 326e26be5..f15a6dede 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,21 +7,27 @@ name = "Inflector" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] [[package]] name = "ad4m" -version = "0.5.1" +version = "0.6.0" dependencies = [ "ad4m-client", "anyhow", "chrono", - "clap", + "clap 4.4.1", "colour", - "dirs", + "ctrlc", + "dirs 4.0.0", "futures", "rand 0.8.5", "regex", - "rustyline", + "rust-executor", + "rustyline 10.1.1", "serde", "serde_json", "syntect", @@ -32,16 +38,13 @@ dependencies = [ [[package]] name = "ad4m-client" -version = "0.5.1" +version = "0.6.0" dependencies = [ "anyhow", - "async-std", "async-tungstenite", - "async_executors", "chrono", - "clap", - "cynic", - "dirs", + "clap 4.4.1", + "dirs 4.0.0", "futures", "graphql-ws-client", "graphql_client", @@ -49,7 +52,7 @@ dependencies = [ "rand 0.8.5", "regex", "reqwest", - "rustyline", + "rustyline 10.1.1", "serde", "serde_json", "tokio", @@ -59,37 +62,43 @@ dependencies = [ [[package]] name = "ad4m-launcher" -version = "0.5.1" +version = "0.6.0" dependencies = [ "ad4m-client", - "directories", + "chrono", + "colored 2.0.4", + "directories 4.0.1", + "env_logger", "libc", "localtunnel-client", "log", "log4rs", - "nix 0.23.1", + "nix 0.23.2", "open 2.1.3", "opener", "portpicker", - "remove_dir_all 0.7.0", + "remove_dir_all", "reqwest", + "rust-executor", "serde", "serde_json", - "sysinfo", + "sysinfo 0.29.9", "tauri", "tauri-build", "tauri-plugin-positioner", "tokio", + "tracing", + "tracing-subscriber 0.2.25", "uuid 0.8.2", ] [[package]] name = "addr2line" -version = "0.17.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "gimli", + "gimli 0.28.0", ] [[package]] @@ -98,15 +107,100 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array 0.14.7", +] + +[[package]] +name = "aes" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" +dependencies = [ + "cfg-if 1.0.0", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle 2.4.1", +] + +[[package]] +name = "aes-kw" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c" +dependencies = [ + "aes", +] + +[[package]] +name = "ahash" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.10", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if 1.0.0", + "getrandom 0.2.10", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -122,6 +216,18 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -131,20 +237,125 @@ dependencies = [ "libc", ] +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "anstream" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" + +[[package]] +name = "anstyle-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] + [[package]] name = "anyhow" -version = "1.0.66" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" dependencies = [ "backtrace", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arbitrary" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "arc-swap" -version = "1.5.1" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + +[[package]] +name = "argon2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e554a8638bdc1e4eae9984845306cc95f8a9208ba8d49c3859fd958b46774d" +dependencies = [ + "base64ct", + "blake2 0.10.6", + "cpufeatures", + "password-hash 0.5.0", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ascii" @@ -152,37 +363,117 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom 7.1.3", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.23", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "ast_node" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c704e2f6ee1a98223f5a7629a6ef0f3decb3b552ed282889dc957edff98ce1e6" +dependencies = [ + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "swc_macros_common", + "syn 1.0.109", +] + [[package]] name = "async-attributes" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ - "quote", - "syn", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] name = "async-channel" -version = "1.7.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ - "concurrent-queue 1.2.4", + "concurrent-queue", "event-listener", "futures-core", ] +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-compression" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d495b6dc0184693324491a5ac05f559acc97bf937ab31d7a1c33dd0016be6d2b" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + [[package]] name = "async-executor" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" +checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" dependencies = [ "async-lock", "async-task", - "concurrent-queue 2.0.0", - "fastrand", + "concurrent-queue", + "fastrand 1.9.0", "futures-lite", "slab", ] @@ -204,50 +495,60 @@ dependencies = [ [[package]] name = "async-io" -version = "1.10.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ "async-lock", - "autocfg", - "concurrent-queue 1.2.4", + "autocfg 1.1.0", + "cfg-if 1.0.0", + "concurrent-queue", "futures-lite", - "libc", "log", "parking", "polling", + "rustix 0.37.23", "slab", - "socket2", + "socket2 0.4.9", "waker-fn", - "winapi", ] [[package]] name = "async-lock" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ "event-listener", - "futures-lite", ] [[package]] name = "async-process" -version = "1.5.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" +checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" dependencies = [ "async-io", - "autocfg", + "async-lock", + "autocfg 1.1.0", "blocking", - "cfg-if", + "cfg-if 1.0.0", "event-listener", "futures-lite", - "libc", - "once_cell", - "signal-hook 0.3.14", - "winapi", + "rustix 0.37.23", + "signal-hook", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] @@ -278,40 +579,56 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "async-stream" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22068c0c19514942eefcfd4daf8976ef1aad84e61539f95cd200c35202f80af5" +dependencies = [ + "async-stream-impl", + "futures-core", +] + +[[package]] +name = "async-stream-impl" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25f9db3b38af870bf7e5cc649167533b493928e50744e2c30ae350230b414670" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "async-task" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" +checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" [[package]] -name = "async-tungstenite" -version = "0.16.1" +name = "async-trait" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5682ea0913e5c20780fe5785abacb85a411e7437bf52a1bedb93ddb3972cb8dd" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ - "async-std", - "futures-io", - "futures-util", - "log", - "pin-project-lite", - "tokio", - "tungstenite", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "async_executors" -version = "0.5.1" +name = "async-tungstenite" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0b8626a279ab86ef8ba31cc91549e3386eb7883cd94305896d438aa6535c62" +checksum = "1e0388bb7a400072bbb41ceb75d65c3baefb2ea99672fa22e85278452cd9b58b" dependencies = [ - "async-std", - "blanket", - "futures-core", - "futures-task", + "futures-io", "futures-util", - "pin-project", - "rustc_version 0.4.0", + "log", + "pin-project-lite", + "tokio", + "tungstenite 0.18.0", ] [[package]] @@ -321,7 +638,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" dependencies = [ "atk-sys", - "bitflags", + "bitflags 1.3.2", "glib", "libc", ] @@ -335,40 +652,42 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", +] + +[[package]] +name = "atomic-polyfill" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28" +dependencies = [ + "critical-section", ] [[package]] name = "atomic-waker" -version = "1.0.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" +checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" [[package]] -name = "attohttpc" -version = "0.22.0" +name = "atty" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcf00bc6d5abb29b5f97e3c61a90b6d3caa12f3faf897d4a3e3607c050a35a7" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "flate2", - "http", - "log", - "native-tls", - "serde", - "serde_json", - "serde_urlencoded", - "url", + "hermit-abi 0.1.19", + "libc", + "winapi 0.3.9", ] [[package]] -name = "atty" -version = "0.2.14" +name = "autocfg" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" dependencies = [ - "hermit-abi", - "libc", - "winapi", + "autocfg 1.1.0", ] [[package]] @@ -377,27 +696,100 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "automap" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b99d887f4066f8a1b4a713a8121fab07ff543863ac86177ebdee6b5cb18acf12" +dependencies = [ + "cfg-if 1.0.0", + "derive_more", + "serde", + "shrinkwraprs", +] + [[package]] name = "backtrace" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", - "miniz_oxide 0.5.4", - "object", + "miniz_oxide 0.7.1", + "object 0.32.0", "rustc-demangle", ] +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + [[package]] name = "base64" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" + +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +dependencies = [ + "outref", + "vsimd", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "better_scoped_tls" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de" +dependencies = [ + "scoped-tls", +] + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + [[package]] name = "bincode" version = "1.3.3" @@ -407,6 +799,24 @@ dependencies = [ "serde", ] +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +dependencies = [ + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -414,14 +824,88 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] -name = "blanket" -version = "0.2.0" +name = "bitflags" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" +dependencies = [ + "byte-tools", + "crypto-mac 0.7.0", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq 0.1.5", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" +dependencies = [ + "arrayref", + "arrayvec 0.7.4", + "constant_time_eq 0.2.6", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" +dependencies = [ + "arrayref", + "arrayvec 0.7.4", + "constant_time_eq 0.2.6", +] + +[[package]] +name = "blake3" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b04ce3d2372d05d1ef4ea3fdf427da6ae3c17ca06d688a107b5344836276bc3" +checksum = "199c42ab6972d92c9f8995f086273d25c42fc0f7b2a1fcefba465c1352d25ba5" dependencies = [ - "proc-macro2", - "quote", - "syn", + "arrayref", + "arrayvec 0.7.4", + "cc", + "cfg-if 1.0.0", + "constant_time_eq 0.3.0", ] [[package]] @@ -430,36 +914,95 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding 0.1.5", + "byte-tools", + "byteorder", + "generic-array 0.12.4", +] + [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + +[[package]] +name = "block-padding" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] name = "blocking" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" +checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" dependencies = [ "async-channel", + "async-lock", "async-task", "atomic-waker", - "fastrand", + "fastrand 1.9.0", "futures-lite", - "once_cell", + "log", +] + +[[package]] +name = "bloomfilter" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b92db7965d438b8b4b1c1d0aedd188440a1084593c9eb7f6657e3df7e906d934" +dependencies = [ + "bit-vec", + "getrandom 0.2.10", + "siphasher 1.0.0", +] + +[[package]] +name = "bls12_381_plus" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c681aa947677ec0c5ccfa6f14c0dd039ddbaa7b12952bf146bd5226a5f9880" +dependencies = [ + "digest 0.9.0", + "ff 0.12.1", + "group 0.12.1", + "heapless", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle 2.4.1", + "zeroize", ] [[package]] @@ -475,36 +1018,92 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "2.3.2" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", ] [[package]] -name = "bstr" -version = "0.2.17" +name = "bs58" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bson" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aeb8bae494e49dbc330dd23cf78f6f7accee22f640ce3ab17841badaa4ce232" dependencies = [ + "ahash 0.7.6", + "base64 0.13.1", + "bitvec", + "chrono", + "hex", + "indexmap 1.9.3", + "js-sys", "lazy_static", + "rand 0.8.5", + "serde", + "serde_bytes", + "serde_json", + "time 0.3.23", + "uuid 1.4.1", +] + +[[package]] +name = "bstr" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" +dependencies = [ "memchr", - "regex-automata", + "regex-automata 0.3.7", + "serde", ] [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "bytecheck" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] [[package]] name = "bytemuck" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" [[package]] name = "byteorder" @@ -514,15 +1113,45 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +dependencies = [ + "serde", +] [[package]] -name = "cache-padded" -version = "1.2.0" +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "c_linked_list" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b" + +[[package]] +name = "cache_control" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" +checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee" [[package]] name = "cairo-rs" @@ -530,7 +1159,7 @@ version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-sys-rs", "glib", "libc", @@ -545,24 +1174,69 @@ checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" dependencies = [ "glib-sys", "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", +] + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.18", + "serde", + "serde_json", + "thiserror", ] [[package]] name = "cargo_toml" -version = "0.13.0" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa0e3586af56b3bfa51fca452bd56e8dbbbd5d8d81cbf0b7e4e35b695b537eb8" +checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" dependencies = [ "serde", - "toml", + "toml 0.7.6", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", ] [[package]] name = "cc" -version = "1.0.77" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "jobserver", + "libc", +] [[package]] name = "cesu8" @@ -572,12 +1246,13 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfb" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" dependencies = [ "byteorder", - "uuid 0.8.2", + "fnv", + "uuid 1.4.1", ] [[package]] @@ -586,86 +1261,219 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" dependencies = [ - "smallvec", + "smallvec 1.11.0", ] [[package]] name = "cfg-expr" -version = "0.11.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" +checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9" dependencies = [ - "smallvec", + "smallvec 1.11.0", + "target-lexicon", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if 1.0.0", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "chashmap" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e651a8c1eb0cbbaa730f705e2531e75276c6f2bbe2eb12662cfd305213dff8" +dependencies = [ + "owning_ref", + "parking_lot 0.3.8", +] + [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "f56b4c72906975ca04becb8a30e102dfecddd0c06181e3e95ddc444be28881f8" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "serde", - "time 0.1.44", + "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets 0.48.5", +] + +[[package]] +name = "cid" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" +dependencies = [ + "core2", + "multibase", + "multihash", + "serde", + "unsigned-varint", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags 1.3.2", + "strsim 0.8.0", + "textwrap 0.11.0", + "unicode-width", + "vec_map", ] [[package]] name = "clap" -version = "4.0.26" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2148adefda54e14492fb9bddcc600b4344c5d1a3123bd666dcb939c6f0e0e57e" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", - "bitflags", - "clap_derive", - "clap_lex", + "bitflags 1.3.2", + "clap_derive 3.2.25", + "clap_lex 0.2.4", + "indexmap 1.9.3", "once_cell", - "strsim", + "strsim 0.10.0", "termcolor", + "textwrap 0.16.0", +] + +[[package]] +name = "clap" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c8d502cbaec4595d2e7d5f61e318f05417bd2b66fdc3809498f0d3fdf0bea27" +dependencies = [ + "clap_builder", + "clap_derive 4.4.0", + "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5891c7bc0edb3e1c2204fc5e94009affabeb1821c9e5fdc3959536c5c0bb984d" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.5.1", + "strsim 0.10.0", + "terminal_size", ] [[package]] name = "clap_derive" -version = "4.0.21" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" dependencies = [ - "heck 0.4.0", + "heck 0.4.1", "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "clap_derive" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9fd1a5729c4548118d7d70ff234a44868d00489a4b6597b0b020918a0e91a1a" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] name = "clap_lex" -version = "0.3.0" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" dependencies = [ "os_str_bytes", ] +[[package]] +name = "clap_lex" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" + [[package]] name = "clipboard-win" -version = "4.4.2" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" dependencies = [ "error-code", "str-buf", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +dependencies = [ + "bitflags 1.3.2", ] [[package]] @@ -674,7 +1482,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "cocoa-foundation", "core-foundation", @@ -686,11 +1494,11 @@ dependencies = [ [[package]] name = "cocoa-foundation" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "core-foundation", "core-graphics-types", @@ -700,28 +1508,46 @@ dependencies = [ ] [[package]] -name = "codespan-reporting" -version = "0.11.1" +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "colored" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355" dependencies = [ - "termcolor", - "unicode-width", + "is-terminal", + "lazy_static", + "winapi 0.3.9", ] [[package]] -name = "color_quant" -version = "1.1.0" +name = "colored" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +dependencies = [ + "is-terminal", + "lazy_static", + "windows-sys 0.48.0", +] [[package]] name = "colour" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27e4532f26f510c24bb8477d963c0c3ef27e293c3b2c507cccb0536d493201a" +checksum = "0f58a501d883cdb7f1a780407eefba005458b8fdf7c09213ea0104879bf87aa9" dependencies = [ - "crossterm", + "crossterm 0.26.1", ] [[package]] @@ -749,20 +1575,61 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "1.2.4" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" dependencies = [ - "cache-padded", + "crossbeam-utils", ] [[package]] -name = "concurrent-queue" -version = "2.0.0" +name = "console_static_text" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b" +checksum = "f4be93df536dfbcbd39ff7c129635da089901116b88bfc29ec1acb9b56f8ff35" dependencies = [ - "crossbeam-utils", + "unicode-width", + "vte", +] + +[[package]] +name = "const-oid" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "contrafact" +version = "0.2.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bfae7a2ef93841d7e9e5ef69e387b26e70f7b156434b6b95714006cc00e1f9" +dependencies = [ + "arbitrary", + "derive_more", + "either", + "itertools 0.10.5", + "num", + "once_cell", + "rand 0.7.3", + "tracing", ] [[package]] @@ -783,9 +1650,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "core-graphics" @@ -793,7 +1660,7 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-graphics-types", "foreign-types", @@ -802,4038 +1669,11868 @@ dependencies = [ [[package]] name = "core-graphics-types" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", - "foreign-types", "libc", ] [[package]] -name = "cpufeatures" -version = "0.2.5" +name = "core2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" dependencies = [ - "libc", + "memchr", ] [[package]] -name = "crc32fast" -version = "1.3.2" +name = "corosensei" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "80128832c58ea9cbd041d2a759ec449224487b2c1e400453d99d244eead87a8e" dependencies = [ - "cfg-if", + "autocfg 1.1.0", + "cfg-if 1.0.0", + "libc", + "scopeguard", + "windows-sys 0.33.0", ] [[package]] -name = "crossbeam-channel" -version = "0.5.6" +name = "cpu-time" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" dependencies = [ - "cfg-if", - "crossbeam-utils", + "libc", + "winapi 0.3.9", ] [[package]] -name = "crossbeam-deque" -version = "0.8.2" +name = "cpufeatures" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", + "libc", ] [[package]] -name = "crossbeam-epoch" -version = "0.9.13" +name = "cranelift-bforest" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset 0.7.1", - "scopeguard", + "cranelift-entity", ] [[package]] -name = "crossbeam-utils" -version = "0.8.14" +name = "cranelift-codegen" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" dependencies = [ - "cfg-if", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "gimli 0.26.2", + "log", + "regalloc", + "smallvec 1.11.0", + "target-lexicon", ] [[package]] -name = "crossterm" -version = "0.19.0" +name = "cranelift-codegen-meta" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c36c10130df424b2f3552fcc2ddcd9b28a27b1e54b358b45874f88d1ca6888c" +checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" dependencies = [ - "bitflags", - "crossterm_winapi", - "lazy_static", - "libc", - "mio 0.7.14", - "parking_lot 0.11.2", - "signal-hook 0.1.17", - "winapi", + "cranelift-codegen-shared", ] [[package]] -name = "crossterm_winapi" -version = "0.7.0" +name = "cranelift-codegen-shared" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da8964ace4d3e4a044fd027919b2237000b24315a37c916f61809f1ff2140b9" -dependencies = [ - "winapi", -] +checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" [[package]] -name = "crypto-common" -version = "0.1.6" +name = "cranelift-entity" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] +checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" [[package]] -name = "cssparser" -version = "0.27.2" +name = "cranelift-frontend" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" dependencies = [ - "cssparser-macros", - "dtoa-short", - "itoa 0.4.8", - "matches", - "phf 0.8.0", - "proc-macro2", - "quote", - "smallvec", - "syn", + "cranelift-codegen", + "log", + "smallvec 1.11.0", + "target-lexicon", ] [[package]] -name = "cssparser-macros" -version = "0.6.0" +name = "crc32fast" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "quote", - "syn", + "cfg-if 1.0.0", ] [[package]] -name = "ctor" -version = "0.1.26" +name = "critical-section" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn", -] +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" [[package]] -name = "cty" -version = "0.2.2" +name = "cron" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" +checksum = "e009ed0b762cf7a967a34dfdc67d5967d3f828f12901d37081432c3dd1668f8f" +dependencies = [ + "chrono", + "nom 4.1.1", + "once_cell", +] [[package]] -name = "cxx" -version = "1.0.82" +name = "crossbeam-channel" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", + "cfg-if 1.0.0", + "crossbeam-utils", ] [[package]] -name = "cxx-build" -version = "1.0.82" +name = "crossbeam-deque" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.82" +name = "crossbeam-epoch" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg 1.1.0", + "cfg-if 1.0.0", + "crossbeam-utils", + "memoffset 0.9.0", + "scopeguard", +] [[package]] -name = "cxxbridge-macro" -version = "1.0.82" +name = "crossbeam-utils" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ - "proc-macro2", - "quote", - "syn", + "cfg-if 1.0.0", ] [[package]] -name = "cynic" -version = "1.0.0" +name = "crossterm" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a086fdece2d6206e52894d978a09b09efca1e61ac59d69a934eab74d8d9ee40" +checksum = "c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d" dependencies = [ - "cynic-proc-macros", - "json-decode", - "serde", - "serde_json", - "thiserror", + "bitflags 1.3.2", + "crossterm_winapi 0.8.0", + "libc", + "mio 0.7.14", + "parking_lot 0.11.2", + "signal-hook", + "signal-hook-mio", + "winapi 0.3.9", ] [[package]] -name = "cynic-codegen" -version = "1.0.0" +name = "crossterm" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd9f0852fe3d3637d4dccb4b69e5a8f881214fc38907a528385ff71cd7b15c3e" +checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13" dependencies = [ - "Inflector", - "darling", - "graphql-parser 0.3.0", - "lazy_static", - "proc-macro2", - "quote", - "strsim", - "syn", + "bitflags 1.3.2", + "crossterm_winapi 0.9.1", + "libc", + "mio 0.8.8", + "parking_lot 0.12.1", + "signal-hook", + "signal-hook-mio", + "winapi 0.3.9", ] [[package]] -name = "cynic-proc-macros" -version = "1.0.0" +name = "crossterm_winapi" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cabdef46a6ff3c06e337a9c0c6b7d2f71aefae4ab582ed319a0d454ea1085f9" +checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" dependencies = [ - "cynic-codegen", - "syn", + "winapi 0.3.9", ] [[package]] -name = "darling" -version = "0.13.4" +name = "crossterm_winapi" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" dependencies = [ - "darling_core", - "darling_macro", + "winapi 0.3.9", ] [[package]] -name = "darling_core" -version = "0.13.4" +name = "crrl" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +checksum = "2db40892a506901e4e8281f00e42687df82d1d3448cb0289ae9183a60cb42ec1" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", + "blake2 0.10.6", + "rand_core 0.6.4", + "sha2 0.10.7", ] [[package]] -name = "darling_macro" -version = "0.13.4" +name = "crunchy" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core", - "quote", - "syn", -] +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] -name = "dbus" -version = "0.9.6" +name = "crypto-bigint" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8bcdd56d2e5c4ed26a529c5a9029f5db8290d433497506f958eae3be148eb6" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ - "libc", - "libdbus-sys", - "winapi", + "generic-array 0.14.7", + "rand_core 0.6.4", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "derivative" -version = "2.2.0" +name = "crypto-bigint" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" dependencies = [ - "proc-macro2", - "quote", - "syn", + "generic-array 0.14.7", + "rand_core 0.6.4", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "derive_more" -version = "0.99.17" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn", + "generic-array 0.14.7", + "rand_core 0.6.4", + "typenum", ] [[package]] -name = "destructure_traitobject" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" - -[[package]] -name = "digest" -version = "0.9.0" +name = "crypto-mac" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" dependencies = [ - "generic-array", + "generic-array 0.12.4", + "subtle 1.0.0", ] [[package]] -name = "digest" -version = "0.10.6" +name = "crypto-mac" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "block-buffer 0.10.3", - "crypto-common", + "generic-array 0.14.7", + "subtle 2.4.1", ] [[package]] -name = "directories" -version = "4.0.1" +name = "crypto-mac" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" +checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "dirs-sys", + "generic-array 0.14.7", + "subtle 2.4.1", ] [[package]] -name = "dirs" -version = "4.0.0" +name = "crypto_box" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +checksum = "fd26c32de5307fd08aac445a75c43472b14559d5dccdfba8022dbcd075838ebc" dependencies = [ - "dirs-sys", + "aead", + "chacha20", + "chacha20poly1305", + "salsa20", + "x25519-dalek 1.1.1", + "xsalsa20poly1305", + "zeroize", ] [[package]] -name = "dirs-next" -version = "2.0.0" +name = "cssparser" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" dependencies = [ - "cfg-if", - "dirs-sys-next", + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2 1.0.66", + "quote 1.0.33", + "smallvec 1.11.0", + "syn 1.0.109", ] [[package]] -name = "dirs-sys" -version = "0.3.7" +name = "cssparser-macros" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ - "libc", - "redox_users", - "winapi", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "ctor" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ - "libc", - "redox_users", - "winapi", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - -[[package]] -name = "dtoa" -version = "0.4.8" +name = "ctr" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] [[package]] -name = "dtoa-short" -version = "0.3.3" +name = "ctrlc" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e" dependencies = [ - "dtoa", + "nix 0.26.4", + "windows-sys 0.48.0", ] [[package]] -name = "dunce" -version = "1.0.3" +name = "curve25519-dalek" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c" +checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" +dependencies = [ + "byteorder", + "digest 0.8.1", + "rand_core 0.5.1", + "subtle 2.4.1", + "zeroize", +] [[package]] -name = "either" -version = "1.8.0" +name = "curve25519-dalek" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle 2.4.1", + "zeroize", +] [[package]] -name = "embed_plist" -version = "1.2.2" +name = "curve25519-dalek" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" +checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", + "fiat-crypto", + "platforms", + "rustc_version 0.4.0", + "subtle 2.4.1", + "zeroize", +] [[package]] -name = "encoding_rs" -version = "0.8.31" +name = "curve25519-dalek-derive" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ - "cfg-if", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "endian-type" -version = "0.1.2" +name = "darling" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" +checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +dependencies = [ + "darling_core 0.10.2", + "darling_macro 0.10.2", +] [[package]] -name = "errno" -version = "0.2.8" +name = "darling" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" dependencies = [ - "errno-dragonfly", - "libc", - "winapi", + "darling_core 0.13.4", + "darling_macro 0.13.4", ] [[package]] -name = "errno-dragonfly" -version = "0.1.2" +name = "darling" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ - "cc", - "libc", + "darling_core 0.14.4", + "darling_macro 0.14.4", ] [[package]] -name = "error-code" -version = "2.3.1" +name = "darling" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" dependencies = [ - "libc", - "str-buf", + "darling_core 0.20.3", + "darling_macro 0.20.3", ] [[package]] -name = "event-listener" -version = "2.5.3" +name = "darling_core" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.66", + "quote 1.0.33", + "strsim 0.9.3", + "syn 1.0.109", +] [[package]] -name = "failure" -version = "0.1.8" +name = "darling_core" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ - "backtrace", - "failure_derive", + "fnv", + "ident_case", + "proc-macro2 1.0.66", + "quote 1.0.33", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] -name = "failure_derive" -version = "0.1.8" +name = "darling_core" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", + "fnv", + "ident_case", + "proc-macro2 1.0.66", + "quote 1.0.33", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] -name = "fastrand" -version = "1.8.0" +name = "darling_core" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" dependencies = [ - "instant", + "fnv", + "ident_case", + "proc-macro2 1.0.66", + "quote 1.0.33", + "strsim 0.10.0", + "syn 2.0.29", ] [[package]] -name = "fd-lock" -version = "3.0.8" +name = "darling_macro" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb21c69b9fea5e15dbc1049e4b77145dd0ba1c84019c488102de0dc4ea4b0a27" +checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ - "cfg-if", - "rustix", - "windows-sys 0.42.0", + "darling_core 0.10.2", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "field-offset" -version = "0.3.4" +name = "darling_macro" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ - "memoffset 0.6.5", - "rustc_version 0.3.3", + "darling_core 0.13.4", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "filetime" -version = "0.2.18" +name = "darling_macro" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "windows-sys 0.42.0", + "darling_core 0.14.4", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "flate2" -version = "1.0.25" +name = "darling_macro" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ - "crc32fast", - "miniz_oxide 0.6.2", + "darling_core 0.20.3", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "fnv" -version = "1.0.7" +name = "dary_heap" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" [[package]] -name = "foreign-types" -version = "0.3.2" +name = "dashmap" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" dependencies = [ - "foreign-types-shared", + "cfg-if 1.0.0", + "num_cpus", ] [[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.1.0" +name = "dashmap" +version = "5.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "9b101bb8960ab42ada6ae98eb82afcea4452294294c45b681295af26610d6d28" dependencies = [ - "percent-encoding", + "cfg-if 1.0.0", + "hashbrown 0.14.0", + "lock_api 0.4.10", + "once_cell", + "parking_lot_core 0.9.8", ] [[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +name = "dashu" +version = "0.3.1" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" dependencies = [ - "mac", - "new_debug_unreachable", + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-macros", + "dashu-ratio", ] [[package]] -name = "futures" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +name = "dashu-base" +version = "0.3.1" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" + +[[package]] +name = "dashu-float" +version = "0.3.2" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", + "dashu-base", + "dashu-int", + "num-order", + "num-traits", + "static_assertions", ] [[package]] -name = "futures-channel" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +name = "dashu-int" +version = "0.3.1" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" dependencies = [ - "futures-core", - "futures-sink", + "cfg-if 1.0.0", + "dashu-base", + "num-modular 0.5.2", + "num-order", + "num-traits", + "static_assertions", ] [[package]] -name = "futures-core" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +name = "dashu-macros" +version = "0.3.1" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-ratio", + "proc-macro2 1.0.66", + "quote 1.0.33", +] [[package]] -name = "futures-executor" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +name = "dashu-ratio" +version = "0.3.2" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" dependencies = [ - "futures-core", - "futures-task", - "futures-util", + "dashu-base", + "dashu-float", + "dashu-int", + "num-order", + "num-traits", ] [[package]] -name = "futures-io" -version = "0.3.25" +name = "data-encoding" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] -name = "futures-lite" -version = "1.12.0" +name = "data-encoding-macro" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", + "data-encoding", + "data-encoding-macro-internal", ] [[package]] -name = "futures-macro" -version = "0.3.25" +name = "data-encoding-macro-internal" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" dependencies = [ - "proc-macro2", - "quote", - "syn", + "data-encoding", + "syn 1.0.109", ] [[package]] -name = "futures-sink" -version = "0.3.25" +name = "data-url" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5" [[package]] -name = "futures-task" -version = "0.3.25" +name = "data-url" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f" [[package]] -name = "futures-util" -version = "0.3.25" +name = "dbus" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", + "libc", + "libdbus-sys", + "winapi 0.3.9", ] [[package]] -name = "fxhash" -version = "0.2.1" +name = "debugid" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ - "byteorder", + "serde", + "uuid 1.4.1", ] [[package]] -name = "gdk" -version = "0.15.4" +name = "deno-proc-macro-rules" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +checksum = "3c65c2ffdafc1564565200967edc4851c7b55422d3913466688907efd05ea26f" dependencies = [ - "bitflags", - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio", - "glib", - "libc", - "pango", + "deno-proc-macro-rules-macros", + "proc-macro2 1.0.66", + "syn 2.0.29", ] [[package]] -name = "gdk-pixbuf" -version = "0.15.11" +name = "deno-proc-macro-rules-macros" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +checksum = "3047b312b7451e3190865713a4dd6e1f821aed614ada219766ebc3024a690435" dependencies = [ - "bitflags", - "gdk-pixbuf-sys", - "gio", - "glib", - "libc", + "once_cell", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "gdk-pixbuf-sys" -version = "0.15.10" +name = "deno_ast" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +checksum = "6b17e25531279d9795aeb076909c91c9b369fa63fd4d801486950577d0457d22" dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.3", + "anyhow", + "base64 0.13.1", + "deno_media_type", + "dprint-swc-ext", + "serde", + "swc_atoms", + "swc_common", + "swc_config", + "swc_config_macro", + "swc_ecma_ast", + "swc_ecma_codegen", + "swc_ecma_codegen_macros", + "swc_ecma_loader", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_transforms_proposal", + "swc_ecma_transforms_react", + "swc_ecma_transforms_typescript", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_eq_ignore_macros", + "swc_macros_common", + "swc_visit", + "swc_visit_macros", + "text_lines", + "url 2.4.1", +] + +[[package]] +name = "deno_broadcast_channel" +version = "0.108.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af3e8ca691a282c918cc5c223dcd5840286954a396e3108ade4c3c3b55017ebf" +dependencies = [ + "async-trait", + "deno_core", + "tokio", + "uuid 1.4.1", ] [[package]] -name = "gdk-sys" -version = "0.15.1" +name = "deno_cache" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +checksum = "bc385e88d95f925f3384319cde1e813022d4842a9a791c79b47699334e81d516" dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps 6.0.3", + "async-trait", + "deno_core", + "rusqlite", + "serde", + "sha2 0.10.7", + "tokio", ] [[package]] -name = "gdkx11-sys" -version = "0.15.1" +name = "deno_console" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +checksum = "7a3df41ff26499c3f4f352f8fc1fe6bb50c39121675bf594b3af511c28db84c2" dependencies = [ - "gdk-sys", - "glib-sys", - "libc", - "system-deps 6.0.3", - "x11", + "deno_core", ] [[package]] -name = "generator" -version = "0.7.1" +name = "deno_core" +version = "0.199.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc184cace1cea8335047a471cc1da80f18acf8a76f3bab2028d499e328948ec7" +checksum = "70fbd0cb620ac36fac08d708c5f01362280c5aa8149657a225db4932bd73758e" dependencies = [ - "cc", + "anyhow", + "bytes", + "deno_ops", + "futures", + "indexmap 1.9.3", "libc", "log", - "rustversion", - "windows 0.32.0", + "once_cell", + "parking_lot 0.12.1", + "pin-project", + "serde", + "serde_json", + "serde_v8", + "smallvec 1.11.0", + "sourcemap", + "tokio", + "url 2.4.1", + "v8", ] [[package]] -name = "generic-array" -version = "0.14.6" +name = "deno_crypto" +version = "0.128.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "5000445c43538cb54a021e761071137ebab615c751e17178e564c56647414f5c" dependencies = [ - "typenum", - "version_check", + "aes", + "aes-gcm", + "aes-kw", + "base64 0.13.1", + "cbc", + "const-oid", + "ctr", + "curve25519-dalek 2.1.3", + "deno_core", + "deno_web", + "elliptic-curve 0.12.3", + "num-traits", + "once_cell", + "p256 0.11.1", + "p384 0.11.2", + "rand 0.8.5", + "ring", + "rsa", + "sec1 0.3.0", + "serde", + "serde_bytes", + "sha1", + "sha2 0.10.7", + "signature 1.6.4", + "spki 0.6.0", + "tokio", + "uuid 1.4.1", + "x25519-dalek 2.0.0", ] [[package]] -name = "getrandom" -version = "0.1.16" +name = "deno_fetch" +version = "0.138.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "af49c674cf373a8946e67dae1d2badc0c1176f9ecb84cda168c5c9421ef15b3a" dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "bytes", + "data-url 0.2.0", + "deno_core", + "deno_tls", + "dyn-clone", + "http", + "reqwest", + "serde", + "tokio", + "tokio-util", ] [[package]] -name = "getrandom" -version = "0.2.8" +name = "deno_ffi" +version = "0.101.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "6cb34b1d3bb618b0bbbc5ebc148301263824a5673290483ff0a52386913a43e2" dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "deno_core", + "dlopen", + "dynasmrt", + "libffi 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libffi-sys 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde", + "serde-value", + "serde_json", + "tokio", + "winapi 0.3.9", ] [[package]] -name = "gimli" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" - -[[package]] -name = "gio" -version = "0.15.12" +name = "deno_fs" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +checksum = "5ddb0692853905a87a96666c77d58e4adf1cf3671d1a7ec7edafe301cfce9441" dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-io", - "gio-sys", - "glib", + "async-trait", + "deno_core", + "deno_io", + "filetime", + "fs3", "libc", - "once_cell", - "thiserror", + "log", + "nix 0.24.2", + "rand 0.8.5", + "serde", + "tokio", + "winapi 0.3.9", ] [[package]] -name = "gio-sys" -version = "0.15.10" +name = "deno_http" +version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +checksum = "8d083d63029b9cd366bcee007db8348e7c515c19e5432f0d2f138f03e5908ca1" dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.3", - "winapi", + "async-compression 0.3.15", + "async-trait", + "base64 0.13.1", + "brotli", + "bytes", + "cache_control", + "deno_core", + "deno_net", + "deno_websocket", + "flate2", + "fly-accept-encoding", + "http", + "httparse", + "hyper 0.14.27", + "hyper 1.0.0-rc.4", + "memmem", + "mime", + "once_cell", + "percent-encoding 2.3.0", + "phf 0.10.1", + "pin-project", + "ring", + "serde", + "slab", + "smallvec 1.11.0", + "thiserror", + "tokio", + "tokio-util", ] [[package]] -name = "glib" -version = "0.15.12" +name = "deno_io" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +checksum = "b4b0886f3be06a065c9738b4162c30634ea2645eaad7efcf13ec197c63d67d15" dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "glib-macros", - "glib-sys", - "gobject-sys", - "libc", + "async-trait", + "deno_core", + "filetime", + "fs3", "once_cell", - "smallvec", - "thiserror", + "tokio", + "winapi 0.3.9", ] [[package]] -name = "glib-macros" -version = "0.15.11" +name = "deno_kv" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" +checksum = "677532e9ee16ef744205bae030f5047f66f5ff5ad6359b6a0e393197a78cd2b3" dependencies = [ "anyhow", - "heck 0.4.0", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "async-trait", + "base64 0.13.1", + "deno_core", + "hex", + "num-bigint", + "rand 0.8.5", + "rusqlite", + "serde", + "serde_json", + "tokio", + "uuid 1.4.1", ] [[package]] -name = "glib-sys" -version = "0.15.10" +name = "deno_media_type" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +checksum = "a798670c20308e5770cc0775de821424ff9e85665b602928509c8c70430b3ee0" dependencies = [ - "libc", - "system-deps 6.0.3", + "data-url 0.3.0", + "serde", + "url 2.4.1", ] [[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "globset" -version = "0.4.9" +name = "deno_napi" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +checksum = "aef1534b43dcf5cb8d28ee72035e4d5a426952fa305b75f0100dac3c89c99a4e" dependencies = [ - "aho-corasick", - "bstr", - "fnv", - "log", - "regex", + "deno_core", + "libloading 0.7.4", ] [[package]] -name = "gloo-timers" -version = "0.2.4" +name = "deno_net" +version = "0.106.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9" +checksum = "a76fa1823075955b96bbc1a58db8584f4b4b6da3411c4be4d77063852ccf067a" dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", + "deno_core", + "deno_tls", + "enum-as-inner", + "log", + "pin-project", + "serde", + "socket2 0.4.9", + "tokio", + "trust-dns-proto", + "trust-dns-resolver", ] [[package]] -name = "gobject-sys" -version = "0.15.10" +name = "deno_node" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +checksum = "ede647cd70b9cf8f3d678cf3e07844a74ac1d3f20beba7bc4cd63ffd1349a56e" dependencies = [ - "glib-sys", + "aes", + "brotli", + "cbc", + "data-encoding", + "deno_core", + "deno_fetch", + "deno_fs", + "deno_media_type", + "deno_npm", + "deno_semver", + "digest 0.10.7", + "dsa", + "ecb", + "elliptic-curve 0.13.5", + "errno 0.2.8", + "hex", + "hkdf 0.12.3", + "idna 0.3.0", + "indexmap 1.9.3", + "lazy-regex", "libc", - "system-deps 6.0.3", + "libz-sys", + "md-5", + "md4", + "num-bigint", + "num-bigint-dig", + "num-integer", + "num-traits", + "once_cell", + "p224", + "p256 0.13.2", + "p384 0.13.0", + "path-clean", + "pbkdf2 0.12.2", + "rand 0.8.5", + "regex", + "reqwest", + "ring", + "ripemd", + "rsa", + "scrypt", + "secp256k1", + "serde", + "sha-1 0.10.0", + "sha2 0.10.7", + "signature 1.6.4", + "tokio", + "typenum", + "whoami", + "winapi 0.3.9", + "x25519-dalek 2.0.0", + "x509-parser", ] [[package]] -name = "graphql-introspection-query" -version = "0.2.0" +name = "deno_npm" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" +checksum = "fa5d1097de53e8ce3316d3e44095e253719ae367cf7478263f83082f44dddabf" dependencies = [ + "anyhow", + "async-trait", + "deno_semver", + "futures", + "log", + "monch", "serde", + "thiserror", ] [[package]] -name = "graphql-parser" -version = "0.2.3" +name = "deno_ops" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5613c31f18676f164112732202124f373bb2103ff017b3b85ca954ea6a66ada" +checksum = "8b345c096fd8433337ed8e1727f4732397c134e188e1739c88b0c077869020f3" dependencies = [ - "combine 3.8.1", - "failure", + "deno-proc-macro-rules", + "lazy-regex", + "once_cell", + "pmutil 0.6.1", + "proc-macro-crate", + "proc-macro2 1.0.66", + "quote 1.0.33", + "regex", + "strum 0.25.0", + "strum_macros 0.25.2", + "syn 1.0.109", + "syn 2.0.29", + "thiserror", ] [[package]] -name = "graphql-parser" -version = "0.3.0" +name = "deno_runtime" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1abd4ce5247dfc04a03ccde70f87a048458c9356c7e41d21ad8c407b3dde6f2" +checksum = "a15dd7fe2a7c53ffbbd55966eb7bf2298291b77a47e043f768f0aa1732f61e95" dependencies = [ - "combine 3.8.1", - "thiserror", + "atty", + "console_static_text", + "deno_ast", + "deno_broadcast_channel", + "deno_cache", + "deno_console", + "deno_core", + "deno_crypto", + "deno_fetch", + "deno_ffi", + "deno_fs", + "deno_http", + "deno_io", + "deno_kv", + "deno_napi", + "deno_net", + "deno_node", + "deno_tls", + "deno_url", + "deno_web", + "deno_webidl", + "deno_websocket", + "deno_webstorage", + "dlopen", + "encoding_rs", + "fastwebsockets", + "filetime", + "fs3", + "fwdansi", + "http", + "hyper 0.14.27", + "libc", + "log", + "netif", + "nix 0.24.2", + "notify", + "ntapi 0.4.1", + "once_cell", + "regex", + "ring", + "serde", + "signal-hook-registry", + "termcolor", + "tokio", + "tokio-metrics", + "uuid 1.4.1", + "winapi 0.3.9", + "winres", ] [[package]] -name = "graphql-ws-client" -version = "0.2.0" +name = "deno_semver" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dd1e95f1c059e284540ce8dd4fcf2437e48cd72fe7d62dfe57d33c185f6b7" +checksum = "96f99990457915af1f444900003ffd5a9d3ab2e5337b06d681e56ca371b3e11f" dependencies = [ - "async-tungstenite", - "cynic", - "futures", - "graphql_client", - "log", - "pin-project", + "monch", + "once_cell", "serde", - "serde_json", "thiserror", - "uuid 0.8.2", + "url 2.4.1", ] [[package]] -name = "graphql_client" -version = "0.10.0" +name = "deno_tls" +version = "0.101.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b58571cfc3cc42c3e8ff44fc6cfbb6c0dea17ed22d20f9d8f1efc4e8209a3f" +checksum = "02167d4913ff4b1f93f0f3182b6ebee67f41129a94ea9ef8ce15dff51649aff4" dependencies = [ - "graphql_query_derive", + "deno_core", + "once_cell", + "rustls 0.21.7", + "rustls-native-certs", + "rustls-pemfile 1.0.3", "serde", - "serde_json", + "webpki 0.22.0", + "webpki-roots 0.22.6", ] [[package]] -name = "graphql_client_codegen" -version = "0.10.0" +name = "deno_url" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4bf9cd823359d74ad3d3ecf1afd4a975f4ff2f891cdf9a66744606daf52de8c" +checksum = "8fe9282c24607371fd2e6db7fca22da861032317c1396c08506a5a04ec81927a" dependencies = [ - "graphql-introspection-query", - "graphql-parser 0.2.3", - "heck 0.3.3", - "lazy_static", - "proc-macro2", - "quote", + "deno_core", "serde", - "serde_json", - "syn", + "urlpattern", ] [[package]] -name = "graphql_query_derive" -version = "0.10.0" +name = "deno_web" +version = "0.145.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56b093bfda71de1da99758b036f4cc811fd2511c8a76f75680e9ffbd2bb4251" +checksum = "b757302c2f04de142ee2962078f5f255caef80c792a9989fa860b867143a71e7" dependencies = [ - "graphql_client_codegen", - "proc-macro2", - "syn", + "async-trait", + "base64-simd", + "deno_core", + "encoding_rs", + "flate2", + "serde", + "tokio", + "uuid 1.4.1", + "windows-sys 0.48.0", ] [[package]] -name = "gtk" -version = "0.15.5" +name = "deno_webidl" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +checksum = "1a12d8e0f1ef5af84075819a2568af54f8e073886a2c2941ac6e34c2092508d7" dependencies = [ - "atk", - "bitflags", - "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio", - "glib", - "gtk-sys", - "gtk3-macros", - "libc", - "once_cell", - "pango", - "pkg-config", + "deno_core", ] [[package]] -name = "gtk-sys" -version = "0.15.3" +name = "deno_websocket" +version = "0.119.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +checksum = "3249bed57e808fdb99f7d39d8711210b2a0380638f0520447cb4794200c81d56" dependencies = [ - "atk-sys", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "system-deps 6.0.3", + "bytes", + "deno_core", + "deno_net", + "deno_tls", + "fastwebsockets", + "http", + "hyper 0.14.27", + "once_cell", + "serde", + "tokio", + "tokio-rustls 0.24.1", ] [[package]] -name = "gtk3-macros" -version = "0.15.4" +name = "deno_webstorage" +version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +checksum = "03f122fd89054593e11e34fedbc063d00b407ea2b26c910171de4416618140b1" dependencies = [ - "anyhow", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "deno_core", + "deno_web", + "rusqlite", + "serde", ] [[package]] -name = "h2" -version = "0.3.15" +name = "der" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", + "const-oid", + "pem-rfc7468 0.6.0", + "zeroize", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "der" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] [[package]] -name = "heck" -version = "0.3.3" +name = "der-parser" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "unicode-segmentation", + "asn1-rs", + "displaydoc", + "nom 7.1.3", + "num-bigint", + "num-traits", + "rusticata-macros", ] [[package]] -name = "heck" -version = "0.4.0" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "derive_arbitrary" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" dependencies = [ - "libc", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "html5ever" -version = "0.25.2" +name = "derive_builder" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0" dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn", + "darling 0.10.2", + "derive_builder_core", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "http" -version = "0.2.8" +name = "derive_builder_core" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" dependencies = [ - "bytes", - "fnv", - "itoa 1.0.4", + "darling 0.10.2", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "http-body" -version = "0.4.5" +name = "derive_deref" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "dcdbcee2d9941369faba772587a565f4f534e42cb8d17e5295871de730163b2b" dependencies = [ - "bytes", - "http", - "pin-project-lite", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "http-range" -version = "0.1.5" +name = "derive_more" +version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2 1.0.66", + "quote 1.0.33", + "rustc_version 0.4.0", + "syn 1.0.109", +] [[package]] -name = "httparse" -version = "1.8.0" +name = "derive_utils" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "532b4c15dccee12c7044f1fcad956e98410860b22231e44a3b827464797ca7bf" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] [[package]] -name = "httpdate" -version = "1.0.2" +name = "destructure_traitobject" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" [[package]] -name = "humantime" -version = "2.1.0" +name = "did-key" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "3ed21f9ed50f9d3f79b6ba84f2cf8a536399c3500bc99406c1bbc1e0c598524e" +dependencies = [ + "arrayref", + "base64 0.13.1", + "bls12_381_plus", + "bs58", + "curve25519-dalek 3.2.0", + "did_url", + "ed25519-dalek", + "getrandom 0.2.10", + "hkdf 0.11.0", + "json-patch 0.2.7", + "libsecp256k1", + "p256 0.11.1", + "serde", + "serde_json", + "sha2 0.9.9", + "x25519-dalek 1.1.1", +] [[package]] -name = "hyper" -version = "0.14.23" +name = "did_url" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +checksum = "70d5f6334e473e3bb5650ab4ef3e4c910296b76968e62758e7c66157ff767c05" dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa 1.0.4", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", + "form_urlencoded", ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "diff" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] -name = "iana-time-zone" -version = "0.1.53" +name = "difference" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "winapi", -] +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" [[package]] -name = "iana-time-zone-haiku" -version = "0.1.1" +name = "difflib" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" -dependencies = [ - "cxx", - "cxx-build", -] +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" [[package]] -name = "ico" -version = "0.2.0" +name = "digest" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031530fe562d8c8d71c0635013d6d155bbfe8ba0aa4b4d2d24ce8af6b71047bd" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" dependencies = [ - "byteorder", - "png", + "generic-array 0.12.4", ] [[package]] -name = "ident_case" -version = "1.0.1" +name = "digest" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.7", +] [[package]] -name = "idna" -version = "0.3.0" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle 2.4.1", ] [[package]] -name = "ignore" -version = "0.4.18" +name = "directories" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c" dependencies = [ - "crossbeam-utils", - "globset", - "lazy_static", - "log", - "memchr", - "regex", - "same-file", - "thread_local", - "walkdir", - "winapi-util", + "cfg-if 0.1.10", + "dirs-sys 0.3.7", ] [[package]] -name = "image" -version = "0.24.5" +name = "directories" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945" +checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-rational", - "num-traits", + "dirs-sys 0.3.7", ] [[package]] -name = "indexmap" -version = "1.9.2" +name = "dirs" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" dependencies = [ - "autocfg", - "hashbrown", + "dirs-sys 0.3.7", ] [[package]] -name = "infer" -version = "0.7.0" +name = "dirs" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ - "cfb", + "dirs-sys 0.4.1", ] [[package]] -name = "instant" -version = "0.1.12" +name = "dirs-next" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", + "dirs-sys-next", ] [[package]] -name = "io-lifetimes" -version = "1.0.1" +name = "dirs-sys" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d367024b3f3414d8e01f437f704f41a9f64ab36f9067fa73e526ad4c763c87" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", - "windows-sys 0.42.0", + "redox_users", + "winapi 0.3.9", ] [[package]] -name = "ipnet" -version = "2.5.1" +name = "dirs-sys" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] [[package]] -name = "itoa" -version = "0.4.8" +name = "dirs-sys-next" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] [[package]] -name = "itoa" -version = "1.0.4" +name = "dispatch" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" [[package]] -name = "javascriptcore-rs" -version = "0.16.0" +name = "displaydoc" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "bitflags", - "glib", - "javascriptcore-rs-sys", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "javascriptcore-rs-sys" -version = "0.4.0" +name = "divrem" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 5.0.0", -] +checksum = "bc9f8914dcb99891bdfee82536bbff8d9aa612b0dbe83872afbc66902bdec0b9" [[package]] -name = "jni" -version = "0.20.0" +name = "dlopen" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +checksum = "71e80ad39f814a9abe68583cd50a2d45c8a67561c3361ab8da240587dda80937" dependencies = [ - "cesu8", - "combine 4.6.6", - "jni-sys", - "log", - "thiserror", - "walkdir", + "dlopen_derive", + "lazy_static", + "libc", + "winapi 0.3.9", ] [[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "js-sys" -version = "0.3.60" +name = "dlopen_derive" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "f236d9e1b1fbd81cea0f9cbdc8dcc7e8ebcd80e6659cd7cb2ad5f6c05946c581" dependencies = [ - "wasm-bindgen", + "libc", + "quote 0.6.13", + "syn 0.15.44", ] [[package]] -name = "json-decode" -version = "0.6.0" +name = "dns-parser" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd72139ade93da4f8a437afe8654a4a3cf1d858dc195fc6691e6e932fa1b6ee" +checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" dependencies = [ - "serde", - "serde_json", - "thiserror", + "byteorder", + "quick-error", ] [[package]] -name = "json-patch" -version = "0.2.6" +name = "downcast" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" -dependencies = [ - "serde", - "serde_json", - "treediff", -] +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] -name = "kuchiki" -version = "0.8.1" +name = "dprint-swc-ext" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +checksum = "dd4dda8a1b920e8be367aeaad035753d21bb69b3c50515afb41ab1eefbb886b5" dependencies = [ - "cssparser", - "html5ever", - "matches", - "selectors", + "bumpalo", + "num-bigint", + "rustc-hash", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "text_lines", ] [[package]] -name = "kv-log-macro" -version = "1.0.7" +name = "dsa" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +checksum = "b5638f6d17447bc0ffc46354949ee366847e83450e2a07895862942085cc9761" dependencies = [ - "log", + "digest 0.10.7", + "num-bigint-dig", + "num-traits", + "pkcs8 0.10.2", + "rfc6979 0.4.0", + "sha2 0.10.7", + "signature 2.1.0", + "zeroize", ] [[package]] -name = "lazy_static" -version = "1.4.0" +name = "dtoa" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] -name = "libappindicator" -version = "0.7.1" +name = "dtoa-short" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2d3cb96d092b4824cb306c9e544c856a4cb6210c1081945187f7f1924b47e8" +checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74" dependencies = [ - "glib", - "gtk", - "gtk-sys", - "libappindicator-sys", - "log", + "dtoa", ] [[package]] -name = "libappindicator-sys" -version = "0.7.3" +name = "dunce" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b3b6681973cea8cc3bce7391e6d7d5502720b80a581c9a95c9cbaf592826aa" -dependencies = [ - "gtk-sys", - "libloading", - "once_cell", -] +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] -name = "libc" -version = "0.2.137" +name = "dyn-clone" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" +checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555" [[package]] -name = "libdbus-sys" -version = "0.2.2" +name = "dynasm" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b" +checksum = "add9a102807b524ec050363f09e06f1504214b0e1c7797f64261c891022dce8b" dependencies = [ - "pkg-config", + "bitflags 1.3.2", + "byteorder", + "lazy_static", + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "libloading" -version = "0.7.4" +name = "dynasmrt" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +checksum = "64fba5a42bd76a17cad4bfa00de168ee1cbfa06a5e8ce992ae880218c05641a9" dependencies = [ - "cfg-if", - "winapi", + "byteorder", + "dynasm", + "memmap2", ] [[package]] -name = "line-wrap" +name = "ecb" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +checksum = "17fd84ba81a904351ee27bbccb4aa2461e1cca04176a63ab4f8ca087757681a2" dependencies = [ - "safemem", + "cipher", ] [[package]] -name = "link-cplusplus" -version = "1.0.7" +name = "ecdsa" +version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "cc", + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", ] [[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linux-raw-sys" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb68f22743a3fb35785f1e7f844ca5a3de2dde5bd0c0ef5b372065814699b121" - -[[package]] -name = "localtunnel-client" -version = "0.0.12" +name = "ecdsa" +version = "0.16.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e27b8ea846da5a71f7513edc8de10adc9f8f6856631d255593b8c9a1e28b49" +checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" dependencies = [ - "anyhow", - "log", - "reqwest", - "serde", - "tokio", + "der 0.7.8", + "digest 0.10.7", + "elliptic-curve 0.13.5", + "rfc6979 0.4.0", + "signature 2.1.0", + "spki 0.7.2", ] [[package]] -name = "lock_api" -version = "0.4.9" +name = "ed25519" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ - "autocfg", - "scopeguard", + "signature 1.6.4", ] [[package]] -name = "log" -version = "0.4.17" +name = "ed25519-dalek" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ - "cfg-if", + "curve25519-dalek 3.2.0", + "ed25519", + "rand 0.7.3", "serde", - "value-bag", + "sha2 0.9.9", + "zeroize", ] [[package]] -name = "log-mdc" -version = "0.1.0" +name = "either" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] -name = "log4rs" -version = "1.2.0" +name = "elliptic-curve" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36ca1786d9e79b8193a68d480a0907b612f109537115c6ff655a3a1967533fd" -dependencies = [ - "anyhow", - "arc-swap", - "chrono", - "derivative", - "fnv", - "humantime", - "libc", - "log", - "log-mdc", - "parking_lot 0.12.1", - "serde", - "serde-value", - "serde_json", - "serde_yaml", - "thiserror", - "thread-id", - "typemap-ors", - "winapi", +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array 0.14.7", + "group 0.12.1", + "hkdf 0.12.3", + "pem-rfc7468 0.6.0", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "loom" -version = "0.5.6" +name = "elliptic-curve" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "serde", - "serde_json", - "tracing", - "tracing-subscriber", + "base16ct 0.2.0", + "crypto-bigint 0.5.2", + "digest 0.10.7", + "ff 0.13.0", + "generic-array 0.14.7", + "group 0.13.0", + "hkdf 0.12.3", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1 0.7.3", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - -[[package]] -name = "mac-notification-sys" -version = "0.5.6" +name = "embed-resource" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5" +checksum = "fd0a2c9b742a980060d22545a7a83b573acd6b73045b9de6370c9530ce652f27" dependencies = [ "cc", - "dirs-next", - "objc-foundation", - "objc_id", - "time 0.3.17", + "rustc_version 0.4.0", + "toml 0.7.6", + "vswhom", + "winreg 0.51.0", ] [[package]] -name = "malloc_buf" -version = "0.0.6" +name = "embed_plist" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" dependencies = [ - "libc", + "cfg-if 1.0.0", ] [[package]] -name = "maplit" -version = "1.0.2" +name = "endian-type" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] -name = "markup5ever" -version = "0.10.1" +name = "enum-as-inner" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "log", - "phf 0.8.0", - "phf_codegen", - "string_cache", - "string_cache_codegen", - "tendril", + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "matchers" -version = "0.1.0" +name = "enum-iterator" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" dependencies = [ - "regex-automata", + "enum-iterator-derive", ] [[package]] -name = "matches" -version = "0.1.9" +name = "enum-iterator-derive" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] [[package]] -name = "memchr" -version = "2.5.0" +name = "enumset" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "e875f1719c16de097dee81ed675e2d9bb63096823ed3f0ca827b7dea3028bbbb" +dependencies = [ + "enumset_derive", +] [[package]] -name = "memoffset" -version = "0.6.5" +name = "enumset_derive" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af" dependencies = [ - "autocfg", + "darling 0.20.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "memoffset" -version = "0.7.1" +name = "env_logger" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" dependencies = [ - "autocfg", + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", ] [[package]] -name = "mime" -version = "0.3.16" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "miniz_oxide" -version = "0.5.4" +name = "err-derive" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +checksum = "22deed3a8124cff5fa835713fa105621e43bbdc46690c3a6b68328a012d350d4" dependencies = [ - "adler", + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "rustversion", + "syn 1.0.109", + "synstructure", ] [[package]] -name = "miniz_oxide" -version = "0.6.2" +name = "errno" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" dependencies = [ - "adler", + "errno-dragonfly", + "libc", + "winapi 0.3.9", ] [[package]] -name = "mio" -version = "0.7.14" +name = "errno" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" dependencies = [ + "errno-dragonfly", "libc", - "log", - "miow", - "ntapi", - "winapi", + "windows-sys 0.48.0", ] [[package]] -name = "mio" -version = "0.8.5" +name = "errno-dragonfly" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ + "cc", "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", ] [[package]] -name = "miow" -version = "0.3.7" +name = "error-code" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" dependencies = [ - "winapi", + "libc", + "str-buf", ] [[package]] -name = "native-tls" -version = "0.2.11" +name = "event-listener" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] -name = "ndk" -version = "0.6.0" +name = "failure" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" dependencies = [ - "bitflags", - "jni-sys", - "ndk-sys", - "num_enum", - "thiserror", + "backtrace", + "failure_derive", ] [[package]] -name = "ndk-context" -version = "0.1.1" +name = "failure_derive" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", + "synstructure", +] [[package]] -name = "ndk-sys" -version = "0.3.0" +name = "fallible-iterator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" -dependencies = [ - "jni-sys", -] +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] -name = "new_debug_unreachable" -version = "1.0.4" +name = "fallible-streaming-iterator" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] -name = "nibble_vec" -version = "0.1.0" +name = "fastrand" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ - "smallvec", + "instant", ] [[package]] -name = "nix" -version = "0.23.1" +name = "fastrand" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" + +[[package]] +name = "fastwebsockets" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1925eb5ee48fffa504a9edce24b3b4d43e2809d1cc713a1df2b13a46e661b3c6" dependencies = [ - "bitflags", + "base64 0.21.3", "cc", - "cfg-if", - "libc", - "memoffset 0.6.5", + "hyper 0.14.27", + "pin-project", + "rand 0.8.5", + "sha1", + "simdutf8", + "tokio", + "utf-8", ] [[package]] -name = "nix" -version = "0.24.2" +name = "fd-lock" +version = "3.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" dependencies = [ - "bitflags", - "cfg-if", - "libc", + "cfg-if 1.0.0", + "rustix 0.38.10", + "windows-sys 0.48.0", ] [[package]] -name = "nodrop" -version = "0.1.14" +name = "fdeflate" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" +dependencies = [ + "simd-adler32", +] [[package]] -name = "notify-rust" -version = "4.5.10" +name = "ff" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368e89ea58df747ce88be669ae44e79783c1d30bfd540ad0fc520b3f41f0b3b0" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ - "dbus", - "mac-notification-sys", - "tauri-winrt-notification", + "bitvec", + "rand_core 0.6.4", + "subtle 2.4.1", ] [[package]] -name = "ntapi" -version = "0.3.7" +name = "ff" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "winapi", + "rand_core 0.6.4", + "subtle 2.4.1", ] [[package]] -name = "nu-ansi-term" -version = "0.46.0" +name = "fiat-crypto" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" [[package]] -name = "num-integer" -version = "0.1.45" +name = "field-offset" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "autocfg", - "num-traits", + "memoffset 0.9.0", + "rustc_version 0.4.0", ] [[package]] -name = "num-rational" -version = "0.4.1" +name = "filetime" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ - "autocfg", - "num-integer", - "num-traits", + "cfg-if 1.0.0", + "libc", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", ] [[package]] -name = "num-traits" -version = "0.2.15" +name = "fixt" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "5bbd3dde3f166a47832a20fa1d0c61d5b68a79bedf370782441709d82f6ae69e" dependencies = [ - "autocfg", + "holochain_serialized_bytes", + "lazy_static", + "parking_lot 0.10.2", + "paste", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "strum 0.18.0", + "strum_macros 0.18.0", ] [[package]] -name = "num_cpus" -version = "1.14.0" +name = "flate2" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ - "hermit-abi", - "libc", + "crc32fast", + "miniz_oxide 0.5.4", ] [[package]] -name = "num_enum" -version = "0.5.7" +name = "float-cmp" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4" dependencies = [ - "num_enum_derive", + "num-traits", ] [[package]] -name = "num_enum_derive" -version = "0.5.7" +name = "float-cmp" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", + "num-traits", ] [[package]] -name = "objc" -version = "0.2.7" +name = "fly-accept-encoding" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +checksum = "a3afa7516fdcfd8e5e93a938f8fec857785ced190a1f62d842d1fe1ffbe22ba8" dependencies = [ - "malloc_buf", - "objc_exception", + "http", + "itertools 0.10.5", + "thiserror", ] [[package]] -name = "objc-foundation" -version = "0.1.1" +name = "fnv" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" -dependencies = [ - "block", - "objc", - "objc_id", -] +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "objc_exception" -version = "0.1.2" +name = "foreign-types" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "cc", + "foreign-types-shared", ] [[package]] -name = "objc_id" +name = "foreign-types-shared" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" -dependencies = [ - "objc", -] +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] -name = "object" -version = "0.29.0" +name = "form_urlencoded" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ - "memchr", + "percent-encoding 2.3.0", ] [[package]] -name = "once_cell" -version = "1.16.0" +name = "fragile" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] -name = "onig" -version = "6.4.0" +name = "from_variant" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" +checksum = "1d449976075322384507443937df2f1d5577afbf4282f12a5a66ef29fa3e6307" dependencies = [ - "bitflags", - "libc", - "once_cell", - "onig_sys", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "swc_macros_common", + "syn 1.0.109", ] [[package]] -name = "onig_sys" -version = "69.8.1" +name = "fs3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" +checksum = "fb17cf6ed704f72485332f6ab65257460c4f9f3083934cf402bf9f5b3b600a90" dependencies = [ - "cc", - "pkg-config", + "libc", + "rustc_version 0.2.3", + "winapi 0.3.9", ] [[package]] -name = "opaque-debug" -version = "0.3.0" +name = "fs_extra" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] -name = "open" -version = "2.1.3" +name = "fsevent-sys" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2423ffbf445b82e58c3b1543655968923dd06f85432f10be2bb4f1b7122f98c" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" dependencies = [ - "pathdiff", - "windows-sys 0.36.1", + "libc", ] [[package]] -name = "open" -version = "3.2.0" +name = "fslock" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +checksum = "57eafdd0c16f57161105ae1b98a1238f97645f2f588438b2949c99a2af9616bf" dependencies = [ - "pathdiff", - "windows-sys 0.42.0", + "libc", + "winapi 0.3.9", ] [[package]] -name = "opener" -version = "0.5.0" +name = "fuchsia-cprng" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea3ebcd72a54701f56345f16785a6d3ac2df7e986d273eb4395c0b01db17952" -dependencies = [ - "bstr", - "winapi", -] +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" [[package]] -name = "openssl" -version = "0.10.42" +name = "funty" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] -name = "openssl-macros" -version = "0.1.0" +name = "futf" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" dependencies = [ - "proc-macro2", - "quote", - "syn", + "mac", + "new_debug_unreachable", ] [[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.77" +name = "futures" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] -name = "ordered-float" -version = "2.10.0" +name = "futures-channel" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ - "num-traits", + "futures-core", + "futures-sink", ] [[package]] -name = "os_info" -version = "3.5.1" +name = "futures-core" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f" -dependencies = [ - "log", - "serde", - "winapi", -] +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] -name = "os_pipe" -version = "1.1.2" +name = "futures-enum" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6a252f1f8c11e84b3ab59d7a488e48e4478a93937e027076638c49536204639" +checksum = "3422d14de7903a52e9dbc10ae05a7e14445ec61890100e098754e120b2bd7b1e" dependencies = [ - "libc", - "windows-sys 0.42.0", + "derive_utils", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "os_str_bytes" -version = "6.4.1" +name = "futures-executor" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] [[package]] -name = "overload" -version = "0.1.1" +name = "futures-io" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] -name = "pango" -version = "0.15.10" +name = "futures-lite" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ - "bitflags", - "glib", - "libc", - "once_cell", - "pango-sys", + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", ] [[package]] -name = "pango-sys" -version = "0.15.10" +name = "futures-macro" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "parking" -version = "2.0.0" +name = "futures-sink" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] -name = "parking_lot" -version = "0.11.2" +name = "futures-task" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.5", -] +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] -name = "parking_lot" -version = "0.12.1" +name = "futures-timer" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.4", -] +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] -name = "parking_lot_core" -version = "0.8.5" +name = "futures-util" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall", - "smallvec", - "winapi", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", ] [[package]] -name = "parking_lot_core" -version = "0.9.4" +name = "fwdansi" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "08c1f5787fe85505d1f7777268db5103d80a7a374d2316a7ce262e57baf8f208" dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys 0.42.0", + "memchr", + "termcolor", ] [[package]] -name = "paste" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" - -[[package]] -name = "pathdiff" +name = "fxhash" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] [[package]] -name = "percent-encoding" -version = "2.2.0" +name = "gcc" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" [[package]] -name = "pest" -version = "2.5.0" +name = "gcollections" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f400b0f7905bf702f9f3dc3df5a121b16c54e9e8012c082905fdf09a931861a" +checksum = "2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377" dependencies = [ - "thiserror", - "ucd-trie", + "bit-set", + "num-integer", + "num-traits", + "trilean", ] [[package]] -name = "phf" -version = "0.8.0" +name = "gdk" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" dependencies = [ - "phf_macros 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", + "bitflags 1.3.2", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", ] [[package]] -name = "phf" -version = "0.10.1" +name = "gdk-pixbuf" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" dependencies = [ - "phf_macros 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", + "bitflags 1.3.2", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", ] [[package]] -name = "phf_codegen" -version = "0.8.0" +name = "gdk-pixbuf-sys" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.1.1", ] [[package]] -name = "phf_generator" -version = "0.8.0" +name = "gdk-sys" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" dependencies = [ - "phf_shared 0.8.0", - "rand 0.7.3", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.1.1", ] [[package]] -name = "phf_generator" -version = "0.10.0" +name = "gdkwayland-sys" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2" dependencies = [ - "phf_shared 0.10.0", - "rand 0.8.5", + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps 6.1.1", ] [[package]] -name = "phf_macros" -version = "0.8.0" +name = "gdkx11-sys" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", + "gdk-sys", + "glib-sys", + "libc", + "system-deps 6.1.1", + "x11", ] [[package]] -name = "phf_macros" -version = "0.10.0" +name = "generator" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", + "cc", + "libc", + "log", + "rustversion", + "windows 0.48.0", ] [[package]] -name = "phf_shared" -version = "0.8.0" +name = "generic-array" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" dependencies = [ - "siphasher", + "typenum", ] [[package]] -name = "phf_shared" -version = "0.10.0" +name = "generic-array" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "siphasher", + "typenum", + "version_check", + "zeroize", ] [[package]] -name = "pin-project" -version = "1.0.12" +name = "get_if_addrs" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7" dependencies = [ - "pin-project-internal", + "c_linked_list", + "get_if_addrs-sys", + "libc", + "winapi 0.2.8", ] [[package]] -name = "pin-project-internal" -version = "1.0.12" +name = "get_if_addrs-sys" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48" dependencies = [ - "proc-macro2", - "quote", - "syn", + "gcc", + "libc", ] [[package]] -name = "pin-project-lite" -version = "0.2.9" +name = "getrandom" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" - -[[package]] -name = "plist" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" -dependencies = [ - "base64", - "indexmap", - "line-wrap", - "serde", - "time 0.3.17", - "xml-rs", -] - -[[package]] -name = "png" -version = "0.17.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "bitflags", - "crc32fast", - "flate2", - "miniz_oxide 0.6.2", + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", ] [[package]] -name = "polling" -version = "2.4.0" +name = "getrandom" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4609a838d88b73d8238967b60dd115cc08d38e2bbaf51ee1e4b695f89122e2" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ - "autocfg", - "cfg-if", + "cfg-if 1.0.0", + "js-sys", "libc", - "log", - "wepoll-ffi", - "winapi", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] -name = "portpicker" -version = "0.1.1" +name = "ghash" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ - "rand 0.8.5", + "opaque-debug 0.3.0", + "polyval", ] [[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "proc-macro-crate" -version = "1.2.1" +name = "ghost_actor" +version = "0.3.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "8a34addaffa7d2c80637807444f171c646cad7549fcdac8019544034678f76d5" dependencies = [ - "once_cell", + "futures", + "mockall", + "must_future", + "paste", "thiserror", - "toml", + "tokio", + "tracing", + "tracing-futures", ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "ghost_actor" +version = "0.4.0-alpha.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "52cb0746ab4cf003d75cdbaaae2cf95139ec9607ae46bd5c68721bda2ca0c824" dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", + "futures", + "tracing", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "gimli" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" dependencies = [ - "proc-macro2", - "quote", - "version_check", + "fallible-iterator", + "indexmap 1.9.3", + "stable_deref_trait", ] [[package]] -name = "proc-macro-hack" -version = "0.5.19" +name = "gimli" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] -name = "proc-macro2" -version = "1.0.47" +name = "gio" +version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" dependencies = [ - "unicode-ident", + "bitflags 1.3.2", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys", + "glib", + "libc", + "once_cell", + "thiserror", ] [[package]] -name = "quick-xml" -version = "0.23.1" +name = "gio-sys" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" dependencies = [ - "memchr", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.1.1", + "winapi 0.3.9", ] [[package]] -name = "quote" -version = "1.0.21" +name = "git-version" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899" dependencies = [ - "proc-macro2", + "git-version-macro", + "proc-macro-hack", ] [[package]] -name = "radix_trie" -version = "0.2.1" +name = "git-version-macro" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" dependencies = [ - "endian-type", - "nibble_vec", + "proc-macro-hack", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "rand" -version = "0.7.3" +name = "glib" +version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" dependencies = [ - "getrandom 0.1.16", + "bitflags 1.3.2", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys", + "gobject-sys", "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", - "rand_pcg", + "once_cell", + "smallvec 1.11.0", + "thiserror", ] [[package]] -name = "rand" -version = "0.8.5" +name = "glib-macros" +version = "0.15.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", + "anyhow", + "heck 0.4.1", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "glib-sys" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "libc", + "system-deps 6.1.1", ] [[package]] -name = "rand_chacha" +name = "glob" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] -name = "rand_core" -version = "0.5.1" +name = "globset" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" dependencies = [ - "getrandom 0.1.16", + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", ] [[package]] -name = "rand_core" -version = "0.6.4" +name = "gloo-timers" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" dependencies = [ - "getrandom 0.2.8", + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "gobject-sys" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" dependencies = [ - "rand_core 0.5.1", + "glib-sys", + "libc", + "system-deps 6.1.1", ] [[package]] -name = "rand_pcg" -version = "0.2.1" +name = "governor" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +checksum = "06c5d2f987ee8f6dff3fa1a352058dc59b990e447e4c7846aa7d804971314f7b" dependencies = [ - "rand_core 0.5.1", + "dashmap 4.0.2", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.11.2", + "quanta", + "rand 0.8.5", + "smallvec 1.11.0", ] [[package]] -name = "raw-window-handle" -version = "0.5.0" +name = "graphql-introspection-query" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" +checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" dependencies = [ - "cty", + "serde", ] [[package]] -name = "rayon" -version = "1.6.0" +name = "graphql-parser" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b" +checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" dependencies = [ - "crossbeam-deque", - "either", - "rayon-core", + "combine 3.8.1", + "thiserror", ] [[package]] -name = "rayon-core" -version = "1.10.1" +name = "graphql-ws-client" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" +checksum = "4a6ac701a6fd088e21da4454b98e2b45456b8cb5f4215ccab9b62dfe8bd500fa" dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "num_cpus", + "async-tungstenite", + "futures", + "graphql_client", + "log", + "pin-project", + "serde", + "serde_json", + "thiserror", + "uuid 1.4.1", ] [[package]] -name = "redox_syscall" -version = "0.2.16" +name = "graphql_client" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "aa61bb9dc6d373a8b465a5da17b62809483e8527a34b0e9034dc0915b09e160a" dependencies = [ - "bitflags", + "graphql_query_derive", + "serde", + "serde_json", ] [[package]] -name = "redox_users" -version = "0.4.3" +name = "graphql_client_codegen" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "4e55df64cc702c4ad6647f8df13a799ad11688a3781fadf5045f7ba12733fa9b" dependencies = [ - "getrandom 0.2.8", - "redox_syscall", - "thiserror", + "graphql-introspection-query", + "graphql-parser", + "heck 0.4.1", + "lazy_static", + "proc-macro2 1.0.66", + "quote 1.0.33", + "serde", + "serde_json", + "syn 1.0.109", ] [[package]] -name = "regex" -version = "1.7.0" +name = "graphql_query_derive" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +checksum = "d52fc9cde811f44b15ec0692b31e56a3067f6f431c5ace712f286e47c1dacc98" dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", + "graphql_client_codegen", + "proc-macro2 1.0.66", + "syn 1.0.109", ] [[package]] -name = "regex-automata" -version = "0.1.10" +name = "group" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "regex-syntax", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle 2.4.1", ] [[package]] -name = "regex-syntax" -version = "0.6.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "group" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "winapi", + "ff 0.13.0", + "rand_core 0.6.4", + "subtle 2.4.1", ] [[package]] -name = "remove_dir_all" -version = "0.7.0" +name = "gtk" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "882f368737489ea543bc5c340e6f3d34a28c39980bd9a979e47322b26f60ac40" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" dependencies = [ + "atk", + "bitflags 1.3.2", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", "libc", - "log", - "num_cpus", - "rayon", - "winapi", + "once_cell", + "pango", + "pkg-config", ] [[package]] -name = "reqwest" -version = "0.11.13" +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps 6.1.1", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" +dependencies = [ + "anyhow", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "h2" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ - "base64", "bytes", - "encoding_rs", + "fnv", "futures-core", + "futures-sink", "futures-util", - "h2", "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", + "indexmap 1.9.3", + "slab", "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", + "tokio-util", + "tracing", ] [[package]] -name = "rfd" -version = "0.10.0" +name = "hash32" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" dependencies = [ - "block", - "dispatch", - "glib-sys", - "gobject-sys", - "gtk-sys", - "js-sys", - "lazy_static", - "log", - "objc", - "objc-foundation", - "objc_id", - "raw-window-handle", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows 0.37.0", + "byteorder", ] [[package]] -name = "rustc-demangle" -version = "0.1.21" +name = "hashbrown" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" +dependencies = [ + "ahash 0.3.8", + "autocfg 1.1.0", +] [[package]] -name = "rustc_version" -version = "0.3.3" +name = "hashbrown" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" dependencies = [ - "semver 0.11.0", + "ahash 0.7.6", ] [[package]] -name = "rustc_version" -version = "0.4.0" +name = "hashbrown" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "semver 1.0.14", + "ahash 0.7.6", ] [[package]] -name = "rustix" -version = "0.36.2" +name = "hashbrown" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "203974af07ea769452490ee8de3e5947971efc3a090dca8a779dd432d3fa46a7" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "bitflags", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys", - "windows-sys 0.42.0", + "ahash 0.8.3", ] [[package]] -name = "rustversion" -version = "1.0.9" +name = "hashbrown" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash 0.8.3", + "allocator-api2", +] [[package]] -name = "rustyline" -version = "10.0.0" +name = "hashlink" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1cd5ae51d3f7bf65d7969d579d502168ef578f289452bd8ccc91de28fda20e" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "bitflags", - "cfg-if", - "clipboard-win", - "dirs-next", - "fd-lock", - "libc", - "log", - "memchr", - "nix 0.24.2", - "radix_trie", - "scopeguard", - "unicode-segmentation", - "unicode-width", - "utf8parse", - "winapi", + "hashbrown 0.14.0", ] [[package]] -name = "ryu" -version = "1.0.11" +name = "hc_seed_bundle" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "ded13e388a81713db6919cd750e6113acf2fe5afbaedf8aff79780ec4fc47425" +dependencies = [ + "futures", + "one_err", + "rmp-serde 1.1.2", + "rmpv", + "serde", + "serde_bytes", + "sodoken", +] [[package]] -name = "safemem" -version = "0.3.3" +name = "hdi" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" +dependencies = [ + "hdk_derive", + "holo_hash", + "holochain_integrity_types", + "holochain_wasmer_guest", + "paste", + "serde", + "serde_bytes", + "tracing", + "tracing-core", +] [[package]] -name = "same-file" -version = "1.0.6" +name = "hdk" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ - "winapi-util", + "getrandom 0.2.10", + "hdi", + "hdk_derive", + "holo_hash", + "holochain_wasmer_guest", + "holochain_zome_types", + "paste", + "serde", + "serde_bytes", + "thiserror", + "tracing", + "tracing-core", ] [[package]] -name = "schannel" -version = "0.1.20" +name = "hdk_derive" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ - "lazy_static", - "windows-sys 0.36.1", + "darling 0.14.4", + "heck 0.4.1", + "holochain_integrity_types", + "paste", + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "scoped-tls" -version = "1.0.1" +name = "headers" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" +checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +dependencies = [ + "base64 0.13.1", + "bitflags 1.3.2", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] [[package]] -name = "scopeguard" -version = "1.1.0" +name = "headers-core" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] [[package]] -name = "scratch" -version = "1.0.2" +name = "heapless" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.0", + "spin 0.9.8", + "stable_deref_trait", +] [[package]] -name = "security-framework" -version = "2.7.0" +name = "heck" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", + "unicode-segmentation", ] [[package]] -name = "security-framework-sys" -version = "2.6.1" +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ - "core-foundation-sys", "libc", ] [[package]] -name = "selectors" -version = "0.22.0" +name = "hermit-abi" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" -dependencies = [ - "bitflags", - "cssparser", - "derive_more", - "fxhash", - "log", - "matches", - "phf 0.8.0", - "phf_codegen", - "precomputed-hash", - "servo_arc", - "smallvec", - "thin-slice", -] +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] -name = "semver" +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +checksum = "01706d578d5c281058480e673ae4086a9f4710d8df1ad80a5b03e39ece5f886b" dependencies = [ - "semver-parser", + "digest 0.9.0", + "hmac 0.11.0", ] [[package]] -name = "semver" -version = "1.0.14" +name = "hkdf" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" dependencies = [ - "serde", + "hmac 0.12.1", ] [[package]] -name = "semver-parser" -version = "0.10.2" +name = "hmac" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" dependencies = [ - "pest", + "crypto-mac 0.8.0", + "digest 0.9.0", ] [[package]] -name = "serde" -version = "1.0.147" +name = "hmac" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "serde_derive", + "crypto-mac 0.11.1", + "digest 0.9.0", ] [[package]] -name = "serde-value" -version = "0.7.0" +name = "hmac" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "ordered-float", - "serde", + "digest 0.10.7", ] [[package]] -name = "serde_derive" -version = "1.0.147" +name = "hmac-drbg" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ - "proc-macro2", - "quote", - "syn", + "digest 0.9.0", + "generic-array 0.14.7", + "hmac 0.8.1", ] [[package]] -name = "serde_json" -version = "1.0.89" +name = "holo_hash" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ - "itoa 1.0.4", - "ryu", + "arbitrary", + "base64 0.13.1", + "blake2b_simd 0.5.11", + "derive_more", + "fixt", + "futures", + "holochain_serialized_bytes", + "holochain_util", + "holochain_wasmer_common", + "kitsune_p2p_dht_arc", + "must_future", + "rand 0.8.5", + "rusqlite", "serde", + "serde_bytes", + "thiserror", ] [[package]] -name = "serde_repr" -version = "0.1.9" +name = "holochain" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +checksum = "7557f2e6d4e64912264b16befa6144da01c2484459492d8a71560d20024178d8" dependencies = [ - "proc-macro2", - "quote", - "syn", + "anyhow", + "arbitrary", + "async-recursion", + "async-trait", + "base64 0.13.1", + "byteorder", + "cfg-if 0.1.10", + "chrono", + "contrafact", + "derive_more", + "diff", + "directories 2.0.2", + "either", + "fallible-iterator", + "fixt", + "futures", + "get_if_addrs", + "getrandom 0.2.10", + "ghost_actor 0.3.0-alpha.6", + "hdk", + "holo_hash", + "holochain_cascade", + "holochain_conductor_api", + "holochain_keystore", + "holochain_p2p", + "holochain_serialized_bytes", + "holochain_sqlite", + "holochain_state", + "holochain_test_wasm_common", + "holochain_trace", + "holochain_types", + "holochain_util", + "holochain_wasm_test_utils", + "holochain_wasmer_host", + "holochain_websocket", + "holochain_zome_types", + "hostname", + "human-panic", + "itertools 0.10.5", + "kitsune_p2p", + "kitsune_p2p_block", + "kitsune_p2p_bootstrap", + "kitsune_p2p_types", + "lazy_static", + "matches", + "mockall", + "mr_bundle", + "must_future", + "nanoid 0.3.0", + "num_cpus", + "once_cell", + "one_err", + "parking_lot 0.10.2", + "predicates 1.0.8", + "rand 0.8.5", + "rand-utf8", + "rpassword 5.0.1", + "rusqlite", + "sd-notify", + "serde", + "serde_json", + "serde_yaml 0.9.25", + "shrinkwraprs", + "sodoken", + "structopt", + "strum 0.18.0", + "subtle-encoding", + "task-motel", + "tempfile", + "thiserror", + "tiny-keccak", + "tokio", + "tokio-stream", + "toml 0.5.11", + "tracing", + "tracing-futures", + "tracing-subscriber 0.3.17", + "tx5-go-pion-turn", + "tx5-signal-srv", + "unwrap_to", + "url 2.4.1", + "url2", + "url_serde", + "uuid 0.7.4", + "wasmer-middlewares", ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "holochain_cascade" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "c8611a6406313dd46692c97cbf0025dc4ad77a27ac4da622441dec69408054a0" dependencies = [ - "form_urlencoded", - "itoa 1.0.4", - "ryu", + "async-trait", + "derive_more", + "either", + "fallible-iterator", + "fixt", + "futures", + "ghost_actor 0.3.0-alpha.6", + "hdk", + "hdk_derive", + "holo_hash", + "holochain_p2p", + "holochain_serialized_bytes", + "holochain_sqlite", + "holochain_state", + "holochain_trace", + "holochain_types", + "holochain_util", + "holochain_zome_types", + "kitsune_p2p", + "mockall", "serde", + "serde_derive", + "thiserror", + "tokio", + "tracing", + "tracing-futures", ] [[package]] -name = "serde_with" -version = "1.14.0" +name = "holochain_cli_bundle" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +checksum = "7dc3f982c88b2a3be6121505770cbad741394bdc59b36276fe1f5f664ddadc29" dependencies = [ + "anyhow", + "clap 4.4.1", + "futures", + "holochain_serialized_bytes", + "holochain_types", + "holochain_util", + "holochain_wasmer_host", + "mr_bundle", "serde", - "serde_with_macros", + "serde_bytes", + "serde_yaml 0.9.25", + "thiserror", + "tokio", + "tracing", ] [[package]] -name = "serde_with_macros" -version = "1.5.2" +name = "holochain_cli_run_local_services" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +checksum = "53b502a8499f2f68b612cd65c5036922ea3354e91f842a7ff505ce0e28376e6e" dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", + "clap 4.4.1", + "futures", + "holochain_trace", + "if-addrs 0.10.1", + "kitsune_p2p_bootstrap", + "tokio", + "tracing", + "tx5-signal-srv", ] [[package]] -name = "serde_yaml" -version = "0.8.26" +name = "holochain_conductor_api" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +checksum = "4696d86bc639c07469f95d369d1e93d5a50f9afd782ed14fa74e7040293a133a" dependencies = [ - "indexmap", - "ryu", + "derive_more", + "directories 2.0.2", + "holo_hash", + "holochain_keystore", + "holochain_p2p", + "holochain_serialized_bytes", + "holochain_state", + "holochain_types", + "holochain_zome_types", + "kitsune_p2p", "serde", - "yaml-rust", + "serde_derive", + "serde_yaml 0.9.25", + "structopt", + "thiserror", + "tracing", + "url2", ] [[package]] -name = "serialize-to-javascript" -version = "0.1.1" +name = "holochain_integrity_types" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ + "arbitrary", + "derive_builder", + "holo_hash", + "holochain_serialized_bytes", + "holochain_util", + "kitsune_p2p_dht", + "kitsune_p2p_timestamp", + "paste", "serde", - "serde_json", - "serialize-to-javascript-impl", + "serde_bytes", + "subtle 2.4.1", + "subtle-encoding", + "tracing", ] [[package]] -name = "serialize-to-javascript-impl" -version = "0.1.1" +name = "holochain_keystore" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +checksum = "f03dedeb6f3e244558f491356c4a00da9c5a44a05ca683e460c6e5434ed2e149" dependencies = [ - "proc-macro2", - "quote", - "syn", + "base64 0.13.1", + "futures", + "holo_hash", + "holochain_serialized_bytes", + "holochain_zome_types", + "kitsune_p2p_types", + "lair_keystore", + "must_future", + "nanoid 0.4.0", + "one_err", + "parking_lot 0.11.2", + "serde", + "serde_bytes", + "sodoken", + "thiserror", + "tokio", + "tracing", ] [[package]] -name = "servo_arc" -version = "0.1.1" +name = "holochain_p2p" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +checksum = "191b0cb1239fe04754ae08f67e2608d385e05dae065c80617c75f9ec2e15e75c" dependencies = [ - "nodrop", - "stable_deref_trait", + "async-trait", + "derive_more", + "fixt", + "futures", + "ghost_actor 0.3.0-alpha.6", + "holo_hash", + "holochain_keystore", + "holochain_serialized_bytes", + "holochain_trace", + "holochain_types", + "holochain_util", + "holochain_zome_types", + "kitsune_p2p", + "kitsune_p2p_types", + "mockall", + "rand 0.8.5", + "serde", + "serde_bytes", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", ] [[package]] -name = "sha-1" -version = "0.9.8" +name = "holochain_serialized_bytes" +version = "0.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", + "arbitrary", + "holochain_serialized_bytes_derive", + "rmp-serde 0.15.5", + "serde", + "serde-transcode", + "serde_bytes", + "serde_json", + "thiserror", ] [[package]] -name = "sha2" -version = "0.10.6" +name = "holochain_serialized_bytes_derive" +version = "0.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] -name = "sharded-slab" -version = "0.1.4" +name = "holochain_sqlite" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "d5164e2866480b8103b255cf2b0581dbdd3371da9efe5e86704975294af20e4f" dependencies = [ + "anyhow", + "async-trait", + "byteorder", + "cfg-if 0.1.10", + "chashmap", + "chrono", + "derive_more", + "either", + "failure", + "fallible-iterator", + "fixt", + "futures", + "getrandom 0.2.10", + "holo_hash", + "holochain_serialized_bytes", + "holochain_util", + "holochain_zome_types", + "kitsune_p2p", "lazy_static", + "must_future", + "nanoid 0.3.0", + "num-traits", + "num_cpus", + "once_cell", + "page_size", + "parking_lot 0.10.2", + "pretty_assertions 0.7.2", + "r2d2", + "r2d2_sqlite_neonphog", + "rand 0.8.5", + "rmp-serde 0.15.5", + "rusqlite", + "scheduled-thread-pool", + "serde", + "serde_derive", + "serde_json", + "shrinkwraprs", + "sqlformat 0.1.8", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", ] [[package]] -name = "shared_child" -version = "1.0.0" +name = "holochain_state" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +checksum = "2d2a4dee4a5f1ef7b350f078965fe01afd54e3a89167c6d4fc991ae9f2a20141" dependencies = [ - "libc", - "winapi", + "async-recursion", + "base64 0.13.1", + "byteorder", + "cfg-if 0.1.10", + "chrono", + "contrafact", + "cron", + "derive_more", + "either", + "fallible-iterator", + "futures", + "getrandom 0.2.10", + "holo_hash", + "holochain_keystore", + "holochain_p2p", + "holochain_serialized_bytes", + "holochain_sqlite", + "holochain_types", + "holochain_util", + "holochain_zome_types", + "kitsune_p2p", + "mockall", + "nanoid 0.3.0", + "one_err", + "parking_lot 0.10.2", + "rand 0.8.5", + "serde", + "serde_json", + "shrinkwraprs", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", ] [[package]] -name = "signal-hook" -version = "0.1.17" +name = "holochain_test_wasm_common" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729" +checksum = "5a1a19d8dca8938fcb55e4ae43bb57887f2887155677e7906a1e0bc3160a2124" dependencies = [ - "libc", - "mio 0.7.14", - "signal-hook-registry", + "hdk", + "serde", ] [[package]] -name = "signal-hook" -version = "0.3.14" +name = "holochain_trace" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" +checksum = "83611dcbb9be2afd7a4416793dc75f5d5d1f2975d4c0898162a3b680ecf1935c" dependencies = [ - "libc", - "signal-hook-registry", + "chrono", + "derive_more", + "inferno", + "once_cell", + "serde_json", + "thiserror", + "tracing", + "tracing-core", + "tracing-serde", + "tracing-subscriber 0.3.17", ] [[package]] -name = "signal-hook-registry" -version = "1.4.0" +name = "holochain_types" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "0f4f7e4ecd2eeeae836ec487b3213c7498ed339a3d88e7ec649aa9d3ad6a8c55" dependencies = [ - "libc", + "anyhow", + "arbitrary", + "async-trait", + "automap", + "backtrace", + "base64 0.13.1", + "cfg-if 0.1.10", + "chrono", + "contrafact", + "derive_builder", + "derive_more", + "either", + "fixt", + "flate2", + "futures", + "getrandom 0.2.10", + "holo_hash", + "holochain_keystore", + "holochain_serialized_bytes", + "holochain_sqlite", + "holochain_trace", + "holochain_util", + "holochain_wasmer_host", + "holochain_zome_types", + "isotest", + "itertools 0.10.5", + "kitsune_p2p_dht", + "lazy_static", + "mockall", + "mr_bundle", + "must_future", + "nanoid 0.3.0", + "one_err", + "parking_lot 0.10.2", + "rand 0.8.5", + "regex", + "rusqlite", + "serde", + "serde_bytes", + "serde_derive", + "serde_json", + "serde_with 1.14.0", + "serde_yaml 0.9.25", + "shrinkwraprs", + "strum 0.18.0", + "strum_macros 0.18.0", + "tempfile", + "thiserror", + "tokio", + "tracing", + "wasmer-middlewares", ] [[package]] -name = "siphasher" -version = "0.3.10" +name = "holochain_util" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" +dependencies = [ + "backtrace", + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", + "rpassword 7.2.0", + "sodoken", + "tokio", +] [[package]] -name = "slab" -version = "0.4.7" +name = "holochain_wasm_test_utils" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "222fa67d927a0c1cd0288ea1763dd2d36d66bf4c280147561011a2321d0b6908" dependencies = [ - "autocfg", + "holochain_types", + "holochain_util", + "strum 0.18.0", + "strum_macros 0.18.0", + "toml 0.5.11", + "walkdir", ] [[package]] -name = "smallvec" -version = "1.10.0" +name = "holochain_wasmer_common" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" +dependencies = [ + "holochain_serialized_bytes", + "serde", + "serde_bytes", + "test-fuzz", + "thiserror", + "wasmer", + "wasmer-engine", +] [[package]] -name = "socket2" -version = "0.4.7" +name = "holochain_wasmer_guest" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ - "libc", - "winapi", + "holochain_serialized_bytes", + "holochain_wasmer_common", + "parking_lot 0.12.1", + "paste", + "serde", + "tracing", ] [[package]] -name = "soup2" -version = "0.2.1" +name = "holochain_wasmer_host" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +checksum = "65912ef579fa53ca4ad7713f13379fae53a0d79ef2d91b87670201044eae0d5e" dependencies = [ - "bitflags", - "gio", - "glib", - "libc", + "bimap", + "holochain_serialized_bytes", + "holochain_wasmer_common", "once_cell", - "soup2-sys", + "parking_lot 0.12.1", + "rand 0.8.5", + "serde", + "tracing", + "wasmer", ] [[package]] -name = "soup2-sys" -version = "0.2.0" +name = "holochain_websocket" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +checksum = "2975619b1a263030e02766e4440bd3a4d69457ea2588a68c9c68d884ad1fbb98" dependencies = [ - "bitflags", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps 5.0.0", + "futures", + "ghost_actor 0.4.0-alpha.5", + "holochain_serialized_bytes", + "must_future", + "nanoid 0.3.0", + "net2", + "serde", + "serde_bytes", + "stream-cancel", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite 0.13.0", + "tracing", + "tracing-futures", + "tungstenite 0.12.0", + "url2", ] [[package]] -name = "stable_deref_trait" -version = "1.2.0" +name = "holochain_zome_types" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" +dependencies = [ + "arbitrary", + "contrafact", + "derive_builder", + "fixt", + "holo_hash", + "holochain_integrity_types", + "holochain_serialized_bytes", + "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", + "kitsune_p2p_timestamp", + "nanoid 0.3.0", + "num_enum", + "once_cell", + "paste", + "rand 0.8.5", + "rusqlite", + "serde", + "serde_bytes", + "serde_yaml 0.9.25", + "shrinkwraprs", + "strum 0.18.0", + "subtle 2.4.1", + "subtle-encoding", + "thiserror", + "tracing", +] [[package]] -name = "state" -version = "0.5.3" +name = "home" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" dependencies = [ - "loom", + "windows-sys 0.48.0", ] [[package]] -name = "str-buf" -version = "1.0.6" +name = "hostname" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi 0.3.9", +] + +[[package]] +name = "html5ever" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +dependencies = [ + "log", + "mac", + "markup5ever 0.10.1", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever 0.11.0", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.9", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951dfc2e32ac02d67c90c0d65bd27009a635dc9b381a2cc7d284ab01e3a0150d" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08ef12f041acdd397010e5fb6433270c147d3b8b2d0a840cd7fff8e531dca5c8" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body 1.0.0-rc.2", + "pin-project-lite", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "human-panic" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2df2fb4e13fa697d21d93061ebcbbd876f5ef643b48ff59cfab57a726ef140" +dependencies = [ + "anstream", + "anstyle", + "backtrace", + "os_info", + "serde", + "serde_derive", + "toml 0.7.6", + "uuid 1.4.1", +] + +[[package]] +name = "human-repr" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f58b778a5761513caf593693f8951c97a5b610841e754788400f32102eefdff1" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body 0.4.5", + "httparse", + "httpdate", + "itoa 1.0.9", + "pin-project-lite", + "socket2 0.4.9", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.0.0-rc.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d280a71f348bcc670fc55b02b63c53a04ac0bf2daff2980795aeaf53edae10e6" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body 1.0.0-rc.2", + "httparse", + "httpdate", + "itoa 1.0.9", + "pin-project-lite", + "tokio", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +dependencies = [ + "futures-util", + "http", + "hyper 0.14.27", + "rustls 0.21.7", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.27", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-util" +version = "0.0.0" +source = "git+https://github.com/hyperium/hyper-util.git#f898015fc9eca9f459ddac521db278d904099e89" +dependencies = [ + "futures-channel", + "futures-util", + "http", + "hyper 1.0.0-rc.4", + "once_cell", + "pin-project-lite", + "socket2 0.4.9", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows 0.48.0", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "if-addrs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "if-addrs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b24dd0826eee92c56edcda7ff190f2cf52115c49eadb2c2da8063e2673a8c2" +dependencies = [ + "libc", + "windows-sys 0.42.0", +] + +[[package]] +name = "if-addrs" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cfc4a06638d2fd0dda83b01126fefd38ef9f04f54d2fc717a938df68b83a68d" +dependencies = [ + "libc", + "windows-sys 0.45.0", +] + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "ignore" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +dependencies = [ + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg 1.1.0", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", + "serde", +] + +[[package]] +name = "infer" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" +dependencies = [ + "cfb", +] + +[[package]] +name = "inferno" +version = "0.11.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73c0fefcb6d409a6587c07515951495d482006f89a21daa0f2f783aa4fd5e027" +dependencies = [ + "ahash 0.8.3", + "clap 4.4.1", + "crossbeam-channel", + "crossbeam-utils", + "dashmap 5.5.2", + "env_logger", + "indexmap 2.0.0", + "is-terminal", + "itoa 1.0.9", + "log", + "num-format", + "once_cell", + "quick-xml 0.26.0", + "rgb", + "str_stack", +] + +[[package]] +name = "influxive-otel-atomic-obs" +version = "0.0.1-alpha.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07bcce79167d27b8b2d639cf026029506ed3dfa7bf7ee402c29cab03a7afd16" +dependencies = [ + "ts_opentelemetry_api", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding 0.3.3", + "generic-array 0.14.7", +] + +[[package]] +name = "input_buffer" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" +dependencies = [ + "bytes", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "intervallum" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1" +dependencies = [ + "bit-set", + "gcollections", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.2", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipconfig" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +dependencies = [ + "socket2 0.5.3", + "widestring", + "windows-sys 0.48.0", + "winreg 0.50.0", +] + +[[package]] +name = "ipnet" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" + +[[package]] +name = "is-macro" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7d079e129b77477a49c5c4f1cfe9ce6c2c909ef52520693e8e811a714c7b20" +dependencies = [ + "Inflector", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi 0.3.2", + "rustix 0.38.10", + "windows-sys 0.48.0", +] + +[[package]] +name = "isotest" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "868ab2c0c71eff3fca21f4ea4673ade85ca0149c45a55c79016147562737aef8" +dependencies = [ + "futures", + "paste", +] + +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine 4.6.6", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3fa5a61630976fc4c353c70297f2e93f1930e3ccee574d59d618ccbd5154ce" +dependencies = [ + "serde", + "serde_json", + "treediff 3.0.2", +] + +[[package]] +name = "json-patch" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f54898088ccb91df1b492cc80029a6fdf1c48ca0db7c6822a8babad69c94658" +dependencies = [ + "serde", + "serde_json", + "thiserror", + "treediff 4.0.2", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.3", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "juniper" +version = "0.16.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "async-trait", + "bson", + "chrono", + "fnv", + "futures", + "futures-enum", + "graphql-parser", + "indexmap 1.9.3", + "juniper_codegen", + "serde", + "smartstring", + "static_assertions", + "url 2.4.1", + "uuid 1.4.1", + "void", +] + +[[package]] +name = "juniper_codegen" +version = "0.16.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", + "url 2.4.1", +] + +[[package]] +name = "juniper_graphql_transport_ws" +version = "0.4.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "juniper", + "juniper_subscriptions", + "serde", + "tokio", +] + +[[package]] +name = "juniper_graphql_ws" +version = "0.4.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "juniper", + "juniper_subscriptions", + "serde", + "tokio", +] + +[[package]] +name = "juniper_subscriptions" +version = "0.17.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "futures", + "juniper", +] + +[[package]] +name = "juniper_warp" +version = "0.8.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "anyhow", + "futures", + "headers", + "juniper", + "juniper_graphql_transport_ws", + "juniper_graphql_ws", + "serde", + "serde_json", + "thiserror", + "tokio", + "warp", +] + +[[package]] +name = "keccak" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kitsune_p2p" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "999ed18511743698999bdfddeb90c3c814bc2d32acf7c8a5bce883f2c1e97d67" +dependencies = [ + "arbitrary", + "arrayref", + "base64 0.13.1", + "blake2b_simd 0.5.11", + "bloomfilter", + "bytes", + "derive_more", + "fixt", + "futures", + "ghost_actor 0.3.0-alpha.6", + "governor", + "holochain_trace", + "itertools 0.10.5", + "kitsune_p2p_block", + "kitsune_p2p_fetch", + "kitsune_p2p_mdns", + "kitsune_p2p_proxy", + "kitsune_p2p_timestamp", + "kitsune_p2p_transport_quic", + "kitsune_p2p_types", + "maplit", + "mockall", + "must_future", + "nanoid 0.4.0", + "num-traits", + "once_cell", + "parking_lot 0.11.2", + "rand 0.8.5", + "reqwest", + "serde", + "serde_bytes", + "serde_json", + "shrinkwraprs", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "tx5", + "url2", +] + +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" +dependencies = [ + "arbitrary", + "base64 0.13.1", + "derive_more", + "holochain_util", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_bootstrap" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831f6acbe8deee4ee85153b1055a6be4635658273f51df248084f4504e869755" +dependencies = [ + "clap 3.2.25", + "futures", + "kitsune_p2p_types", + "once_cell", + "parking_lot 0.11.2", + "rand 0.8.5", + "rmp-serde 0.15.5", + "serde", + "serde_bytes", + "serde_json", + "tokio", + "warp", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" +dependencies = [ + "colored 1.9.4", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand 0.8.5", + "serde", + "statrs", + "thiserror", + "tracing", +] + +[[package]] +name = "kitsune_p2p_dht_arc" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" +dependencies = [ + "derive_more", + "gcollections", + "intervallum", + "num-traits", + "rusqlite", + "serde", +] + +[[package]] +name = "kitsune_p2p_fetch" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6317d77bc3ffa8c36e5351bad1552320690edb8ebb27d3ca1b8f44ad4d0759a5" +dependencies = [ + "derive_more", + "futures", + "human-repr", + "kitsune_p2p_timestamp", + "kitsune_p2p_types", + "linked-hash-map", + "must_future", + "num-traits", + "serde", + "serde_bytes", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "kitsune_p2p_mdns" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16b6a872bf984119c80c26cc92488763e96c396b5c091b28d5b66aad030bd61" +dependencies = [ + "async-stream", + "base64 0.13.1", + "err-derive", + "futures-core", + "futures-util", + "libmdns", + "mdns", + "tokio", + "tokio-stream", +] + +[[package]] +name = "kitsune_p2p_proxy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dabca0ae25126cf5cc64dda4ed0db3c80640020036d5e16300e0212266da430" +dependencies = [ + "base64 0.13.1", + "blake2b_simd 0.5.11", + "derive_more", + "futures", + "holochain_trace", + "kitsune_p2p_transport_quic", + "kitsune_p2p_types", + "nanoid 0.3.0", + "parking_lot 0.11.2", + "rmp-serde 0.15.5", + "rustls 0.20.9", + "serde", + "serde_bytes", + "structopt", + "tokio", + "tracing-subscriber 0.3.17", + "webpki 0.21.4", +] + +[[package]] +name = "kitsune_p2p_timestamp" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" +dependencies = [ + "arbitrary", + "chrono", + "derive_more", + "rusqlite", + "serde", +] + +[[package]] +name = "kitsune_p2p_transport_quic" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "720caff39a7d58c8543726159facb41aac16645158460ed74fb0a5ca747ef64c" +dependencies = [ + "blake2b_simd 1.0.1", + "futures", + "if-addrs 0.8.0", + "kitsune_p2p_types", + "nanoid 0.4.0", + "once_cell", + "quinn", + "rcgen 0.9.3", + "rustls 0.20.9", + "serde", + "tokio", + "webpki 0.22.0", +] + +[[package]] +name = "kitsune_p2p_types" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00adde41d1b8f9f5c40fd6281662b3030f5a6ea21ddff081c8dd346e18f6eab5" +dependencies = [ + "arbitrary", + "base64 0.13.1", + "derive_more", + "futures", + "ghost_actor 0.3.0-alpha.6", + "holochain_trace", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", + "kitsune_p2p_dht_arc", + "lair_keystore_api", + "lru 0.8.1", + "mockall", + "nanoid 0.3.0", + "once_cell", + "parking_lot 0.11.2", + "paste", + "rmp-serde 0.15.5", + "rustls 0.20.9", + "serde", + "serde_bytes", + "serde_json", + "shrinkwraprs", + "sysinfo 0.27.8", + "thiserror", + "tokio", + "tokio-stream", + "url 2.4.1", + "url2", + "webpki 0.22.0", +] + +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "kuchiki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +dependencies = [ + "cssparser", + "html5ever 0.25.2", + "matches", + "selectors", +] + +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + +[[package]] +name = "lair_keystore" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843c7dbcbc8d75eef0b30397a7eb0d04549aabeff4ea69ebd272aea991555746" +dependencies = [ + "lair_keystore_api", + "pretty_assertions 1.4.0", + "rpassword 7.2.0", + "rusqlite", + "sqlformat 0.2.1", + "structopt", + "sysinfo 0.28.4", + "tracing-subscriber 0.3.17", +] + +[[package]] +name = "lair_keystore_api" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5829f25d0eab6309ae4307aa645f123a64e568a41ec17c358dcbd65dec207e10" +dependencies = [ + "base64 0.13.1", + "dunce", + "hc_seed_bundle", + "lru 0.10.1", + "nanoid 0.4.0", + "once_cell", + "parking_lot 0.12.1", + "rcgen 0.10.0", + "serde", + "serde_json", + "serde_yaml 0.9.25", + "time 0.3.23", + "tokio", + "toml 0.5.11", + "toml 0.7.6", + "tracing", + "url 2.4.1", + "winapi 0.3.9", + "zeroize", +] + +[[package]] +name = "lazy-regex" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff63c423c68ea6814b7da9e88ce585f793c87ddd9e78f646970891769c8235d4" +dependencies = [ + "lazy-regex-proc_macros", + "once_cell", + "regex", +] + +[[package]] +name = "lazy-regex-proc_macros" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8edfc11b8f56ce85e207e62ea21557cfa09bb24a8f6b04ae181b086ff8611c22" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "regex", + "syn 1.0.109", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "lexical" +version = "5.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f404a90a744e32e8be729034fc33b90cf2a56418fbf594d69aa3c0214ad414e5" +dependencies = [ + "cfg-if 1.0.0", + "lexical-core 0.7.6", +] + +[[package]] +name = "lexical" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" +dependencies = [ + "lexical-core 0.8.5", +] + +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec 0.5.2", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "ryu", + "static_assertions", +] + +[[package]] +name = "lexical-core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" +dependencies = [ + "lexical-parse-integer", + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-parse-integer" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" +dependencies = [ + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-util" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "lexical-write-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" +dependencies = [ + "lexical-util", + "lexical-write-integer", + "static_assertions", +] + +[[package]] +name = "lexical-write-integer" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" +dependencies = [ + "lexical-util", + "static_assertions", +] + +[[package]] +name = "libappindicator" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2d3cb96d092b4824cb306c9e544c856a4cb6210c1081945187f7f1924b47e8" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1b3b6681973cea8cc3bce7391e6d7d5502720b80a581c9a95c9cbaf592826aa" +dependencies = [ + "gtk-sys", + "libloading 0.7.4", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + +[[package]] +name = "libdbus-sys" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libffi" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" +dependencies = [ + "libc", + "libffi-sys 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "libffi" +version = "3.2.0" +source = "git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link#ed07c20dfc2a239e6e89f978c3b67c85577f35d4" +dependencies = [ + "libc", + "libffi-sys 2.3.0 (git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link)", +] + +[[package]] +name = "libffi-sys" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" +dependencies = [ + "cc", +] + +[[package]] +name = "libffi-sys" +version = "2.3.0" +source = "git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link#ed07c20dfc2a239e6e89f978c3b67c85577f35d4" +dependencies = [ + "cc", +] + +[[package]] +name = "libflate" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7d5654ae1795afc7ff76f4365c2c8791b0feb18e8996a96adad8ffd7c3b2bf" +dependencies = [ + "adler32", + "core2", + "crc32fast", + "dary_heap", + "libflate_lz77", +] + +[[package]] +name = "libflate_lz77" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be5f52fb8c451576ec6b79d3f4deb327398bc05bbdbd99021a6e77a4c855d524" +dependencies = [ + "core2", + "hashbrown 0.13.2", + "rle-decode-fast", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if 1.0.0", + "winapi 0.3.9", +] + +[[package]] +name = "libloading" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + +[[package]] +name = "libmdns" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a60d8339ad1ddf68a81335fcafb6c6cf20d5036138a1e4ef86b8ce87f076c92" +dependencies = [ + "byteorder", + "futures-util", + "hostname", + "if-addrs 0.7.0", + "log", + "multimap", + "nix 0.23.2", + "rand 0.8.5", + "socket2 0.4.9", + "thiserror", + "tokio", + "winapi 0.3.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +dependencies = [ + "arrayref", + "base64 0.13.1", + "digest 0.9.0", + "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand 0.8.5", + "serde", + "sha2 0.9.9", + "typenum", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle 2.4.1", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.19.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cf9c3bd17952580efd8f57e3d01d724cfb18d51fbd9dc00a65e5911f71521ba" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "libsqlite3-sys" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" + +[[package]] +name = "localtunnel-client" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e27b8ea846da5a71f7513edc8de10adc9f8f6856631d255593b8c9a1e28b49" +dependencies = [ + "anyhow", + "log", + "reqwest", + "serde", + "tokio", +] + +[[package]] +name = "lock_api" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "lock_api" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +dependencies = [ + "autocfg 1.1.0", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +dependencies = [ + "serde", + "value-bag", +] + +[[package]] +name = "log-mdc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" + +[[package]] +name = "log4rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d36ca1786d9e79b8193a68d480a0907b612f109537115c6ff655a3a1967533fd" +dependencies = [ + "anyhow", + "arc-swap", + "chrono", + "derivative", + "fnv", + "humantime", + "libc", + "log", + "log-mdc", + "parking_lot 0.12.1", + "serde", + "serde-value", + "serde_json", + "serde_yaml 0.8.26", + "thiserror", + "thread-id 4.2.0", + "typemap-ors", + "winapi 0.3.9", +] + +[[package]] +name = "loom" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +dependencies = [ + "cfg-if 1.0.0", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber 0.3.17", +] + +[[package]] +name = "loupe" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" +dependencies = [ + "indexmap 1.9.3", + "loupe-derive", + "rustversion", +] + +[[package]] +name = "loupe-derive" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" +dependencies = [ + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "lru" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" +dependencies = [ + "hashbrown 0.12.3", +] + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "mac-notification-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51fca4d74ff9dbaac16a01b924bc3693fa2bba0862c2c633abc73f9a8ea21f64" +dependencies = [ + "cc", + "dirs-next", + "objc-foundation", + "objc_id", + "time 0.3.23", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "markup5ever" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +dependencies = [ + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf 0.10.1", + "phf_codegen 0.10.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "markup5ever_rcdom" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9521dd6750f8e80ee6c53d65e2e4656d7de37064f3a7a5d2d11d05df93839c2" +dependencies = [ + "html5ever 0.26.0", + "markup5ever 0.11.0", + "tendril", + "xml5ever", +] + +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "matchers" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg 1.1.0", + "rawpointer", +] + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + +[[package]] +name = "md-5" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "md4" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da5ac363534dce5fabf69949225e174fbf111a498bf0ff794c8ea1fba9f3dda" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "mdns" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c769962ac75a6ea437f0922b27834bcccd4c013d591383a16ae5731e3ef0f3f3" +dependencies = [ + "async-std", + "async-stream", + "dns-parser", + "err-derive", + "futures-core", + "futures-util", + "log", + "net2", +] + +[[package]] +name = "memchr" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f478948fd84d9f8e86967bf432640e46adfb5a4bd4f14ef7e864ab38220534ae" + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memmem" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "minisign-verify" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881" + +[[package]] +name = "miniz_oxide" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +dependencies = [ + "adler", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +dependencies = [ + "libc", + "log", + "miow", + "ntapi 0.3.7", + "winapi 0.3.9", +] + +[[package]] +name = "mio" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if 1.0.0", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates 2.1.5", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if 1.0.0", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "monch" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4519a88847ba2d5ead3dc53f1060ec6a571de93f325d9c5c4968147382b1cbc3" + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "mr_bundle" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07707c320cdf007f36f450de93074425885fad116d55bda2b87e96bd216d6a0" +dependencies = [ + "arbitrary", + "bytes", + "derive_more", + "either", + "flate2", + "futures", + "holochain_util", + "reqwest", + "rmp-serde 0.15.5", + "serde", + "serde_bytes", + "serde_derive", + "serde_yaml 0.9.25", + "thiserror", +] + +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "blake2b_simd 1.0.1", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive", + "sha2 0.10.7", + "sha3 0.10.8", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate", + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +dependencies = [ + "serde", +] + +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand 0.8.5", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "nanoid" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6226bc4e142124cb44e309a37a04cd9bb10e740d8642855441d3b14808f635e" +dependencies = [ + "rand 0.6.5", +] + +[[package]] +name = "nanoid" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +dependencies = [ + "bitflags 1.3.2", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "net2" +version = "0.2.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "netif" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29a01b9f018d6b7b277fef6c79fdbd9bf17bb2d1e298238055cafab49baa5ee" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec 1.11.0", +] + +[[package]] +name = "nix" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" +dependencies = [ + "bitflags 1.3.2", + "cc", + "cfg-if 1.0.0", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +dependencies = [ + "bitflags 1.3.2", + "cfg-if 1.0.0", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" +dependencies = [ + "autocfg 1.1.0", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "libc", +] + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if 1.0.0", + "libc", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" +dependencies = [ + "hashbrown 0.8.2", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nom" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c349f68f25f596b9f44cf0e7c69752a5c633b0550c3ff849518bfba0233774a" +dependencies = [ + "memchr", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonzero_ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44a1290799eababa63ea60af0cbc3f03363e328e58f32fb0294798ed3e85f444" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "notify" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2c66da08abae1c024c01d635253e402341b4060a12e99b31c7594063bf490a" +dependencies = [ + "bitflags 1.3.2", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "mio 0.8.8", + "walkdir", + "winapi 0.3.9", +] + +[[package]] +name = "notify-rust" +version = "4.6.0" +source = "git+https://github.com/coasys/notify-rust.git#b08ab0233810d365d1e914998ff81002090753a6" +dependencies = [ + "dbus", + "log", + "mac-notification-sys", + "tauri-winrt-notification", +] + +[[package]] +name = "ntapi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi 0.3.9", +] + +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg 1.1.0", + "num-integer", + "num-traits", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "serde", + "smallvec 1.11.0", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-format" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +dependencies = [ + "arrayvec 0.7.4", + "itoa 1.0.9", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg 1.1.0", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg 1.1.0", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.5.2" +source = "git+https://github.com/coasys/num-modular.git#1ae06248ec69390370def3a229b3bf4c209aa6c7" + +[[package]] +name = "num-order" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e81e321057a0370997b13e6638bba6bd7f6f426e1f8e9a2562490a28eb23e1bc" +dependencies = [ + "num-modular 0.5.1", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg 1.1.0", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +dependencies = [ + "autocfg 1.1.0", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.2", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +dependencies = [ + "crc32fast", + "hashbrown 0.11.2", + "indexmap 1.9.3", + "memchr", +] + +[[package]] +name = "object" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe" +dependencies = [ + "memchr", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "one_err" +version = "0.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e81851974d8bb6cc9a643cca68afdce7f0a3b80e08a4620388836bb99a680554" +dependencies = [ + "indexmap 1.9.3", + "libc", + "serde", + "serde_json", +] + +[[package]] +name = "onig" +version = "6.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" +dependencies = [ + "bitflags 1.3.2", + "libc", + "once_cell", + "onig_sys", +] + +[[package]] +name = "onig_sys" +version = "69.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "open" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2423ffbf445b82e58c3b1543655968923dd06f85432f10be2bb4f1b7122f98c" +dependencies = [ + "pathdiff", + "windows-sys 0.36.1", +] + +[[package]] +name = "open" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +dependencies = [ + "pathdiff", + "windows-sys 0.42.0", +] + +[[package]] +name = "opener" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "293c15678e37254c15bd2f092314abb4e51d7fdde05c2021279c12631b54f005" +dependencies = [ + "bstr", + "winapi 0.3.9", +] + +[[package]] +name = "openssl" +version = "0.10.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" +dependencies = [ + "bitflags 2.4.0", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7e971c2c2bba161b2d2fdf37080177eff520b3bc044787c7f1f5f9e78d869b" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +dependencies = [ + "num-traits", +] + +[[package]] +name = "os_info" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" +dependencies = [ + "log", + "serde", + "winapi 0.3.9", +] + +[[package]] +name = "os_pipe" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "os_str_bytes" +version = "6.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" + +[[package]] +name = "ouroboros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" +dependencies = [ + "aliasable", + "ouroboros_macro", +] + +[[package]] +name = "ouroboros_macro" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" +dependencies = [ + "Inflector", + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "output_vt100" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "outref" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owning_ref" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d52571ddcb42e9c900c901a18d8d67e393df723fcd51dd59c5b1a85d0acb6cc" + +[[package]] +name = "p224" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c06436d66652bc2f01ade021592c80a2aad401570a18aa18b82e440d2b9aa1" +dependencies = [ + "ecdsa 0.16.8", + "elliptic-curve 0.13.5", + "primeorder", + "sha2 0.10.7", +] + +[[package]] +name = "p256" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" +dependencies = [ + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.7", +] + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.8", + "elliptic-curve 0.13.5", + "primeorder", + "sha2 0.10.7", +] + +[[package]] +name = "p384" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" +dependencies = [ + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.7", +] + +[[package]] +name = "p384" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" +dependencies = [ + "ecdsa 0.16.8", + "elliptic-curve 0.13.5", + "primeorder", + "sha2 0.10.7", +] + +[[package]] +name = "page_size" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "pairing" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" +dependencies = [ + "group 0.12.1", +] + +[[package]] +name = "pango" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +dependencies = [ + "bitflags 1.3.2", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.1.1", +] + +[[package]] +name = "parking" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" + +[[package]] +name = "parking_lot" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa12d706797d42551663426a45e2db2e0364bd1dbf6aeada87e89c5f981f43e9" +dependencies = [ + "owning_ref", + "parking_lot_core 0.2.14", + "thread-id 3.3.0", +] + +[[package]] +name = "parking_lot" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" +dependencies = [ + "lock_api 0.3.4", + "parking_lot_core 0.7.3", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api 0.4.10", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api 0.4.10", + "parking_lot_core 0.9.8", +] + +[[package]] +name = "parking_lot_core" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +dependencies = [ + "libc", + "rand 0.4.6", + "smallvec 0.6.14", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93f386bb233083c799e6e642a9d73db98c24a5deeb95ffc85bf281255dffc98" +dependencies = [ + "cfg-if 0.1.10", + "cloudabi", + "libc", + "redox_syscall 0.1.57", + "smallvec 1.11.0", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec 1.11.0", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall 0.3.5", + "smallvec 1.11.0", + "windows-targets 0.48.5", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle 2.4.1", +] + +[[package]] +name = "password-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle 2.4.1", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "path-clean" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecba01bf2678719532c5e3059e0b5f0811273d94b397088b82e3bd0a78c78fdd" + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac 0.12.1", + "password-hash 0.4.2", + "sha2 0.10.7", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac 0.12.1", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "pest" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ac8b67553a7ca9457ce0e526948cad581819238f4a9d1ea74545851fa24f37" +dependencies = [ + "phf_macros 0.9.0", + "phf_shared 0.9.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43f3220d96e0080cc9ea234978ccd80d904eafb17be31bb0f76daaea6493082" +dependencies = [ + "phf_shared 0.9.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b706f5936eb50ed880ae3009395b43ed19db5bff2ebd459c95e7bf013a89ab86" +dependencies = [ + "phf_generator 0.9.1", + "phf_shared 0.9.0", + "proc-macro-hack", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +dependencies = [ + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.8", + "spki 0.7.2", +] + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "platforms" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" + +[[package]] +name = "plist" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06" +dependencies = [ + "base64 0.21.3", + "indexmap 1.9.3", + "line-wrap", + "quick-xml 0.29.0", + "serde", + "time 0.3.23", +] + +[[package]] +name = "pmutil" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "pmutil" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", +] + +[[package]] +name = "png" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide 0.7.1", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg 1.1.0", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug 0.3.0", + "universal-hash", +] + +[[package]] +name = "polyval" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "opaque-debug 0.3.0", + "universal-hash", +] + +[[package]] +name = "portpicker" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "predicates" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df" +dependencies = [ + "difference", + "float-cmp 0.8.0", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp 0.9.0", + "itertools 0.10.5", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "pretty_assertions" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cab0e7c02cf376875e9335e0ba1da535775beb5450d21e1dffca068818ed98b" +dependencies = [ + "ansi_term", + "ctor", + "diff", + "output_vt100", +] + +[[package]] +name = "pretty_assertions" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +dependencies = [ + "diff", + "yansi", +] + +[[package]] +name = "primeorder" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3" +dependencies = [ + "elliptic-curve 0.13.5", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +dependencies = [ + "cfg-if 1.0.0", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.1", + "protobuf", + "thiserror", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "quanta" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98dc777a7a39b76b1a26ae9d3f691f4c1bc0455090aa0b64dfa8cb7fc34c135" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-xml" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51" +dependencies = [ + "memchr", +] + +[[package]] +name = "quinn" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b435e71d9bfa0d8889927231970c51fb89c58fa63bffcab117c9c7a41e5ef8f" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "fxhash", + "quinn-proto", + "quinn-udp", + "rustls 0.20.9", + "thiserror", + "tokio", + "tracing", + "webpki 0.22.0", +] + +[[package]] +name = "quinn-proto" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce546b9688f767a57530652488420d419a8b1f44a478b451c3d1ab6d992a55" +dependencies = [ + "bytes", + "fxhash", + "rand 0.8.5", + "ring", + "rustls 0.20.9", + "rustls-native-certs", + "rustls-pemfile 0.2.1", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki 0.22.0", +] + +[[package]] +name = "quinn-udp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07946277141531aea269befd949ed16b2c85a780ba1043244eda0969e538e54" +dependencies = [ + "futures-util", + "libc", + "quinn-proto", + "socket2 0.4.9", + "tokio", + "tracing", +] + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2 1.0.66", +] + +[[package]] +name = "r2d2" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" +dependencies = [ + "log", + "parking_lot 0.12.1", + "scheduled-thread-pool", +] + +[[package]] +name = "r2d2_sqlite_neonphog" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d1e95b387a49ce52c5e4994fbe18af7b6cd52510f74c9a243b12abfc207f49c" +dependencies = [ + "r2d2", + "rusqlite", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi 0.3.9", +] + +[[package]] +name = "rand" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +dependencies = [ + "autocfg 0.1.8", + "libc", + "rand_chacha 0.1.1", + "rand_core 0.4.2", + "rand_hc 0.1.0", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg 0.1.2", + "rand_xorshift", + "winapi 0.3.9", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc 0.2.0", + "rand_pcg 0.2.1", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand-utf8" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f2017cdc22f0f49fc0385c036847c03403fa5f95bc36e7f420e8e42446e80f" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "rand_chacha" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +dependencies = [ + "autocfg 0.1.8", + "rand_core 0.3.1", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.10", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "rand_hc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_jitter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +dependencies = [ + "libc", + "rand_core 0.4.2", + "winapi 0.3.9", +] + +[[package]] +name = "rand_os" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +dependencies = [ + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.4.2", + "rdrand", + "winapi 0.3.9", +] + +[[package]] +name = "rand_pcg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +dependencies = [ + "autocfg 0.1.8", + "rand_core 0.4.2", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring", + "time 0.3.23", + "yasna", +] + +[[package]] +name = "rcgen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +dependencies = [ + "pem", + "ring", + "time 0.3.23", + "yasna", + "zeroize", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.10", + "redox_syscall 0.2.16", + "thiserror", +] + +[[package]] +name = "ref_thread_local" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d813022b2e00774a48eaf43caaa3c20b45f040ba8cbf398e2e8911a06668dbe6" + +[[package]] +name = "regalloc" +version = "0.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +dependencies = [ + "log", + "rustc-hash", + "smallvec 1.11.0", +] + +[[package]] +name = "regex" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.3.7", + "regex-syntax 0.7.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.7.5", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + +[[package]] +name = "region" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" +dependencies = [ + "bitflags 1.3.2", + "libc", + "mach", + "winapi 0.3.9", +] + +[[package]] +name = "remove_dir_all" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882f368737489ea543bc5c340e6f3d34a28c39980bd9a979e47322b26f60ac40" +dependencies = [ + "libc", + "log", + "num_cpus", + "rayon", + "winapi 0.3.9", +] + +[[package]] +name = "rend" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581008d2099240d37fb08d77ad713bcaec2c4d89d50b5b21a8bb1996bbab68ab" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqwest" +version = "0.11.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" +dependencies = [ + "async-compression 0.4.2", + "base64 0.21.3", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body 0.4.5", + "hyper 0.14.27", + "hyper-rustls", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding 2.3.0", + "pin-project-lite", + "rustls 0.21.7", + "rustls-pemfile 1.0.3", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tokio-rustls 0.24.1", + "tokio-socks", + "tokio-util", + "tower-service", + "url 2.4.1", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots 0.25.2", + "winreg 0.50.0", +] + +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error", +] + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac 0.12.1", + "zeroize", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle 2.4.1", +] + +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", +] + +[[package]] +name = "rgb" +version = "0.8.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted", + "web-sys", + "winapi 0.3.9", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "ripemd160" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad5112e0dbbb87577bfbc56c42450235e3012ce336e29c5befd7807bd626da4a" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + +[[package]] +name = "rkyv" +version = "0.7.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0200c8230b013893c0b2d6213d6ec64ed2b9be2e0e016682b7224ff82cff5c58" +dependencies = [ + "bitvec", + "bytecheck", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid 1.4.1", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e06b915b5c230a17d7a736d1e2e63ee753c256a8614ef3f5147b13a4f5541d" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rmp" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rmp-serde" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rmpv" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754" +dependencies = [ + "num-traits", + "rmp", + "serde", + "serde_bytes", +] + +[[package]] +name = "roxmltree" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5001f134077069d87f77c8b9452b690df2445f7a43f1c7ca4a1af8dd505789d" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "rpassword" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "rpassword" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" +dependencies = [ + "libc", + "rtoolbox", + "winapi 0.3.9", +] + +[[package]] +name = "rsa" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "094052d5470cbcef561cb848a7209968c9f12dfa6d668f4bca048ac5de51099c" +dependencies = [ + "byteorder", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pkcs1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "signature 1.6.4", + "smallvec 1.11.0", + "subtle 2.4.1", + "zeroize", +] + +[[package]] +name = "rtoolbox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "rusqlite" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2" +dependencies = [ + "bitflags 2.4.0", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "smallvec 1.11.0", +] + +[[package]] +name = "rust-embed" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e7d90385b59f0a6bf3d3b757f3ca4ece2048265d70db20a2016043d4509a40" +dependencies = [ + "rust-embed-impl", + "rust-embed-utils", + "walkdir", +] + +[[package]] +name = "rust-embed-impl" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3d8c6fd84090ae348e63a84336b112b5c3918b3bf0493a581f7bd8ee623c29" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "rust-embed-utils", + "syn 2.0.29", + "walkdir", +] + +[[package]] +name = "rust-embed-utils" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873feff8cb7bf86fdf0a71bb21c95159f4e4a37dd7a4bd1855a940909b583ada" +dependencies = [ + "sha2 0.10.7", + "walkdir", +] + +[[package]] +name = "rust-executor" +version = "0.6.0" +dependencies = [ + "argon2", + "base64 0.21.3", + "chrono", + "cid", + "clap 4.4.1", + "crypto_box", + "deno_core", + "deno_runtime", + "did-key", + "dirs 5.0.1", + "env_logger", + "fs_extra", + "futures", + "hex", + "holochain", + "holochain_cli_bundle", + "holochain_cli_run_local_services", + "holochain_types", + "http-body-util", + "hyper 1.0.0-rc.4", + "hyper-util", + "jsonwebtoken", + "juniper", + "juniper_graphql_transport_ws", + "juniper_subscriptions", + "juniper_warp", + "lazy_static", + "log", + "maplit", + "multibase", + "multihash", + "once_cell", + "os_info", + "rand 0.8.5", + "rust-embed", + "scryer-prolog", + "secp256k1", + "semver 1.0.18", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "url 2.4.1", + "uuid 1.4.1", + "warp", + "zip", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.18", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom 7.1.3", +] + +[[package]] +name = "rustix" +version = "0.37.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +dependencies = [ + "bitflags 1.3.2", + "errno 0.3.3", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed6248e1caa625eb708e266e06159f135e8c26f2bb7ceb72dc4b2766d0340964" +dependencies = [ + "bitflags 2.4.0", + "errno 0.3.3", + "libc", + "linux-raw-sys 0.4.5", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring", + "sct", + "webpki 0.22.0", +] + +[[package]] +name = "rustls" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +dependencies = [ + "log", + "ring", + "rustls-webpki 0.101.4", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.3", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.3", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "rustyline" +version = "10.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e83c32c3f3c33b08496e0d1df9ea8c64d39adb8eb36a1ebb1440c690697aef" +dependencies = [ + "bitflags 1.3.2", + "cfg-if 1.0.0", + "clipboard-win", + "dirs-next", + "fd-lock", + "libc", + "log", + "memchr", + "nix 0.25.1", + "radix_trie", + "scopeguard", + "unicode-segmentation", + "unicode-width", + "utf8parse", + "winapi 0.3.9", +] + +[[package]] +name = "rustyline" +version = "12.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9" +dependencies = [ + "bitflags 2.4.0", + "cfg-if 1.0.0", + "clipboard-win", + "fd-lock", + "home", + "libc", + "log", + "memchr", + "nix 0.26.4", + "radix_trie", + "scopeguard", + "unicode-segmentation", + "unicode-width", + "utf8parse", + "winapi 0.3.9", +] + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "scheduled-thread-pool" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" +dependencies = [ + "parking_lot 0.12.1", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scryer-prolog" +version = "0.9.1" +source = "git+https://github.com/coasys/scryer-prolog?branch=ad4m-compatible#7d78acf2f99b6177fb9a6f14d1021772f1416cf7" +dependencies = [ + "base64 0.12.3", + "bit-set", + "bitvec", + "blake2 0.8.1", + "bytes", + "chrono", + "cpu-time", + "crossterm 0.20.0", + "crrl", + "ctrlc", + "dashu", + "derive_deref", + "dirs-next", + "divrem", + "futures", + "fxhash", + "git-version", + "hostname", + "http-body-util", + "hyper 1.0.0-rc.4", + "hyper-util", + "indexmap 1.9.3", + "lazy_static", + "lexical 5.2.2", + "libc", + "libffi 3.2.0 (git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link)", + "libloading 0.7.4", + "modular-bitfield", + "native-tls", + "ordered-float", + "phf 0.9.0", + "proc-macro2 1.0.66", + "quote 1.0.33", + "rand 0.8.5", + "ref_thread_local", + "regex", + "reqwest", + "ring", + "ripemd160", + "roxmltree", + "rustyline 12.0.0", + "ryu", + "select", + "sha3 0.8.2", + "smallvec 1.11.0", + "sodiumoxide", + "static_assertions", + "strum 0.23.0", + "strum_macros 0.23.1", + "syn 1.0.109", + "to-syn-value", + "to-syn-value_derive", + "tokio", + "walkdir", +] + +[[package]] +name = "scrypt" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +dependencies = [ + "password-hash 0.5.0", + "pbkdf2 0.12.2", + "salsa20", + "sha2 0.10.7", +] + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sd-notify" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cd08a21f852bd2fe42e3b2a6c76a0db6a95a5b5bd29c0521dd0b30fa1712ec8" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct 0.1.1", + "der 0.6.1", + "generic-array 0.14.7", + "pkcs8 0.9.0", + "subtle 2.4.1", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.8", + "generic-array 0.14.7", + "pkcs8 0.10.2", + "subtle 2.4.1", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "rand 0.8.5", + "secp256k1-sys", + "serde", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "select" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f9da09dc3f4dfdb6374cbffff7a2cffcec316874d4429899eefdc97b3b94dcd" +dependencies = [ + "bit-set", + "html5ever 0.26.0", + "markup5ever_rcdom", +] + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec 1.11.0", + "thin-slice", +] + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser 0.7.0", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser 0.10.2", +] + +[[package]] +name = "semver" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.166" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-transcode" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" +dependencies = [ + "serde", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.166" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", +] + +[[package]] +name = "serde_json" +version = "1.0.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +dependencies = [ + "indexmap 2.0.0", + "itoa 1.0.9", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", +] + +[[package]] +name = "serde_spanned" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.9", + "ryu", + "serde", +] + +[[package]] +name = "serde_v8" +version = "0.110.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3bafaee0eecbef6c47ad3e7e0a764e22eb35a229ff7d06b7801fcbeaa5364b8" +dependencies = [ + "bytes", + "derive_more", + "num-bigint", + "serde", + "serde_bytes", + "smallvec 1.11.0", + "thiserror", + "v8", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros 1.5.2", +] + +[[package]] +name = "serde_with" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" +dependencies = [ + "base64 0.21.3", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.0.0", + "serde", + "serde_json", + "serde_with_macros 3.3.0", + "time 0.3.23", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling 0.13.4", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "serde_with_macros" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c" +dependencies = [ + "darling 0.20.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "serde_yaml" +version = "0.9.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" +dependencies = [ + "indexmap 2.0.0", + "itoa 1.0.9", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "sha-1" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "sha2" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" +dependencies = [ + "block-buffer 0.7.3", + "byte-tools", + "digest 0.8.1", + "keccak", + "opaque-debug 0.2.3", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared_child" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags 1.3.2", + "itertools 0.8.2", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio 0.7.14", + "mio 0.8.8", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror", + "time 0.3.23", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe" +dependencies = [ + "serde", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "smallvec" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" +dependencies = [ + "maybe-uninit", +] + +[[package]] +name = "smallvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" + +[[package]] +name = "smartstring" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" +dependencies = [ + "autocfg 1.1.0", + "static_assertions", + "version_check", +] + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "socket2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "sodiumoxide" +version = "0.2.7" +source = "git+https://github.com/fayeed/sodiumoxide#0adef01f4e0d5a8dd76bfb5534309259aa8e8ee7" +dependencies = [ + "ed25519", + "libc", + "libsodium-sys-stable", + "serde", +] + +[[package]] +name = "sodoken" +version = "0.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebd7d30290221181652f7a08112f5e7871e3deffde718dfa621025aa0e9c290" +dependencies = [ + "libc", + "libsodium-sys-stable", + "num_cpus", + "once_cell", + "one_err", + "parking_lot 0.12.1", + "tokio", +] + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags 1.3.2", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", +] + +[[package]] +name = "soup2-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +dependencies = [ + "bitflags 1.3.2", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "sourcemap" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4cbf65ca7dc576cf50e21f8d0712d96d4fcfd797389744b7b222a85cdf5bd90" +dependencies = [ + "data-encoding", + "debugid", + "if_chain", + "rustc_version 0.2.3", + "serde", + "serde_json", + "unicode-id", + "url 2.4.1", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api 0.4.10", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der 0.7.8", +] + +[[package]] +name = "sqlformat" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" +dependencies = [ + "itertools 0.10.5", + "nom 7.1.3", + "unicode_categories", +] + +[[package]] +name = "sqlformat" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c12bc9199d1db8234678b7051747c07f517cdcf019262d1847b94ec8b1aee3e" +dependencies = [ + "itertools 0.10.5", + "nom 7.1.3", + "unicode_categories", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if 1.0.0", + "libc", + "psm", + "winapi 0.3.9", +] + +[[package]] +name = "state" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "str_stack" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" + +[[package]] +name = "stream-cancel" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0a9eb2715209fb8cc0d942fcdff45674bfc9f0090a0d897e85a22955ad159b" +dependencies = [ + "futures-core", + "pin-project", + "tokio", +] + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.1", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2 1.0.66", + "quote 1.0.33", +] + +[[package]] +name = "string_enum" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0090512bdfee4b56d82480d66c0fd8a6f53f0fe0f97e075e949b252acdd482e0" +dependencies = [ + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "swc_macros_common", + "syn 1.0.109", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "strsim" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap 2.34.0", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck 0.3.3", + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "strum" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" + +[[package]] +name = "strum" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.2", +] + +[[package]] +name = "strum_macros" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" +dependencies = [ + "heck 0.3.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +dependencies = [ + "heck 0.3.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.33", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.33", + "rustversion", + "syn 2.0.29", +] + +[[package]] +name = "subprocess" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + +[[package]] +name = "swc_atoms" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d0307dc4bfd107d49c7528350c372758cfca94fb503629b9a056e6a1572860" +dependencies = [ + "once_cell", + "rustc-hash", + "serde", + "string_cache", + "string_cache_codegen", + "triomphe", +] + +[[package]] +name = "swc_common" +version = "0.31.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19c774005489d2907fb67909cf42af926e72edee1366512777c605ba2ef19c94" +dependencies = [ + "ahash 0.7.6", + "ast_node", + "better_scoped_tls", + "cfg-if 1.0.0", + "either", + "from_variant", + "new_debug_unreachable", + "num-bigint", + "once_cell", + "rustc-hash", + "serde", + "siphasher 0.3.11", + "sourcemap", + "string_cache", + "swc_atoms", + "swc_eq_ignore_macros", + "swc_visit", + "tracing", + "unicode-width", + "url 2.4.1", +] + +[[package]] +name = "swc_config" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89c8fc2c12bb1634c7c32fc3c9b6b963ad8f034cc62c4ecddcf215dc4f6f959d" +dependencies = [ + "indexmap 1.9.3", + "serde", + "serde_json", + "swc_config_macro", +] + +[[package]] +name = "swc_config_macro" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dadb9998d4f5fc36ef558ed5a092579441579ee8c6fcce84a5228cca9df4004" +dependencies = [ + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "swc_macros_common", + "syn 1.0.109", +] + +[[package]] +name = "swc_ecma_ast" +version = "0.104.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5cf9dd351d0c285dcd36535267953a18995d4dda0cbe34ac9d1df61aa415b26" +dependencies = [ + "bitflags 2.4.0", + "is-macro", + "num-bigint", + "scoped-tls", + "serde", + "string_enum", + "swc_atoms", + "swc_common", + "unicode-id", +] + +[[package]] +name = "swc_ecma_codegen" +version = "0.139.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66d1ea16bb9b7ea6f87f17325742ff256fcbd65b188af57c2bf415fe4afc945" +dependencies = [ + "memchr", + "num-bigint", + "once_cell", + "rustc-hash", + "serde", + "sourcemap", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_codegen_macros", + "tracing", +] + +[[package]] +name = "swc_ecma_codegen_macros" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ee0caee1018808d94ecd09490cb7affd3d504b19aa11c49238f5fc4b54901" +dependencies = [ + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "swc_macros_common", + "syn 1.0.109", +] + +[[package]] +name = "swc_ecma_loader" +version = "0.43.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe45f1e5dcc1b005544ff78253b787dea5dfd5e2f712b133964cdc3545c954a4" +dependencies = [ + "ahash 0.7.6", + "anyhow", + "pathdiff", + "serde", + "swc_common", + "tracing", +] + +[[package]] +name = "swc_ecma_parser" +version = "0.134.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0a3fcfe3d83dd445cbd9321882e47b467594433d9a21c4d6c37a27f534bb89e" +dependencies = [ + "either", + "lexical 6.1.1", + "num-bigint", + "serde", + "smallvec 1.11.0", + "smartstring", + "stacker", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "tracing", + "typed-arena", +] + +[[package]] +name = "swc_ecma_transforms_base" +version = "0.127.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c33ec5369178f3a0580ab86cfe89ffb9c3fbd122aed379cfb71d469d9d61c1" +dependencies = [ + "better_scoped_tls", + "bitflags 2.4.0", + "indexmap 1.9.3", + "once_cell", + "phf 0.10.1", + "rustc-hash", + "serde", + "smallvec 1.11.0", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_utils", + "swc_ecma_visit", + "tracing", +] + +[[package]] +name = "swc_ecma_transforms_classes" +version = "0.116.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e3b0d5f362f0da97be1f1b06d7b0d8667ea70b4adeabff0dcaecb6259c09525" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_macros" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "984d5ac69b681fc5438f9abf82b0fda34fe04e119bc75f8213b7e01128c7c9a2" +dependencies = [ + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "swc_macros_common", + "syn 1.0.109", +] + +[[package]] +name = "swc_ecma_transforms_proposal" +version = "0.161.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cdce42d44ef775bc29f5ada3678a80ff72fa17a0ef705e14f63cfd0e0155e0e" +dependencies = [ + "either", + "rustc-hash", + "serde", + "smallvec 1.11.0", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_react" +version = "0.173.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fb9481ad4e2acba34c6fbb6d4ccc64efe9f1821675e883dcfa732d7220f4b1e" +dependencies = [ + "ahash 0.7.6", + "base64 0.13.1", + "dashmap 5.5.2", + "indexmap 1.9.3", + "once_cell", + "serde", + "sha-1 0.10.0", + "string_enum", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_typescript" +version = "0.177.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe2eea4f5b8a25c93cdaa29fb1ce4108893da88a11e61e04b7f5295b5468829" +dependencies = [ + "serde", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_react", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_utils" +version = "0.117.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad791bbfdafcebd878584021e050964c8ab68aba7eeac9d0ee4afba4c284a629" +dependencies = [ + "indexmap 1.9.3", + "num_cpus", + "once_cell", + "rustc-hash", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_visit", + "tracing", + "unicode-id", +] + +[[package]] +name = "swc_ecma_visit" +version = "0.90.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce3ac941ae1d6c7e683aa375fc71fbf58df58b441f614d757fbb10554936ca2" +dependencies = [ + "num-bigint", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_visit", + "tracing", +] + +[[package]] +name = "swc_eq_ignore_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c20468634668c2bbab581947bb8c75c97158d5a6959f4ba33df20983b20b4f6" +dependencies = [ + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "swc_macros_common" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e582c3e3c2269238524923781df5be49e011dbe29cf7683a2215d600a562ea6" +dependencies = [ + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "swc_visit" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f412dd4fbc58f509a04e64f5c8038333142fc139e8232f01b883db0094b3b51" +dependencies = [ + "either", + "swc_visit_macros", +] + +[[package]] +name = "swc_visit_macros" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfc226380ba54a5feed2c12f3ccd33f1ae8e959160290e5d2d9b4e918b6472a" +dependencies = [ + "Inflector", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.33", + "swc_macros_common", + "syn 1.0.109", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", + "unicode-xid 0.2.4", +] + +[[package]] +name = "syntect" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" +dependencies = [ + "bincode", + "bitflags 1.3.2", + "flate2", + "fnv", + "once_cell", + "onig", + "plist", + "regex-syntax 0.7.5", + "serde", + "serde_json", + "thiserror", + "walkdir", + "yaml-rust", +] + +[[package]] +name = "sys-locale" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8a11bd9c338fdba09f7881ab41551932ad42e405f61d01e8406baea71c07aee" +dependencies = [ + "js-sys", + "libc", + "wasm-bindgen", + "web-sys", + "windows-sys 0.45.0", +] + +[[package]] +name = "sysinfo" +version = "0.27.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33" +dependencies = [ + "cfg-if 1.0.0", + "core-foundation-sys", + "libc", + "ntapi 0.4.1", + "once_cell", + "rayon", + "winapi 0.3.9", +] + +[[package]] +name = "sysinfo" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2f3ca6693feb29a89724516f016488e9aafc7f37264f898593ee4b942f31b" +dependencies = [ + "cfg-if 1.0.0", + "core-foundation-sys", + "libc", + "ntapi 0.4.1", + "once_cell", + "rayon", + "winapi 0.3.9", +] + +[[package]] +name = "sysinfo" +version = "0.29.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d0e9cc2273cc8d31377bdd638d72e3ac3e5607b18621062b169d02787f1bab" +dependencies = [ + "cfg-if 1.0.0", + "core-foundation-sys", + "libc", + "ntapi 0.4.1", + "once_cell", + "rayon", + "winapi 0.3.9", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml 0.5.11", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3" +dependencies = [ + "cfg-expr 0.15.4", + "heck 0.4.1", + "pkg-config", + "toml 0.7.6", + "version-compare 0.1.1", +] + +[[package]] +name = "tao" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6d198e01085564cea63e976ad1566c1ba2c2e4cc79578e35d9f05521505e31" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "cc", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dirs-next", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkwayland-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys", + "gtk", + "image", + "instant", + "jni", + "lazy_static", + "libappindicator", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot 0.12.1", + "png", + "raw-window-handle", + "scopeguard", + "serde", + "tao-macros", + "unicode-segmentation", + "uuid 1.4.1", + "windows 0.39.0", + "windows-implement", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "target-lexicon" +version = "0.12.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" + +[[package]] +name = "task-motel" +version = "0.1.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767559c8f4ccd87d0191b0ca6bf4480a06bb7e8d98de2169e48d6b6ed18af1a6" +dependencies = [ + "futures", + "parking_lot 0.12.1", + "tokio", + "tracing", +] + +[[package]] +name = "tauri" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fbe522898e35407a8e60dc3870f7579fea2fc262a6a6072eccdd37ae1e1d91e" +dependencies = [ + "anyhow", + "base64 0.21.3", + "bytes", + "cocoa", + "dirs-next", + "embed_plist", + "encoding_rs", + "flate2", + "futures-util", + "glib", + "glob", + "gtk", + "heck 0.4.1", + "http", + "ignore", + "minisign-verify", + "notify-rust", + "objc", + "once_cell", + "open 3.2.0", + "os_info", + "os_pipe", + "percent-encoding 2.3.0", + "rand 0.8.5", + "raw-window-handle", + "regex", + "reqwest", + "rfd", + "semver 1.0.18", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "shared_child", + "state", + "sys-locale", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "time 0.3.23", + "tokio", + "url 2.4.1", + "uuid 1.4.1", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "zip", +] + +[[package]] +name = "tauri-build" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d2edd6a259b5591c8efdeb9d5702cb53515b82a6affebd55c7fd6d3a27b7d1b" +dependencies = [ + "anyhow", + "cargo_toml", + "heck 0.4.1", + "json-patch 1.0.0", + "semver 1.0.18", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", +] + +[[package]] +name = "tauri-codegen" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ad2d49fdeab4a08717f5b49a163bdc72efc3b1950b6758245fcde79b645e1a" +dependencies = [ + "base64 0.21.3", + "brotli", + "ico", + "json-patch 1.0.0", + "plist", + "png", + "proc-macro2 1.0.66", + "quote 1.0.33", + "regex", + "semver 1.0.18", + "serde", + "serde_json", + "sha2 0.10.7", + "tauri-utils", + "thiserror", + "time 0.3.23", + "uuid 1.4.1", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb12a2454e747896929338d93b0642144bb51e0dddbb36e579035731f0d76b7" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin-positioner" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06e0a1f9650fec272f5e4fb2b60863cd9f5dde20ee80e085dd0a99b39b9f8e4" +dependencies = [ + "serde", + "serde_json", + "serde_repr", + "tauri", +] + +[[package]] +name = "tauri-runtime" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "108683199cb18f96d2d4134187bb789964143c845d2d154848dda209191fd769" +dependencies = [ + "gtk", + "http", + "http-range", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "url 2.4.1", + "uuid 1.4.1", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7aa256a1407a3a091b5d843eccc1a5042289baf0a43d1179d9f0fcfea37c1b" +dependencies = [ + "cocoa", + "gtk", + "percent-encoding 2.3.0", + "rand 0.8.5", + "raw-window-handle", + "tauri-runtime", + "tauri-utils", + "uuid 1.4.1", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03fc02bb6072bb397e1d473c6f76c953cda48b4a2d0cce605df284aa74a12e84" +dependencies = [ + "brotli", + "ctor", + "dunce", + "glob", + "heck 0.4.1", + "html5ever 0.25.2", + "infer", + "json-patch 1.0.0", + "kuchiki", + "memchr", + "phf 0.10.1", + "proc-macro2 1.0.66", + "quote 1.0.33", + "semver 1.0.18", + "serde", + "serde_json", + "serde_with 3.3.0", + "thiserror", + "url 2.4.1", + "walkdir", + "windows 0.39.0", +] + +[[package]] +name = "tauri-winres" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" +dependencies = [ + "embed-resource", + "toml 0.7.6", +] + +[[package]] +name = "tauri-winrt-notification" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f5bff1d532fead7c43324a0fa33643b8621a47ce2944a633be4cb6c0240898f" +dependencies = [ + "quick-xml 0.23.1", + "windows 0.39.0", +] + +[[package]] +name = "tempfile" +version = "3.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +dependencies = [ + "cfg-if 1.0.0", + "fastrand 2.0.0", + "redox_syscall 0.3.5", + "rustix 0.38.10", + "windows-sys 0.48.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" +dependencies = [ + "rustix 0.37.23", + "windows-sys 0.48.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-fuzz" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125df852011c4f8f31df5620f4aea38ecddb5dfb4d9bc569b30485b15ffc3d4e" +dependencies = [ + "serde", + "test-fuzz-internal", + "test-fuzz-macro", + "test-fuzz-runtime", +] + +[[package]] +name = "test-fuzz-internal" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" +dependencies = [ + "cargo_metadata", + "proc-macro2 1.0.66", + "quote 1.0.33", + "serde", + "strum_macros 0.24.3", +] + +[[package]] +name = "test-fuzz-macro" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "856bbca0314c328004691b9c0639fb198ca764d1ce0e20d4dd8b78f2697c2a6f" +dependencies = [ + "darling 0.14.4", + "if_chain", + "lazy_static", + "proc-macro2 1.0.66", + "quote 1.0.33", + "subprocess", + "syn 1.0.109", + "test-fuzz-internal", + "toolchain_find", + "unzip-n", +] + +[[package]] +name = "test-fuzz-runtime" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "303774eb17994c2ddb59c460369f4c3a55496f013380278d78eeebd2deb896ac" +dependencies = [ + "bincode", + "hex", + "num-traits", + "serde", + "sha-1 0.10.0", + "test-fuzz-internal", +] + +[[package]] +name = "text_lines" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd5828de7deaa782e1dd713006ae96b3bee32d3279b79eb67ecf8072c059bcf" +dependencies = [ + "serde", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] -name = "string_cache" -version = "0.8.4" +name = "thiserror" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" +checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" dependencies = [ - "new_debug_unreachable", + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", +] + +[[package]] +name = "thread-id" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" +dependencies = [ + "libc", + "redox_syscall 0.1.57", + "winapi 0.3.9", +] + +[[package]] +name = "thread-id" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79474f573561cdc4871a0de34a51c92f7f5a56039113fbb5b9c9f96bdb756669" +dependencies = [ + "libc", + "redox_syscall 0.2.16", + "winapi 0.3.9", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if 1.0.0", "once_cell", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi 0.3.9", +] + +[[package]] +name = "time" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" +dependencies = [ + "itoa 1.0.9", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" + +[[package]] +name = "time-macros" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" +dependencies = [ + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "to-syn-value" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45dcb7b4108a4793bdd74aa3714296c6eaf43663edf73fa8625d0d7621e68447" +dependencies = [ + "syn 1.0.109", + "to-syn-value_derive", +] + +[[package]] +name = "to-syn-value_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd4fdec6de01b568c1d3721c9d46a352623c536cd55a8a5acfefb63d1fccccbc" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "tokio" +version = "1.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio 0.8.8", + "num_cpus", "parking_lot 0.12.1", - "phf_shared 0.10.0", - "precomputed-hash", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.3", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", +] + +[[package]] +name = "tokio-metrics" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b60ac6224d622f71d0b80546558eedf8ff6c2d3817517a9d3ed87ce24fccf6a6" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", + "tokio-stream", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio", + "webpki 0.22.0", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.7", + "tokio", +] + +[[package]] +name = "tokio-socks" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0" +dependencies = [ + "either", + "futures-util", + "thiserror", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1a5f475f1b9d077ea1017ecbc60890fda8e54942d680ca0b1d2b47cfa2d861b" +dependencies = [ + "futures-util", + "log", + "native-tls", + "pin-project", + "tokio", + "tokio-native-tls", + "tungstenite 0.12.0", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" +dependencies = [ + "futures-util", + "log", + "rustls 0.20.9", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.23.4", + "tungstenite 0.18.0", + "webpki 0.22.0", +] + +[[package]] +name = "tokio-util" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ "serde", ] [[package]] -name = "string_cache_codegen" -version = "0.5.2" +name = "toml" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro2", - "quote", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", ] [[package]] -name = "strsim" -version = "0.10.0" +name = "toml_datetime" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] [[package]] -name = "strum" -version = "0.22.0" +name = "toml_edit" +version = "0.19.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" dependencies = [ - "strum_macros", + "indexmap 2.0.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] -name = "strum_macros" -version = "0.22.0" +name = "toolchain_find" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "syn", + "home", + "lazy_static", + "regex", + "semver 0.11.0", + "walkdir", ] [[package]] -name = "syn" -version = "1.0.103" +name = "tower" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", ] [[package]] -name = "synstructure" -version = "0.12.6" +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", + "cfg-if 1.0.0", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", ] [[package]] -name = "syntect" -version = "5.0.0" +name = "tracing-attributes" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c454c27d9d7d9a84c7803aaa3c50cd088d2906fe3c6e42da3209aa623576a8" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ - "bincode", - "bitflags", - "flate2", - "fnv", - "lazy_static", - "once_cell", - "onig", - "plist", - "regex-syntax", - "serde", - "serde_derive", - "serde_json", - "thiserror", - "walkdir", - "yaml-rust", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] -name = "sysinfo" -version = "0.23.13" +name = "tracing-core" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3977ec2e0520829be45c8a2df70db2bf364714d8a748316a10c3c35d4d2b01c9" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ - "cfg-if", - "core-foundation-sys", - "libc", - "ntapi", "once_cell", - "rayon", - "winapi", + "valuable", ] [[package]] -name = "system-deps" -version = "5.0.0" +name = "tracing-futures" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "cfg-expr 0.9.1", - "heck 0.3.3", - "pkg-config", - "toml", - "version-compare 0.0.11", + "pin-project", + "tracing", ] [[package]] -name = "system-deps" -version = "6.0.3" +name = "tracing-log" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" dependencies = [ - "cfg-expr 0.11.0", - "heck 0.4.0", - "pkg-config", - "toml", - "version-compare 0.1.1", + "lazy_static", + "log", + "tracing-core", ] [[package]] -name = "tao" -version = "0.15.6" +name = "tracing-serde" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c8fab9f2ba9a6d7ad55b46f812984b6ab203d774c162163ac297edc9567404b" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" dependencies = [ - "bitflags", - "cairo-rs", - "cc", - "cocoa", - "core-foundation", - "core-graphics", - "crossbeam-channel", - "dirs-next", - "dispatch", - "gdk", - "gdk-pixbuf", - "gdk-sys", - "gdkx11-sys", - "gio", - "glib", - "glib-sys", - "gtk", - "image", - "instant", - "jni", - "lazy_static", - "libappindicator", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-sys", - "objc", - "once_cell", - "parking_lot 0.12.1", - "paste", - "png", - "raw-window-handle", - "scopeguard", "serde", - "unicode-segmentation", - "uuid 1.2.2", - "windows 0.39.0", - "windows-implement", - "x11-dl", + "tracing-core", ] [[package]] -name = "tar" -version = "0.4.38" +name = "tracing-subscriber" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" dependencies = [ - "filetime", - "libc", - "xattr", + "ansi_term", + "chrono", + "lazy_static", + "matchers 0.0.1", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec 1.11.0", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", ] [[package]] -name = "tauri" -version = "1.2.1" +name = "tracing-subscriber" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18203448b9d4dcad55607eafeda6dc7fe135848e5f567cd8bdade6cafd8b1a85" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ - "anyhow", - "attohttpc", - "cocoa", - "dirs-next", - "embed_plist", - "encoding_rs", - "flate2", - "futures-util", - "glib", - "glob", - "gtk", - "heck 0.4.0", - "http", - "ignore", - "notify-rust", - "objc", + "matchers 0.1.0", + "nu-ansi-term", "once_cell", - "open 3.2.0", - "os_info", - "os_pipe", - "percent-encoding", - "rand 0.8.5", - "raw-window-handle", "regex", - "rfd", - "semver 1.0.14", "serde", "serde_json", - "serde_repr", - "serialize-to-javascript", - "shared_child", - "state", - "tar", - "tauri-macros", - "tauri-runtime", - "tauri-runtime-wry", - "tauri-utils", - "tempfile", - "thiserror", - "tokio", - "url", - "uuid 1.2.2", - "webkit2gtk", - "webview2-com", - "windows 0.39.0", + "sharded-slab", + "smallvec 1.11.0", + "thread_local", + "time 0.3.23", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", ] [[package]] -name = "tauri-build" -version = "1.2.1" +name = "treediff" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8807c85d656b2b93927c19fe5a5f1f1f348f96c2de8b90763b3c2d561511f9b4" +checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" dependencies = [ - "anyhow", - "cargo_toml", - "heck 0.4.0", - "json-patch", - "semver 1.0.14", "serde_json", - "tauri-utils", - "winres", ] [[package]] -name = "tauri-codegen" -version = "1.2.1" +name = "treediff" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251" +checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303" dependencies = [ - "base64", - "brotli", - "ico", - "json-patch", - "plist", - "png", - "proc-macro2", - "quote", - "regex", - "semver 1.0.14", - "serde", "serde_json", - "sha2", - "tauri-utils", - "thiserror", - "time 0.3.17", - "uuid 1.2.2", - "walkdir", ] [[package]] -name = "tauri-macros" -version = "1.2.1" +name = "trilean" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075" -dependencies = [ - "heck 0.4.0", - "proc-macro2", - "quote", - "syn", - "tauri-codegen", - "tauri-utils", -] +checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" [[package]] -name = "tauri-plugin-positioner" -version = "1.0.4" +name = "triomphe" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06e0a1f9650fec272f5e4fb2b60863cd9f5dde20ee80e085dd0a99b39b9f8e4" +checksum = "0eee8098afad3fb0c54a9007aab6804558410503ad676d4633f9c2559a00ac0f" dependencies = [ "serde", - "serde_json", - "serde_repr", - "tauri", + "stable_deref_trait", ] [[package]] -name = "tauri-runtime" -version = "0.12.1" +name = "trust-dns-proto" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c507d954d08ac8705d235bc70ec6975b9054fb95ff7823af72dbb04186596f3b" +checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" dependencies = [ - "gtk", - "http", - "http-range", + "async-trait", + "cfg-if 1.0.0", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.2.3", + "ipnet", + "lazy_static", "rand 0.8.5", - "raw-window-handle", "serde", - "serde_json", - "tauri-utils", + "smallvec 1.11.0", "thiserror", - "uuid 1.2.2", - "webview2-com", - "windows 0.39.0", + "tinyvec", + "tokio", + "tracing", + "url 2.4.1", ] [[package]] -name = "tauri-runtime-wry" -version = "0.12.1" +name = "trust-dns-resolver" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7821c34cf1bd6d89ff46b46a53f3a5050d92afaf2053569f1cc4531167257b24" +checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" dependencies = [ - "cocoa", - "gtk", - "percent-encoding", - "rand 0.8.5", - "raw-window-handle", - "tauri-runtime", - "tauri-utils", - "uuid 1.2.2", - "webkit2gtk", - "webview2-com", - "windows 0.39.0", - "wry", + "cfg-if 1.0.0", + "futures-util", + "ipconfig", + "lazy_static", + "lru-cache", + "parking_lot 0.12.1", + "resolv-conf", + "serde", + "smallvec 1.11.0", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto", ] [[package]] -name = "tauri-utils" -version = "1.2.1" +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "ts_opentelemetry_api" +version = "0.20.0-beta.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5abbc109a6eb45127956ffcc26ef0e875d160150ac16cfa45d26a6b2871686f1" +checksum = "d186495330f646b5881aeb3b83bac75b8a462d7ef32fda06a2a68f3869d5ba82" dependencies = [ - "brotli", - "ctor", - "glob", - "heck 0.4.0", - "html5ever", - "infer", - "json-patch", - "kuchiki", - "memchr", - "phf 0.10.1", - "proc-macro2", - "quote", - "semver 1.0.14", - "serde", - "serde_json", - "serde_with", + "futures-channel", + "futures-util", + "indexmap 1.9.3", + "js-sys", + "once_cell", + "pin-project-lite", "thiserror", - "url", - "walkdir", - "windows 0.39.0", + "urlencoding", ] [[package]] -name = "tauri-winrt-notification" -version = "0.1.0" +name = "tungstenite" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" +checksum = "8ada8297e8d70872fa9a551d93250a9f407beb9f37ef86494eb20012a2ff7c24" dependencies = [ - "quick-xml", - "strum", - "windows 0.39.0", + "base64 0.13.1", + "byteorder", + "bytes", + "http", + "httparse", + "input_buffer", + "log", + "native-tls", + "rand 0.8.5", + "sha-1 0.9.8", + "url 2.4.1", + "utf-8", ] [[package]] -name = "tempfile" -version = "3.3.0" +name = "tungstenite" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" dependencies = [ - "cfg-if", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all 0.5.3", - "winapi", + "base64 0.13.1", + "byteorder", + "bytes", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.20.9", + "sha1", + "thiserror", + "url 2.4.1", + "utf-8", + "webpki 0.22.0", ] [[package]] -name = "tendril" -version = "0.4.3" +name = "tx5" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +checksum = "a76decf02d813606a817a33793aa5b7bf3cbf8d85d1623157ca7b05ef939c5e1" dependencies = [ - "futf", - "mac", - "utf-8", + "bytes", + "futures", + "influxive-otel-atomic-obs", + "once_cell", + "parking_lot 0.12.1", + "rand 0.8.5", + "rand-utf8", + "serde", + "serde_json", + "tokio", + "tracing", + "ts_opentelemetry_api", + "tx5-core", + "tx5-go-pion", + "tx5-signal", + "url 2.4.1", ] [[package]] -name = "termcolor" -version = "1.1.3" +name = "tx5-core" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "062c8fa9036a5f4e2795e5d6abe1b2e4591f36d0480732ddc0e7405a7489d01f" dependencies = [ - "winapi-util", + "base64 0.13.1", + "dirs 5.0.1", + "once_cell", + "rand 0.8.5", + "serde", + "serde_json", + "sha2 0.10.7", + "tempfile", + "tracing", + "url 2.4.1", ] [[package]] -name = "thin-slice" -version = "0.1.1" +name = "tx5-go-pion" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" +checksum = "8fc0ceeb67c3c846ea7bb6f5d30088f75359a5a55646d80f6a01a3ec235a2eb5" +dependencies = [ + "parking_lot 0.12.1", + "tokio", + "tracing", + "tx5-go-pion-sys", + "url 2.4.1", +] [[package]] -name = "thiserror" -version = "1.0.37" +name = "tx5-go-pion-sys" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "a12b039d7f78e57ab84b7db1293cd194147895b7b43a6a8910f1e82268756fbe" dependencies = [ - "thiserror-impl", + "Inflector", + "base64 0.13.1", + "dirs 5.0.1", + "libc", + "libloading 0.8.0", + "once_cell", + "ouroboros", + "sha2 0.10.7", + "tracing", + "tx5-core", + "zip", ] [[package]] -name = "thiserror-impl" -version = "1.0.37" +name = "tx5-go-pion-turn" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "8e0194742195d3676fa8c2907995676604cd3ebf8e17fe7f0e9a50495092b945" dependencies = [ - "proc-macro2", - "quote", - "syn", + "base64 0.13.1", + "dirs 5.0.1", + "dunce", + "if-addrs 0.10.1", + "once_cell", + "sha2 0.10.7", + "tokio", + "tracing", + "tx5-core", + "zip", ] [[package]] -name = "thread-id" -version = "4.0.0" +name = "tx5-signal" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fdfe0627923f7411a43ec9ec9c39c3a9b4151be313e0922042581fb6c9b717f" +checksum = "7698b18a456f298ae7c4bb3c2a5e76c7193242f0a53d91866cc9507e1ff4373b" dependencies = [ - "libc", - "redox_syscall", - "winapi", + "futures", + "lair_keystore_api", + "once_cell", + "parking_lot 0.12.1", + "rand 0.8.5", + "rand-utf8", + "rcgen 0.10.0", + "ring", + "rustls 0.20.9", + "rustls-native-certs", + "rustls-pemfile 1.0.3", + "serde_json", + "sha2 0.10.7", + "socket2 0.5.3", + "tokio", + "tokio-rustls 0.23.4", + "tokio-tungstenite 0.18.0", + "tracing", + "tx5-core", + "url 2.4.1", + "webpki-roots 0.23.1", ] [[package]] -name = "thread_local" -version = "1.1.4" +name = "tx5-signal-srv" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "4dd44a26819757459b14994e728adeeb05931ca95605e54eb7733d01f3f130f8" dependencies = [ + "clap 4.4.1", + "dirs 5.0.1", + "futures", + "if-addrs 0.10.1", "once_cell", + "prometheus", + "rand 0.8.5", + "sodoken", + "tokio", + "tracing", + "tracing-subscriber 0.3.17", + "tx5-core", + "warp", ] [[package]] -name = "time" -version = "0.1.44" +name = "typed-arena" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" [[package]] -name = "time" -version = "0.3.17" +name = "typemap-ors" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +checksum = "a68c24b707f02dd18f1e4ccceb9d49f2058c2fb86384ef9972592904d7a28867" dependencies = [ - "itoa 1.0.4", - "serde", - "time-core", - "time-macros", + "unsafe-any-ors", ] [[package]] -name = "time-core" -version = "0.1.0" +name = "typenum" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] -name = "time-macros" -version = "0.2.6" +name = "ucd-trie" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" -dependencies = [ - "time-core", -] +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] -name = "tinyvec" -version = "1.6.0" +name = "unic-char-property" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" dependencies = [ - "tinyvec_macros", + "unic-char-range", ] [[package]] -name = "tinyvec_macros" -version = "0.1.0" +name = "unic-char-range" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" [[package]] -name = "tokio" -version = "1.22.0" +name = "unic-common" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3" -dependencies = [ - "autocfg", - "bytes", - "libc", - "memchr", - "mio 0.8.5", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "winapi", -] +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" [[package]] -name = "tokio-macros" -version = "1.8.0" +name = "unic-ucd-ident" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" dependencies = [ - "proc-macro2", - "quote", - "syn", + "unic-char-property", + "unic-char-range", + "unic-ucd-version", ] [[package]] -name = "tokio-native-tls" -version = "0.3.0" +name = "unic-ucd-version" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" dependencies = [ - "native-tls", - "tokio", + "unic-common", ] [[package]] -name = "tokio-util" -version = "0.7.4" +name = "unicase" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", + "version_check", ] [[package]] -name = "toml" -version = "0.5.9" +name = "unicode-bidi" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" -dependencies = [ - "serde", -] +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] -name = "tower-service" -version = "0.3.2" +name = "unicode-id" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "d70b6494226b36008c8366c288d77190b3fad2eb4c10533139c1c1f461127f1a" [[package]] -name = "tracing" -version = "0.1.37" +name = "unicode-ident" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] -name = "tracing-attributes" -version = "0.1.23" +name = "unicode-normalization" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ - "proc-macro2", - "quote", - "syn", + "tinyvec", ] [[package]] -name = "tracing-core" -version = "0.1.30" +name = "unicode-segmentation" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", - "valuable", -] +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] -name = "tracing-log" -version = "0.1.3" +name = "unicode-width" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] -name = "tracing-subscriber" -version = "0.3.16" +name = "unicode-xid" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] -name = "treediff" -version = "3.0.2" +name = "unicode-xid" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" -dependencies = [ - "serde_json", -] +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] -name = "try-lock" -version = "0.2.3" +name = "unicode_categories" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] -name = "tungstenite" -version = "0.16.0" +name = "universal-hash" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "base64", - "byteorder", - "bytes", - "http", - "httparse", - "log", - "rand 0.8.5", - "sha-1", - "thiserror", - "url", - "utf-8", + "crypto-common", + "subtle 2.4.1", ] [[package]] -name = "typemap-ors" +name = "unreachable" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68c24b707f02dd18f1e4ccceb9d49f2058c2fb86384ef9972592904d7a28867" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" dependencies = [ - "unsafe-any-ors", + "void", ] [[package]] -name = "typenum" -version = "1.15.0" +name = "unsafe-any-ors" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "e0a303d30665362d9680d7d91d78b23f5f899504d4f08b3c4cf08d055d87c0ad" +dependencies = [ + "destructure_traitobject", +] [[package]] -name = "ucd-trie" -version = "0.1.5" +name = "unsafe-libyaml" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" [[package]] -name = "unicode-bidi" -version = "0.3.8" +name = "unsigned-varint" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" [[package]] -name = "unicode-ident" -version = "1.0.5" +name = "untrusted" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] -name = "unicode-normalization" -version = "0.1.22" +name = "unwrap_to" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] +checksum = "cad414b2eed757c1b6f810f8abc814e298a9c89176b21fae092c7a87756fb839" [[package]] -name = "unicode-segmentation" -version = "1.10.0" +name = "unzip-n" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" +checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] [[package]] -name = "unicode-width" -version = "0.1.10" +name = "ureq" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9" +dependencies = [ + "base64 0.21.3", + "log", + "once_cell", + "rustls 0.21.7", + "rustls-webpki 0.100.2", + "url 2.4.1", + "webpki-roots 0.23.1", +] [[package]] -name = "unicode-xid" -version = "0.2.4" +name = "url" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +dependencies = [ + "idna 0.1.5", + "matches", + "percent-encoding 1.0.1", +] [[package]] -name = "unreachable" -version = "1.0.0" +name = "url" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ - "void", + "form_urlencoded", + "idna 0.4.0", + "percent-encoding 2.3.0", + "serde", ] [[package]] -name = "unsafe-any-ors" -version = "1.0.0" +name = "url2" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a303d30665362d9680d7d91d78b23f5f899504d4f08b3c4cf08d055d87c0ad" +checksum = "c89cd13f1de9862d363308f5ffdadcd2b64b2a4a812fb296a80b7d3e80011b1e" dependencies = [ - "destructure_traitobject", + "serde", + "url 2.4.1", ] [[package]] -name = "url" -version = "2.3.1" +name = "url_serde" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea" dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", "serde", + "url 1.7.2", ] [[package]] name = "urlencoding" -version = "2.1.2" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "urlpattern" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" +checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609" +dependencies = [ + "derive_more", + "regex", + "serde", + "unic-ucd-ident", + "url 2.4.1", +] [[package]] name = "utf-8" @@ -4843,9 +13540,19 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "utf8parse" -version = "0.2.0" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "uuid" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" +checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" +dependencies = [ + "rand 0.6.5", + "serde", +] [[package]] name = "uuid" @@ -4853,16 +13560,29 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.10", ] [[package]] name = "uuid" -version = "1.2.2" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +dependencies = [ + "getrandom 0.2.10", + "serde", +] + +[[package]] +name = "v8" +version = "0.74.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" +checksum = "2eedac634b8dd39b889c5b62349cbc55913780226239166435c5cf66771792ea" dependencies = [ - "getrandom 0.2.8", + "bitflags 1.3.2", + "fslock", + "once_cell", + "which", ] [[package]] @@ -4873,13 +13593,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.0.0-alpha.9" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" -dependencies = [ - "ctor", - "version_check", -] +checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3" [[package]] name = "vcpkg" @@ -4887,6 +13603,12 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version-compare" version = "0.0.11" @@ -4911,6 +13633,53 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "vte" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197" +dependencies = [ + "arrayvec 0.7.4", + "utf8parse", + "vte_generate_state_changes", +] + +[[package]] +name = "vte_generate_state_changes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", +] + [[package]] name = "waker-fn" version = "1.1.0" @@ -4919,25 +13688,54 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi", "winapi-util", ] [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] +[[package]] +name = "warp" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba431ef570df1287f7f8b07e376491ad54f84d26ac473489427231e1718e1f69" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "headers", + "http", + "hyper 0.14.27", + "log", + "mime", + "mime_guess", + "multer", + "percent-encoding 2.3.0", + "pin-project", + "rustls-pemfile 1.0.3", + "scoped-tls", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-stream", + "tokio-tungstenite 0.18.0", + "tokio-util", + "tower-service", + "tracing", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -4958,75 +13756,367 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote 1.0.33", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", + "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] -name = "wasm-bindgen-futures" -version = "0.4.33" +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "wasm-encoder" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba64e81215916eaeb48fee292f29401d69235d62d8b8fd92a7b2844ec5ae5f7" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-streams" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" +dependencies = [ + "cfg-if 1.0.0", + "indexmap 1.9.3", + "js-sys", + "loupe", + "more-asserts", + "target-lexicon", + "thiserror", + "wasm-bindgen", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-compiler-cranelift", + "wasmer-derive", + "wasmer-engine", + "wasmer-engine-dylib", + "wasmer-engine-universal", + "wasmer-types", + "wasmer-vm", + "wat", + "winapi 0.3.9", +] + +[[package]] +name = "wasmer-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" +dependencies = [ + "enumset", + "loupe", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-compiler" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" +dependencies = [ + "enumset", + "loupe", + "rkyv", + "serde", + "serde_bytes", + "smallvec 1.11.0", + "target-lexicon", + "thiserror", + "wasmer-types", + "wasmparser", +] + +[[package]] +name = "wasmer-compiler-cranelift" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "gimli 0.26.2", + "loupe", + "more-asserts", + "rayon", + "smallvec 1.11.0", + "target-lexicon", + "tracing", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-derive" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "wasmer-engine" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" +dependencies = [ + "backtrace", + "enumset", + "lazy_static", + "loupe", + "memmap2", + "more-asserts", + "rustc-demangle", + "serde", + "serde_bytes", + "target-lexicon", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-engine-dylib" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" +dependencies = [ + "cfg-if 1.0.0", + "enum-iterator", + "enumset", + "leb128", + "libloading 0.7.4", + "loupe", + "object 0.28.4", + "rkyv", + "serde", + "tempfile", + "tracing", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-engine", + "wasmer-object", + "wasmer-types", + "wasmer-vm", + "which", +] + +[[package]] +name = "wasmer-engine-universal" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" +dependencies = [ + "cfg-if 1.0.0", + "enumset", + "leb128", + "loupe", + "region", + "rkyv", + "wasmer-compiler", + "wasmer-engine", + "wasmer-engine-universal-artifact", + "wasmer-types", + "wasmer-vm", + "winapi 0.3.9", +] + +[[package]] +name = "wasmer-engine-universal-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" +dependencies = [ + "enum-iterator", + "enumset", + "loupe", + "rkyv", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-middlewares" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7812438ed2f37203a37007cdb5332b8475cb2b16e15d51299b2647894e9ed3a" +dependencies = [ + "loupe", + "wasmer", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-object" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" +dependencies = [ + "object 0.28.4", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-types" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" +dependencies = [ + "backtrace", + "enum-iterator", + "indexmap 1.9.3", + "loupe", + "more-asserts", + "rkyv", + "serde", + "thiserror", +] + +[[package]] +name = "wasmer-vm" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" +dependencies = [ + "backtrace", + "cc", + "cfg-if 1.0.0", + "corosensei", + "enum-iterator", + "indexmap 1.9.3", + "lazy_static", + "libc", + "loupe", + "mach", + "memoffset 0.6.5", + "more-asserts", + "region", + "rkyv", + "scopeguard", + "serde", + "thiserror", + "wasmer-artifact", + "wasmer-types", + "winapi 0.3.9", +] + +[[package]] +name = "wasmparser" +version = "0.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" [[package]] -name = "wasm-bindgen-macro" -version = "0.2.83" +name = "wast" +version = "64.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "a259b226fd6910225aa7baeba82f9d9933b6d00f2ce1b49b80fa4214328237cc" dependencies = [ - "quote", - "wasm-bindgen-macro-support", + "leb128", + "memchr", + "unicode-width", + "wasm-encoder", ] [[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.83" +name = "wat" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "53253d920ab413fca1c7dc2161d601c79b4fdf631d0ba51dd4343bf9b556c3f6" dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", + "wast", ] -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" - [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -5038,7 +14128,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "gdk", "gdk-sys", @@ -5063,7 +14153,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" dependencies = [ "atk-sys", - "bitflags", + "bitflags 1.3.2", "cairo-sys-rs", "gdk-pixbuf-sys", "gdk-sys", @@ -5076,9 +14166,53 @@ dependencies = [ "pango-sys", "pkg-config", "soup2-sys", - "system-deps 6.0.3", + "system-deps 6.1.1", +] + +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki 0.22.0", +] + +[[package]] +name = "webpki-roots" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" +dependencies = [ + "rustls-webpki 0.100.2", ] +[[package]] +name = "webpki-roots" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" + [[package]] name = "webview2-com" version = "0.19.1" @@ -5097,9 +14231,9 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", ] [[package]] @@ -5118,14 +14252,38 @@ dependencies = [ ] [[package]] -name = "wepoll-ffi" -version = "0.1.2" +name = "which" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" dependencies = [ - "cc", + "either", + "libc", + "once_cell", ] +[[package]] +name = "whoami" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "widestring" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + [[package]] name = "winapi" version = "0.3.9" @@ -5148,7 +14306,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -5157,19 +14315,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbedf6db9096bc2364adce0ae0aa636dcd89f3c3f2cd67947062aaf0ca2a10ec" -dependencies = [ - "windows_aarch64_msvc 0.32.0", - "windows_i686_gnu 0.32.0", - "windows_i686_msvc 0.32.0", - "windows_x86_64_gnu 0.32.0", - "windows_x86_64_msvc 0.32.0", -] - [[package]] name = "windows" version = "0.37.0" @@ -5197,6 +14342,15 @@ dependencies = [ "windows_x86_64_msvc 0.39.0", ] +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-bindgen" version = "0.39.0" @@ -5213,7 +14367,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" dependencies = [ - "syn", + "syn 1.0.109", "windows-tokens", ] @@ -5223,6 +14377,19 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" +[[package]] +name = "windows-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" +dependencies = [ + "windows_aarch64_msvc 0.33.0", + "windows_i686_gnu 0.33.0", + "windows_i686_msvc 0.33.0", + "windows_x86_64_gnu 0.33.0", + "windows_x86_64_msvc 0.33.0", +] + [[package]] name = "windows-sys" version = "0.36.1" @@ -5242,13 +14409,61 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -5259,15 +14474,21 @@ checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" +checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" [[package]] name = "windows_aarch64_msvc" @@ -5289,15 +14510,21 @@ checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" +checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" [[package]] name = "windows_i686_gnu" @@ -5319,15 +14546,21 @@ checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" +checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" [[package]] name = "windows_i686_msvc" @@ -5349,15 +14582,21 @@ checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" +checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" [[package]] name = "windows_x86_64_gnu" @@ -5379,21 +14618,33 @@ checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" +checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" [[package]] name = "windows_x86_64_msvc" @@ -5415,17 +14666,43 @@ checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "winnow" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if 1.0.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "winreg" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.48.0", ] [[package]] @@ -5434,16 +14711,16 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" dependencies = [ - "toml", + "toml 0.5.11", ] [[package]] name = "wry" -version = "0.22.5" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b4906cc7b3c5959893f3984bb60882ec94539eb14622077e6529f5b3d008ee" +checksum = "33748f35413c8a98d45f7a08832d848c0c5915501803d1faade5a4ebcd258cea" dependencies = [ - "base64", + "base64 0.13.1", "block", "cocoa", "core-graphics", @@ -5453,7 +14730,7 @@ dependencies = [ "gio", "glib", "gtk", - "html5ever", + "html5ever 0.25.2", "http", "kuchiki", "libc", @@ -5463,11 +14740,11 @@ dependencies = [ "once_cell", "serde", "serde_json", - "sha2", + "sha2 0.10.7", "soup2", "tao", "thiserror", - "url", + "url 2.4.1", "webkit2gtk", "webkit2gtk-sys", "webview2-com", @@ -5475,11 +14752,20 @@ dependencies = [ "windows-implement", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "x11" -version = "2.20.1" +version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2638d5b9c17ac40575fb54bb461a4b1d2a8d1b4ffcc4ff237d254ec59ddeb82" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" dependencies = [ "libc", "pkg-config", @@ -5487,29 +14773,93 @@ dependencies = [ [[package]] name = "x11-dl" -version = "2.20.1" +version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" dependencies = [ - "lazy_static", "libc", + "once_cell", "pkg-config", ] +[[package]] +name = "x25519-dalek" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +dependencies = [ + "curve25519-dalek 3.2.0", + "rand_core 0.5.1", + "zeroize", +] + +[[package]] +name = "x25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +dependencies = [ + "curve25519-dalek 4.0.0", + "rand_core 0.6.4", + "serde", + "zeroize", +] + +[[package]] +name = "x509-parser" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom 7.1.3", + "oid-registry", + "rusticata-macros", + "thiserror", + "time 0.3.23", +] + [[package]] name = "xattr" -version = "0.2.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" dependencies = [ "libc", ] [[package]] -name = "xml-rs" -version = "0.8.4" +name = "xml5ever" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650" +dependencies = [ + "log", + "mac", + "markup5ever 0.11.0", +] + +[[package]] +name = "xmlparser" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" + +[[package]] +name = "xsalsa20poly1305" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02a6dad357567f81cd78ee75f7c61f1b30bb2fe4390be8fb7c69e2ac8dffb6c7" +dependencies = [ + "aead", + "poly1305", + "salsa20", + "subtle 2.4.1", + "zeroize", +] [[package]] name = "yaml-rust" @@ -5519,3 +14869,93 @@ checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" dependencies = [ "linked-hash-map", ] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time 0.3.23", +] + +[[package]] +name = "zeroize" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 2.0.29", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac 0.12.1", + "pbkdf2 0.11.0", + "sha1", + "time 0.3.23", + "zstd", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.8+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[patch.unused]] +name = "serde" +version = "1.0.183" +source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" diff --git a/Cargo.toml b/Cargo.toml index 4baf8a48e..c107e089c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,5 +3,12 @@ members = [ "cli", "rust-client", + "rust-executor", "ui/src-tauri" -] \ No newline at end of file +] + + +[patch.crates-io] +sodiumoxide = { git = "https://github.com/fayeed/sodiumoxide" } +serde = { git = "https://github.com/fayeed/serde.git", branch = "ad4m-compatible" } +notify-rust = { version = "4.6.0", git = "https://github.com/coasys/notify-rust.git" } \ No newline at end of file diff --git a/README.md b/README.md index 3e2abc93e..4bec4ed9e 100644 --- a/README.md +++ b/README.md @@ -14,44 +14,50 @@ or just: - A **spanning-layer** to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends - The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable **sense-making network** -## Repo Structure / History +## Core Docs -This is the new mono-repository with all components making up a whole AD4M implementation merged back into what formerly was only the `ad4m-executor`. +The main core documentation for AD4M exists [here](https://docs.ad4m.dev) -- `core`: Former [ad4m repository](https://github.com/perspect3vism/ad4m-core-deprecated). Holds the core ontology types, the `Ad4mClient` and the GraphQL schema build automatically from the core types. This package gets published as https://www.npmjs.com/package/@perspect3vism/ad4m and is thus holding most of the app/UI facing coding. -- `executor`: All the code running inside an AD4M instance. UI-less GraphQL server, managing Agent keys, Perspectives and running Languages. TypeScript library without runnable main / executable. -- `host`: Former [ad4m-host repository](https://github.com/perspect3vism/ad4m-host). Imports and wraps executor and uses vercel/pkg to create runnable binary. -- `ui`: Former [ad4min repository](https://github.com/perspect3vism/ad4min). Tauri based system-tray icon launcher UI which is the end-user deployment including the `host` executable and providing and AD4M admin (_AD4Min_) UI interface. +## Repo Structure ---- +This is a mono-repository with all components making up a whole ADAM Layer implementation. -- `connect`: Former [ad4m-connect repository](https://github.com/perspect3vism/ad4m-connect). Convenience library to connect to a (local or via proxy) AD4M-executor, potentially requesting or reusing capability tokens and creating an `Ad4mClient` ready for the app/UI to use. -- `docs-src` / `docs`: Documentation hosted under https://docs.ad4m.dev +- `core`: Holds the core ontology types, the `Ad4mClient` and the GraphQL schema build automatically from the core types. This package gets published as https://www.npmjs.com/package/@perspect3vism/ad4m and is thus holding most of the app/UI facing coding. +- `bootstrap-languages`: Holds all the core Languages used to make the ADAM Layer operate. These languages can be thought of as the mainnet configuration for the ADAM Layer. +- `executor`: Holds the core JS code, which manages an Agents ADAM Layer state. Their Perspectives, Languages and Expressions. +- `rust-executor`: Rust binary & library which facilitates the running of a GraphQL server, spawning of Deno runtime to execute the `executor` JS code. Running and communication with in built holochain conductor. Running and communication with Scryer Prolog engine to facilitate Prolog queries over Perspective data. +- `dapp`: UI which provides a connection to MetaMask allowing AD4M Layer to create a connection to blockchain systems. UI server by the `rust-executor` on `http://127.0.0.1:` +- `rust-client`: Rust based `Ad4mClient`. Wraps GraphQL and provides the same high-level interface to AD4M as the TypeScript based version in core. Published to Crates.io as `ad4m-client`: https://crates.io/crates/ad4m-client. +- `tests`: JS testing suit integration testing a built `rust-executor`. Contains 50+ integration tests covering most function calls to an Adam Layer GraphQL server. +- `cli`: Rust based CLI for either init'ing `ad4m init`, running `ad4m run` or communciating with a running AD4M GraphQL server. See [it's readme](cli/README.md) for more details. Published to Crates.io as `ad4m`: https://crates.io/crates/ad4m +- `ui`: Tauri based system-tray icon launcher UI which is the end-user deployment; includes the rust-executor & UI to interact with gien executor. --- - - `cli`: The new Rust based `ad4m` command-line based generic UI. See [it's readme](cli/README.md) for more details. Published to Crates.io as `ad4m`: https://crates.io/crates/ad4m - - `rust-client`: Rust based `Ad4mClient`. Wraps GraphQL and provides the same high-level interface to AD4M as the TypeScript based version in core. Published to Crates.io as `ad4m-client`: https://crates.io/crates/ad4m-client. +- `connect`: Convenience library to connect to a (local or via proxy) AD4M-executor, potentially requesting or reusing capability tokens and creating an `Ad4mClient` ready for the app/UI to use. +- `docs-src` / `docs`: Documentation hosted under https://docs.ad4m.dev + +## History The project started in August 2020 in https://github.com/lucksus/perspectivism, then got broken down into the `ad4m` (core), `ad4m-executor` and [perspect3ve](https://github.com/perspect3vism/perspect3ve) repositories for simultaneuous use in [Flux](https://github.com/fluxsocial) and Perspect3ve. Other components got added over the years 2021, 2022. In October/November 2022, these componentes were collected into a mono-repo again to avoid PR-chains across multiple repositories and to have version numbers be in lock-step. -## Build +## Building AD4M -Install Rust by visiting [here](https://www.rust-lang.org/tools/install) +### Prerequisites -### Fresh build: - -``` -yarn install -yarn run build-linux/macos/windows (choose version for your OS) -``` +- Install Rust by visiting [here](https://www.rust-lang.org/tools/install) (ADAM Layer currently uses rust version 1.71.1) +- Install Deno by visiting [here](https://deno.land/manual@v1.36.4/getting_started/installation) +- Install Go by visiting [here](https://go.dev/doc/install) (ADAM Layer currently uses go version: go1.18) +- Install Node by visiting [here](https://nodejs.org/en/download) +- Install Yarn / Node by visiting [here](https://classic.yarnpkg.com/lang/en/docs/install/) -### Subsequent builds +### Build: ``` -yarn run build-all-linux/macos/windows (choose version for your OS) +yarn install +yarn run build ``` ## Testing @@ -61,16 +67,9 @@ yarn install yarn test ``` -## Building ad4m-host - -``` -yarn install -yarn run package-linux/macos/windows (choose version for your OS) -``` - ## Building ad4m launcher ``` yarn install -yarn run build-linux/macos/windows (choose version for your OS) +yarn run package-ad4m ``` diff --git a/bootstrap-languages/agent-language/.gitignore b/bootstrap-languages/agent-language/.gitignore index ae8c71ffa..f66d708df 100644 --- a/bootstrap-languages/agent-language/.gitignore +++ b/bootstrap-languages/agent-language/.gitignore @@ -10,4 +10,5 @@ build/* *.js.map !*.config.icons.js !*.config.js -!dna.js \ No newline at end of file +!dna.js +build/dna.js \ No newline at end of file diff --git a/bootstrap-languages/agent-language/adapter.ts b/bootstrap-languages/agent-language/adapter.ts index 431544002..b541d9312 100644 --- a/bootstrap-languages/agent-language/adapter.ts +++ b/bootstrap-languages/agent-language/adapter.ts @@ -1,5 +1,5 @@ -import type { Address, Agent, Expression, PublicSharing, LanguageContext, HolochainLanguageDelegate, ExpressionAdapter, AgentService } from "@perspect3vism/ad4m"; -import { DNA_NICK } from "./dna"; +import type { Address, Agent, Expression, PublicSharing, LanguageContext, HolochainLanguageDelegate, ExpressionAdapter, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import { DNA_NICK } from "./build/dna.js"; export default class ExpressionAdapterImpl implements ExpressionAdapter { #DNA: HolochainLanguageDelegate; @@ -34,7 +34,7 @@ class Sharing implements PublicSharing { this.#agent = context.agent; } - async createPublic(content: object): Promise
{ + async createPublic(content: Agent): Promise
{ if(!content['did'] || !content['perspective'] || !content['perspective'].links) throw "Content must be an Agent object" @@ -44,9 +44,9 @@ class Sharing implements PublicSharing { throw "Can't set Agent Expression for foreign DID - only for self" if(!agent.directMessageLanguage) - agent.directMessageLanguage = null + agent.directMessageLanguage = undefined - agent.perspective.links.forEach(link => { + agent.perspective!.links.forEach(link => { delete link.proof.valid delete link.proof.invalid }) diff --git a/bootstrap-languages/agent-language/esbuild.ts b/bootstrap-languages/agent-language/esbuild.ts new file mode 100644 index 000000000..d7d18e01a --- /dev/null +++ b/bootstrap-languages/agent-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'agent.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/Cargo.lock b/bootstrap-languages/agent-language/hc-dna/Cargo.lock index 649b4766b..01ed36cf8 100644 --- a/bootstrap-languages/agent-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/agent-language/hc-dna/Cargo.lock @@ -70,6 +70,15 @@ dependencies = [ "libc", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arrayref" version = "0.3.6" @@ -82,6 +91,17 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -96,7 +116,7 @@ checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object 0.29.0", @@ -230,6 +250,12 @@ version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -250,6 +276,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -275,7 +312,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "libc", "scopeguard", "windows-sys 0.33.0", @@ -355,7 +392,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -364,7 +401,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -374,7 +411,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] @@ -386,7 +423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", "memoffset", "once_cell", @@ -399,7 +436,7 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", ] @@ -482,6 +519,17 @@ dependencies = [ "syn", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -505,6 +553,12 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "either" version = "1.7.0" @@ -573,6 +627,95 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "gcollections" version = "1.5.0" @@ -601,7 +744,7 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -637,9 +780,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "344ddd3db53dec1352aca06ca5048d305a2c20149cf3117e9669ac567e71c109" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" dependencies = [ "hdk_derive", "holo_hash", @@ -654,9 +797,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab34bc763d15b2d91d26008487b189547da9c184b5bcd448242ac255f483443e" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ "getrandom", "hdi", @@ -674,9 +817,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "596ab116a5f8977ef7d630b065b233ab73b5cded613688a487c666f8e6e63291" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ "darling 0.14.1", "heck", @@ -711,14 +854,16 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270268effa8c72be70eeb0c3d3944f58a3885daf355cd3597300bf4b33bfee1b" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_util", + "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -727,12 +872,14 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3cf7e728e70ab5aac0c89e437879ee529894d6aa2b6d6ca5d59527fda38157" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "holochain_util", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -766,11 +913,25 @@ dependencies = [ "syn", ] +[[package]] +name = "holochain_util" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" +dependencies = [ + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", +] + [[package]] name = "holochain_wasmer_common" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" dependencies = [ "holochain_serialized_bytes", "serde", @@ -783,9 +944,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -797,14 +958,17 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9725c45ba4fff602c0ac548945ddbb44cb255ee934336efd43262fff8bec8e49" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" dependencies = [ "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -866,7 +1030,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -882,6 +1046,15 @@ dependencies = [ "trilean", ] +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.2" @@ -897,11 +1070,62 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" +dependencies = [ + "base64", + "derive_more", + "holochain_util", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand", + "serde", + "statrs", + "thiserror", + "tracing", +] + [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" dependencies = [ "derive_more", "gcollections", @@ -912,9 +1136,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" dependencies = [ "chrono", "derive_more", @@ -945,10 +1169,16 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "lock_api" version = "0.4.7" @@ -965,7 +1195,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -998,6 +1228,16 @@ dependencies = [ "libc", ] +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "memchr" version = "2.5.0" @@ -1037,6 +1277,54 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -1047,6 +1335,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -1054,6 +1353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1109,7 +1409,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -1118,9 +1418,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pest" @@ -1138,6 +1438,18 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1200,6 +1512,52 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.5.3" @@ -1475,11 +1833,45 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" version = "1.9.0" @@ -1492,6 +1884,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand", +] + [[package]] name = "strsim" version = "0.10.0" @@ -1550,7 +1955,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "libc", "redox_syscall", @@ -1665,7 +2070,7 @@ version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -1775,7 +2180,7 @@ version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] @@ -1838,7 +2243,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "indexmap", "js-sys", "loupe", @@ -1951,7 +2356,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enum-iterator", "enumset", "leb128", @@ -1977,7 +2382,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enumset", "leb128", "loupe", @@ -2043,7 +2448,7 @@ checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 1.0.0", "corosensei", "enum-iterator", "indexmap", diff --git a/bootstrap-languages/agent-language/hc-dna/build.ps1 b/bootstrap-languages/agent-language/hc-dna/build.ps1 index e7bcb228e..42d3e50d2 100644 --- a/bootstrap-languages/agent-language/hc-dna/build.ps1 +++ b/bootstrap-languages/agent-language/hc-dna/build.ps1 @@ -1,3 +1,3 @@ -$env:CARGO_TARGET_DIR = target +# $env:CARGO_TARGET_DIR = target cargo build --release --target wasm32-unknown-unknown hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/holochain_version.nix b/bootstrap-languages/agent-language/hc-dna/holochain_version.nix index 9f44831c8..acfe9651f 100644 --- a/bootstrap-languages/agent-language/hc-dna/holochain_version.nix +++ b/bootstrap-languages/agent-language/hc-dna/holochain_version.nix @@ -4,7 +4,7 @@ { url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; + rev = "holochain-0.2.2"; sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; cargoLock = { outputHashes = { diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml index 893f444e9..242f93771 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml @@ -14,6 +14,6 @@ serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } thiserror = "1.0.20" -hdk = "0.1.0" -holo_hash = "0.1.0" +hdk = "0.2.2" +holo_hash = "0.2.2" agent_store_integrity = { path = "../agent_store_integrity" } \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs index dc3046356..7b79fc6df 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs @@ -6,7 +6,15 @@ pub(crate) fn err(reason: &str) -> WasmError { } pub(crate) fn get_latest_link(base: EntryHash, tag: Option) -> ExternResult> { - let profile_info = get_links(base, LinkTypes::ProfileLink, tag)?; + // let input = GetLinksInputBuilder::try_new( + // base, + // LinkTypes::ProfileLink + // ) + // .unwrap() + // .tag_prefix(tag.unwrap()) + // .build(); + + let profile_info = get_links(base, LinkTypes::ProfileLink, Some(tag.unwrap()))?; // Find the latest let latest_info = diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml index 93ccbca47..6fde8cef2 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml @@ -13,5 +13,5 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = "0.2.0" -hdk = "0.1.0" \ No newline at end of file +hdi = "0.3.2" +hdk = "0.2.2" \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts b/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts index b73f2b4c1..5c13e3bdd 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts @@ -109,7 +109,7 @@ test("Create update agent expression", async (t) => { //==================== - await new Promise(r => setTimeout(r, 1000)) + await new Promise(r => setTimeout(r, 5000)) //==================== let bobResult = await bob.cells[0].callZome({ @@ -125,5 +125,9 @@ test("Create update agent expression", async (t) => { await bobConductor.conductor.shutDown(); await cleanAllConductors(); await scenario.cleanUp() + + t.end(); + + process.exit(0); }) }) \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json b/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json index 15ffc1f1f..74d9edca7 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json @@ -10,8 +10,8 @@ "author": "", "license": "ISC", "dependencies": { - "@holochain/client": "0.12.0", - "@holochain/tryorama": "0.11.0", + "@holochain/client": "0.16.1", + "@holochain/tryorama": "0.15.0", "@types/lodash": "^4.14.158", "@types/node": "^18.0.0", "blake2b": "^2.1.3", diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts b/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts index 3b2eb10a3..5ba092cee 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts @@ -1,4 +1,4 @@ -import { AgentApp, CallableCell, Conductor } from "@holochain/tryorama"; +import { AgentApp, CallableCell, Conductor, NetworkType, enableAndGetAgentApp, runLocalServices } from "@holochain/tryorama"; import { dnas } from './common'; import { createConductor } from "@holochain/tryorama"; import { resolve } from "path"; @@ -9,8 +9,13 @@ export function sleep(ms: number) { export async function createConductors(num: number): Promise<{agent_happ: AgentApp, conductor: Conductor}[]> { let out = [] as {agent_happ: AgentApp, conductor: Conductor}[]; + + const localServices = await runLocalServices(); + for (let n of Array(num).keys()) { - let conductor = await createConductor(); + let conductor = await createConductor(localServices.signalingServerUrl, {networkType: NetworkType.WebRtc, bootstrapServerUrl: localServices.bootstrapServerUrl}); + let port = await conductor.attachAppInterface(); + let appWs = await conductor.connectAppWs(port); try { let app = await conductor.installApp({ bundle: { @@ -28,9 +33,9 @@ export async function createConductors(num: number): Promise<{agent_happ: AgentA resources: {} } }); - await conductor.adminWs().enableApp({installed_app_id: app.appId}) + const agentApp = await enableAndGetAgentApp(conductor.adminWs(), appWs, app); out.push({ - agent_happ: app, + agent_happ: agentApp, conductor }) } catch (e) { diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock b/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock index 98016b481..5d016638c 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock @@ -23,45 +23,33 @@ enabled "2.0.x" kuler "^2.0.0" -"@holochain/client@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.0.tgz#1c9bdc082160badd1439962e8d5f30da6c4089a3" - integrity sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A== +"@holochain/client@0.16.1", "@holochain/client@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.1.tgz#3cdb110a5d4ab9bf51f31def289f0d082baa77ba" + integrity sha512-jfbrSZz3Yqr/hb3NwzfLSWpR6Cnt82hiHUZP5R1MrGpFQV8JVI2uq94CMVasBspNsWX3lMpT9LNz5Duvq7zF8Q== dependencies: "@holochain/serialization" "^0.1.0-beta-rc.3" "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" "@tauri-apps/api" "^1.2.0" emittery "^1.0.1" isomorphic-ws "^5.0.0" js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/client@^0.11.16": - version "0.11.16" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.11.16.tgz#3b2172cc5b0976d4bed01d067c2cebb28d644e0e" - integrity sha512-uX1/mRnNZHc0y88bkGJrfp6/mfh1UGFS+g+wvn+E69spzPQMxAkjo7FmZ6nmZfxPoYCoxKjVJyKmvswPUP1Xfw== - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" + ws "^8.13.0" "@holochain/serialization@^0.1.0-beta-rc.3": version "0.1.0-beta-rc.3" resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== -"@holochain/tryorama@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.0.tgz#55505b19e1d3bc9ca47cf42deabd35df94cab6bb" - integrity sha512-P2MNn//UulkYCo64j69HfhMfrWGtDrI/A1QEuEZYPUyW8fNg3iE5wh2ssHnu0siw0WRjB6H/PBdadNZz8hemcw== +"@holochain/tryorama@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.15.0.tgz#726dbd33159edf8866de7aa5cf6afdb2230aec74" + integrity sha512-GWsiheb6AFkPkT1ho+dJeFRB2jVboIm/Gp+7v1LshKbDZrgY7oDEopyQPWmy4SkQQYItuscGaIdaOUJIQJuGKQ== dependencies: - "@holochain/client" "^0.11.16" + "@holochain/client" "^0.16.0" get-port "^6.1.2" lodash "^4.17.21" uuid "^8.3.2" @@ -91,6 +79,11 @@ resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== + "@tauri-apps/api@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" @@ -126,10 +119,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== -"@types/node@^14.0.14": - version "14.18.34" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.34.tgz#cd2e6fa0dbfb08a62582a7b967558e73c32061ec" - integrity sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA== +"@types/node@^18.0.0": + version "18.17.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.17.tgz#53cc07ce582c9d7c5850702a3c2cb0af0d7b0ca1" + integrity sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw== "@types/tape-promise@^4.0.1": version "4.0.1" @@ -690,6 +683,18 @@ kuler@^2.0.0: resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== +libsodium-wrappers@^0.7.11: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" + integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== + dependencies: + libsodium "^0.7.13" + +libsodium@^0.7.13: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" + integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== + lodash-es@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" @@ -984,11 +989,6 @@ ts-node@^10.8.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - typescript@^4.2.4: version "4.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" @@ -1088,6 +1088,11 @@ ws@^8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== +ws@^8.13.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" + integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" diff --git a/bootstrap-languages/agent-language/index.ts b/bootstrap-languages/agent-language/index.ts index 5f288fcfe..d987debbd 100644 --- a/bootstrap-languages/agent-language/index.ts +++ b/bootstrap-languages/agent-language/index.ts @@ -1,23 +1,23 @@ -import type { Address, Language, LanguageContext, HolochainLanguageDelegate, Interaction } from "@perspect3vism/ad4m"; -import ExpressionAdapter from "./adapter"; +import type { Address, Language, LanguageContext, HolochainLanguageDelegate, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import ExpressionAdapter from "./adapter.ts"; import Icon from "./build/Icon.js"; import ConstructorIcon from "./build/ConstructorIcon.js"; -import { UI } from "./expressionUI"; -import { DNA, DNA_NICK } from "./dna"; +import { UI } from "./build/expressionUI.js"; +import { DNA, DNA_NICK } from "./build/dna.js"; function iconFor(expression: Address): string { - return Icon; + return Icon as unknown as string; } function constructorIcon(): string { - return ConstructorIcon; + return ConstructorIcon as unknown as string; } function interactions(expression: Address): Interaction[] { return []; } -//@ad4m-template-variable +//!@ad4m-template-variable export const name = "agent-expression-store"; export default async function create(context: LanguageContext): Promise { diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index 382f6ad77..7ef210a85 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -1,18 +1,20 @@ { "name": "@perspect3vism/agent-language", - "version": "0.5.1", + "version": "0.6.0", "description": "AD4M Language implementation for Holochain profile DNA", "main": "index.js", "scripts": { "test": "echo \"No agent language integration tests\"", - "build-icons": "rollup -c rollup.config.icons.js", + "rollup-icons": "rollup -c rollup.config.icons.js", + "rollup-dna": "rollup -c rollup.config.hc-dna.js", + "rollup-expression-ui": "rollup -c rollup.config.expression-ui.js", + "compile-dna": "cd hc-dna && ./build.sh && cd ..", + "compile-dna-windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd ..", "build": "run-script-os", - "build:linux": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", - "build:macos": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", - "build:windows": "yarn run build-icons && cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", - "build-dna": "cd hc-dna && ./build.sh && cd ..", - "build-nix": "yarn run build-dna && yarn run build-icons && tsc && rollup -c", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + "build:linux": "yarn compile-dna && yarn build:common", + "build:macos": "yarn compile-dna && yarn build:common", + "build:windows": "yarn compile-dna-windows && yarn build:common", + "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", @@ -22,7 +24,7 @@ "@rollup/plugin-commonjs": "^17.0.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", + "@rollup/plugin-typescript": "^11.1.0", "@tsconfig/svelte": "^1.0.0", "@types/node": "^18.0.0", "rollup": "^2.3.4", diff --git a/bootstrap-languages/agent-language/rollup.config.expression-ui.js b/bootstrap-languages/agent-language/rollup.config.expression-ui.js new file mode 100644 index 000000000..feb747f71 --- /dev/null +++ b/bootstrap-languages/agent-language/rollup.config.expression-ui.js @@ -0,0 +1,25 @@ +import { string } from "rollup-plugin-string"; +import typescript from '@rollup/plugin-typescript'; + +export default { + input: "expressionUI.ts", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "AgentExpressionUI", + file: "build/expressionUI.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + typescript({include: "expressionUI.ts"}), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/agent-language/rollup.config.js b/bootstrap-languages/agent-language/rollup.config.hc-dna.js similarity index 96% rename from bootstrap-languages/agent-language/rollup.config.js rename to bootstrap-languages/agent-language/rollup.config.hc-dna.js index 9a3330377..65c885231 100644 --- a/bootstrap-languages/agent-language/rollup.config.js +++ b/bootstrap-languages/agent-language/rollup.config.hc-dna.js @@ -11,13 +11,13 @@ import dna from "@perspect3vism/rollup-plugin-dna"; const production = !process.env.ROLLUP_WATCH; export default { - input: "index.js", + input: "dna.js", external: [], output: { sourcemap: true, - format: "cjs", + format: "esm", name: "AgentLanguage", - file: "build/bundle.js", + file: "build/dna.js", interop: "esModule", globals: {}, }, diff --git a/bootstrap-languages/agent-language/rollup.config.icons.js b/bootstrap-languages/agent-language/rollup.config.icons.js index 0bdc2186c..557135681 100644 --- a/bootstrap-languages/agent-language/rollup.config.icons.js +++ b/bootstrap-languages/agent-language/rollup.config.icons.js @@ -1,7 +1,6 @@ import svelte from "rollup-plugin-svelte"; import resolve from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; -//import { terser } from 'rollup-plugin-terser'; import sveltePreprocess from "svelte-preprocess"; import postcss from "rollup-plugin-postcss"; @@ -12,7 +11,7 @@ export default [ input: "ConstructorIcon.svelte", output: { sourcemap: true, - format: "es", + format: "esm", name: "ConstructorIcon", file: "build/ConstructorIcon.js", }, diff --git a/bootstrap-languages/direct-message-language/.gitignore b/bootstrap-languages/direct-message-language/.gitignore index 3db53879e..d291c1185 100644 --- a/bootstrap-languages/direct-message-language/.gitignore +++ b/bootstrap-languages/direct-message-language/.gitignore @@ -8,7 +8,11 @@ build/* *.js *.js.map !*.config.js +!rollup.config.hc-dna.js !dna.js +!esbuild.js node_modules target + +build/dna.js \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/adapter.ts b/bootstrap-languages/direct-message-language/adapter.ts index 47fe46f51..964e66989 100644 --- a/bootstrap-languages/direct-message-language/adapter.ts +++ b/bootstrap-languages/direct-message-language/adapter.ts @@ -1,9 +1,10 @@ -import { DirectMessageAdapter, HolochainLanguageDelegate, LanguageContext, MessageCallback, Perspective, PerspectiveExpression } from "@perspect3vism/ad4m"; -import { DNA, DNA_NICK } from "./dna"; +import { DirectMessageAdapter, HolochainLanguageDelegate, LanguageContext, MessageCallback, Perspective, PerspectiveExpression } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import { DNA, DNA_NICK } from "./build/dna.js"; -//@ad4m-template-variable +//!@ad4m-template-variable const recipient_did = "" +//@ts-ignore export const sleep = ms => new Promise(r => setTimeout(r, ms)) export default class DMAdapter implements DirectMessageAdapter { @@ -36,7 +37,7 @@ export default class DMAdapter implements DirectMessageAdapter { ["direct-message", "inbox"], ] } - ], (signal) => { + ], async (signal) => { console.debug("DM Language got HC signal:", signal) //@ts-ignore let payload = signal.payload @@ -49,7 +50,9 @@ export default class DMAdapter implements DirectMessageAdapter { } catch(e) { console.error(e) } - that.#messageCallbacks.forEach(cb => cb(payload)) + for (const cb of that.#messageCallbacks) { + await cb(payload) + } }); } @@ -60,6 +63,7 @@ export default class DMAdapter implements DirectMessageAdapter { async status(): Promise { let status = null try { + //@ts-ignore status = await this.#holochain.call(DNA_NICK, "direct-message", "get_status", null) } catch(e) { console.debug("DirectMessage Language couldn't get status:", e) @@ -88,6 +92,7 @@ export default class DMAdapter implements DirectMessageAdapter { } onlyRecipient() { + console.log(recipient_did, this.#context.agent.did); if(recipient_did !== this.#context.agent.did) throw new Error("Only recipient can call this function!") } @@ -99,11 +104,14 @@ export default class DMAdapter implements DirectMessageAdapter { async inbox(filter?: string): Promise { this.onlyRecipient() + //@ts-ignore await this.#holochain.call(DNA_NICK, "direct-message", "fetch_inbox", null) + //@ts-ignore return await this.#holochain.call(DNA_NICK, "direct-message", "inbox", filter) } addMessageCallback(callback: MessageCallback) { + console.log("adding callback on dm language"); this.onlyRecipient() this.#messageCallbacks.push(callback) } diff --git a/bootstrap-languages/direct-message-language/esbuild.ts b/bootstrap-languages/direct-message-language/esbuild.ts new file mode 100644 index 000000000..d6d711634 --- /dev/null +++ b/bootstrap-languages/direct-message-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'direct.message.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock index fc0f4c4e9..2797b460a 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock @@ -46,6 +46,15 @@ dependencies = [ "libc", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arrayref" version = "0.3.6" @@ -58,6 +67,17 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -72,7 +92,7 @@ checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object", @@ -206,6 +226,12 @@ version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -226,6 +252,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -251,7 +288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "libc", "scopeguard", "windows-sys 0.33.0", @@ -331,7 +368,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -340,7 +377,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -350,7 +387,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] @@ -362,7 +399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", "memoffset", "once_cell", @@ -375,7 +412,7 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", ] @@ -458,6 +495,17 @@ dependencies = [ "syn", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -506,6 +554,12 @@ dependencies = [ "serde", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "either" version = "1.7.0" @@ -574,6 +628,95 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "gcollections" version = "1.5.0" @@ -602,7 +745,7 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -638,9 +781,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "344ddd3db53dec1352aca06ca5048d305a2c20149cf3117e9669ac567e71c109" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" dependencies = [ "hdk_derive", "holo_hash", @@ -655,9 +798,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab34bc763d15b2d91d26008487b189547da9c184b5bcd448242ac255f483443e" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ "getrandom", "hdi", @@ -675,9 +818,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "596ab116a5f8977ef7d630b065b233ab73b5cded613688a487c666f8e6e63291" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ "darling 0.14.1", "heck", @@ -712,14 +855,16 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270268effa8c72be70eeb0c3d3944f58a3885daf355cd3597300bf4b33bfee1b" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_util", + "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -728,12 +873,14 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3cf7e728e70ab5aac0c89e437879ee529894d6aa2b6d6ca5d59527fda38157" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "holochain_util", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -767,11 +914,25 @@ dependencies = [ "syn", ] +[[package]] +name = "holochain_util" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" +dependencies = [ + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", +] + [[package]] name = "holochain_wasmer_common" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" dependencies = [ "holochain_serialized_bytes", "serde", @@ -784,9 +945,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -798,14 +959,17 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9725c45ba4fff602c0ac548945ddbb44cb255ee934336efd43262fff8bec8e49" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" dependencies = [ "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -867,7 +1031,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -883,6 +1047,15 @@ dependencies = [ "trilean", ] +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.1" @@ -898,11 +1071,62 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" +dependencies = [ + "base64", + "derive_more", + "holochain_util", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand", + "serde", + "statrs", + "thiserror", + "tracing", +] + [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" dependencies = [ "derive_more", "gcollections", @@ -913,9 +1137,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" dependencies = [ "chrono", "derive_more", @@ -946,10 +1170,16 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "lock_api" version = "0.4.9" @@ -966,7 +1196,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -999,6 +1229,16 @@ dependencies = [ "libc", ] +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "memchr" version = "2.5.0" @@ -1038,6 +1278,54 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.44" @@ -1048,6 +1336,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -1055,6 +1354,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1101,7 +1401,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -1110,9 +1410,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pest" @@ -1130,6 +1430,18 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1192,6 +1504,52 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.5.3" @@ -1466,11 +1824,45 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" version = "1.8.0" @@ -1483,6 +1875,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand", +] + [[package]] name = "strsim" version = "0.10.0" @@ -1541,7 +1946,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "libc", "redox_syscall", @@ -1656,7 +2061,7 @@ version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -1759,7 +2164,7 @@ version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] @@ -1822,7 +2227,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "indexmap", "js-sys", "loupe", @@ -1935,7 +2340,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enum-iterator", "enumset", "leb128", @@ -1961,7 +2366,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enumset", "leb128", "loupe", @@ -2027,7 +2432,7 @@ checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 1.0.0", "corosensei", "enum-iterator", "indexmap", diff --git a/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix b/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix index 9f44831c8..acfe9651f 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix +++ b/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix @@ -4,7 +4,7 @@ { url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; + rev = "holochain-0.2.2"; sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; cargoLock = { outputHashes = { diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/package.json b/bootstrap-languages/direct-message-language/hc-dna/tests/package.json index b283ac490..628116c09 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/tests/package.json +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/package.json @@ -10,8 +10,8 @@ "author": "", "license": "ISC", "dependencies": { - "@holochain/client": "0.12.0", - "@holochain/tryorama": "0.11.0", + "@holochain/client": "0.16.1", + "@holochain/tryorama": "0.15.0", "@types/lodash": "^4.14.158", "@types/node": "^18.0.0", "blake2b": "^2.1.3", diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts b/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts index 56ba71b28..23ea6e62c 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts @@ -51,7 +51,9 @@ test("send direct message", async (t) => { } } }]); - alice.conductor.appWs().on("signal", (signal) => { + const portAlice = await alice.conductor.attachAppInterface(); + const appWs = await alice.conductor.connectAppWs(portAlice); + appWs.on("signal", (signal) => { let payload = signal.payload try { let cropped = signal.payload.toString().substring(7) @@ -193,7 +195,7 @@ test("send direct message", async (t) => { payload: message2 })) - await sleep(1000) + await sleep(5000) inbox = await alice.cells[0].callZome({ zome_name: ZOME, @@ -214,7 +216,7 @@ test("send direct message", async (t) => { bobFetchError = e } //@ts-ignore - t.equal(bobFetchError.data.data, 'Wasm runtime error while working with Ribosome: RuntimeError: WasmError { file: "zomes/direct-message/src/lib.rs", line: 237, error: Guest("Only recipient can fetch the inbox") }') + t.equal(JSON.parse(JSON.stringify(bobFetchError)).message, 'Wasm runtime error while working with Ribosome: RuntimeError: WasmError { file: "zomes/direct-message/src/lib.rs", line: 241, error: Guest("Only recipient can fetch the inbox") }') console.log("fetch_inbox Alice:", await alice.cells[0].callZome({ zome_name: ZOME, diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock b/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock index 3541ebec7..7f26f05e3 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock @@ -23,45 +23,33 @@ enabled "2.0.x" kuler "^2.0.0" -"@holochain/client@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.0.tgz#1c9bdc082160badd1439962e8d5f30da6c4089a3" - integrity sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A== +"@holochain/client@0.16.1", "@holochain/client@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.1.tgz#3cdb110a5d4ab9bf51f31def289f0d082baa77ba" + integrity sha512-jfbrSZz3Yqr/hb3NwzfLSWpR6Cnt82hiHUZP5R1MrGpFQV8JVI2uq94CMVasBspNsWX3lMpT9LNz5Duvq7zF8Q== dependencies: "@holochain/serialization" "^0.1.0-beta-rc.3" "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" "@tauri-apps/api" "^1.2.0" emittery "^1.0.1" isomorphic-ws "^5.0.0" js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/client@^0.11.16": - version "0.11.16" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.11.16.tgz#3b2172cc5b0976d4bed01d067c2cebb28d644e0e" - integrity sha512-uX1/mRnNZHc0y88bkGJrfp6/mfh1UGFS+g+wvn+E69spzPQMxAkjo7FmZ6nmZfxPoYCoxKjVJyKmvswPUP1Xfw== - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" + ws "^8.13.0" "@holochain/serialization@^0.1.0-beta-rc.3": version "0.1.0-beta-rc.3" resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== -"@holochain/tryorama@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.0.tgz#55505b19e1d3bc9ca47cf42deabd35df94cab6bb" - integrity sha512-P2MNn//UulkYCo64j69HfhMfrWGtDrI/A1QEuEZYPUyW8fNg3iE5wh2ssHnu0siw0WRjB6H/PBdadNZz8hemcw== +"@holochain/tryorama@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.15.0.tgz#726dbd33159edf8866de7aa5cf6afdb2230aec74" + integrity sha512-GWsiheb6AFkPkT1ho+dJeFRB2jVboIm/Gp+7v1LshKbDZrgY7oDEopyQPWmy4SkQQYItuscGaIdaOUJIQJuGKQ== dependencies: - "@holochain/client" "^0.11.16" + "@holochain/client" "^0.16.0" get-port "^6.1.2" lodash "^4.17.21" uuid "^8.3.2" @@ -91,6 +79,11 @@ resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== + "@tauri-apps/api@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" @@ -131,10 +124,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.11.tgz#1d455ac0211549a8409d3cdb371cd55cc971e8dc" integrity sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g== -"@types/node@^14.0.14": - version "14.18.34" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.34.tgz#cd2e6fa0dbfb08a62582a7b967558e73c32061ec" - integrity sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA== +"@types/node@^18.0.0": + version "18.17.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.17.tgz#53cc07ce582c9d7c5850702a3c2cb0af0d7b0ca1" + integrity sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw== "@types/tape-promise@^4.0.1": version "4.0.1" @@ -700,6 +693,18 @@ kuler@^2.0.0: resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== +libsodium-wrappers@^0.7.11: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" + integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== + dependencies: + libsodium "^0.7.13" + +libsodium@^0.7.13: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" + integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== + lodash-es@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" @@ -994,11 +999,6 @@ ts-node@^10.8.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - typescript@^4.2.4: version "4.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" @@ -1098,6 +1098,11 @@ ws@^8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== +ws@^8.13.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" + integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml index f1e9b6aa7..27befe19b 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml @@ -13,5 +13,5 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = "0.2.0" -holo_hash = "0.1.0" \ No newline at end of file +hdi = "0.3.2" +holo_hash = "0.2.2" \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml index d85061237..d8addd757 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml @@ -15,7 +15,7 @@ serde_json = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } hex = "0.4.3" -hdk = "0.1.0" -holo_hash = "0.1.0" +hdk = "0.2.2" +holo_hash = "0.2.2" direct-message-integrity = { path = "../direct-message-integrity" } \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs index 1821d01aa..4337e8397 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs @@ -35,7 +35,7 @@ fn recipient() -> ExternResult { Ok(Recipient(recipient.get())) } else { //debug!("RECIPIENT from properties"); - let properties = Properties::try_from(dna_info()?.properties) + let properties = Properties::try_from(dna_info()?.modifiers.properties) .map_err(|err| wasm_error!(WasmErrorInner::Host(err.to_string())))?; let bytes = hex::decode(properties.recipient_hc_agent_pubkey).or_else(|_| { Err(wasm_error!(WasmErrorInner::Host( @@ -77,11 +77,11 @@ pub fn get_status(_: ()) -> ExternResult> { // (either from local ad4m-executor or via remote_call) // we retrieve the latest status entry from source chain let mut filter = QueryFilter::new(); - filter.entry_type = Some(EntryType::App(AppEntryDef::new( + filter.entry_type = Some(vec![EntryType::App(AppEntryDef::new( 0.into(), 0.into(), EntryVisibility::Private, - ))); + ))]); filter.include_entries = true; if let Some(element) = query(filter)?.pop() { let status = StatusUpdate::try_from(element)?; @@ -144,11 +144,11 @@ fn recv_remote_signal(signal: SerializedBytes) -> ExternResult<()> { fn inbox(did_filter: Option) -> ExternResult> { //debug!("INBOX({:?})", did_filter); let mut filter = QueryFilter::new(); - filter.entry_type = Some(EntryType::App(AppEntryDef::new( + filter.entry_type = Some(vec![EntryType::App(AppEntryDef::new( 1.into(), 0.into(), EntryVisibility::Private, - ))); + ))]); filter.include_entries = true; Ok(query(filter)? .into_iter() @@ -209,11 +209,15 @@ pub fn fetch_inbox(_: ()) -> ExternResult<()> { if Recipient(agent_info()?.agent_latest_pubkey) == recipient()? { //debug!("fetch_inbox agent"); //debug!("agent_address: {}", agent_address); - for link in get_links( - agent_address, - LinkTypes::Message, - Some(LinkTag::new(String::from("message"))), - )? { + // let input = GetLinksInputBuilder::try_new( + // agent_address, + // LinkTypes::Message + // ) + // .unwrap() + // .tag_prefix(LinkTag::new("message")) + // .build(); + + for link in get_links(agent_address, LinkTypes::Message, Some(LinkTag::new("message")))? { //debug!("fetch_inbox link"); if let Some(message_entry) = get( link.target diff --git a/bootstrap-languages/direct-message-language/index.ts b/bootstrap-languages/direct-message-language/index.ts index 87e1ff2ef..60f0faabf 100644 --- a/bootstrap-languages/direct-message-language/index.ts +++ b/bootstrap-languages/direct-message-language/index.ts @@ -1,5 +1,5 @@ -import type { Address, Language, LanguageContext, Interaction } from "@perspect3vism/ad4m"; -import DMAdapter from "./adapter"; +import type { Address, Language, LanguageContext, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import DMAdapter from "./adapter.ts"; export const name = "direct-message-language"; diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json index ae537acee..acb1935b4 100644 --- a/bootstrap-languages/direct-message-language/package.json +++ b/bootstrap-languages/direct-message-language/package.json @@ -1,17 +1,21 @@ { "name": "@perspect3vism/direct-message-language", - "version": "0.5.1", + "version": "0.6.0", "description": "A templateable AD4M Language for personal, per-agent direct message Languages", "main": "index.js", + "type": "module", "scripts": { "test": "echo \"No direct message integration tests\"", - "build": "run-script-os", - "build:linux": "yarn run build-dna && tsc && rollup -c", - "build:macos": "yarn run build-dna && tsc && rollup -c", - "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", - "build-dna": "cd hc-dna && ./build.sh && cd ..", + "rollup-dna": "rollup -c rollup.config.hc-dna.js", + "compile-dna": "cd hc-dna && ./build.sh && cd ..", "build-nix": "yarn run build-dna && tsc && rollup -c", - "dev": "tsc && rollup -c -w" + "compile-dna-windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd ..", + "deno-bundle": "deno bundle index.ts build/bundle.js", + "build": "run-script-os", + "build:linux": "yarn compile-dna && yarn build:common", + "build:macos": "yarn compile-dna && yarn build:common", + "build:windows": "yarn compile-dna-windows && yarn build:common", + "build:common": "yarn rollup-dna && deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", diff --git a/bootstrap-languages/direct-message-language/rollup.config.hc-dna.js b/bootstrap-languages/direct-message-language/rollup.config.hc-dna.js new file mode 100644 index 000000000..cc27cd3c9 --- /dev/null +++ b/bootstrap-languages/direct-message-language/rollup.config.hc-dna.js @@ -0,0 +1,70 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; +import { string } from "rollup-plugin-string"; +import json from "@rollup/plugin-json"; +import dna from "@perspect3vism/rollup-plugin-dna"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: "dna.js", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "DirectMessageLanguage", + file: "build/dna.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + // copy({ + // assets: ['package.unbundled.json'] + // }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + json(), + dna(), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/direct-message-language/tsconfig.json b/bootstrap-languages/direct-message-language/tsconfig.json index 849af5e98..18926102d 100644 --- a/bootstrap-languages/direct-message-language/tsconfig.json +++ b/bootstrap-languages/direct-message-language/tsconfig.json @@ -11,5 +11,5 @@ "forceConsistentCasingInFileNames": true }, "include": ["*.ts"], - "exclude": ["node_modules/*", "__sapper__/*", "public/*"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"] } \ No newline at end of file diff --git a/bootstrap-languages/file-storage/.gitignore b/bootstrap-languages/file-storage/.gitignore index 367a2eb3e..64a95a5b6 100644 --- a/bootstrap-languages/file-storage/.gitignore +++ b/bootstrap-languages/file-storage/.gitignore @@ -13,4 +13,7 @@ ad4m-test.log yarn-error.log -!dna.js \ No newline at end of file +!dna.js + +!rollup.config* +build/dna.js \ No newline at end of file diff --git a/bootstrap-languages/file-storage/adapter.ts b/bootstrap-languages/file-storage/adapter.ts index 68e35c44c..76221b721 100644 --- a/bootstrap-languages/file-storage/adapter.ts +++ b/bootstrap-languages/file-storage/adapter.ts @@ -1,9 +1,9 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; -import { FileStoragePutAdapter } from './putAdapter' -import pako from "pako"; -import { FileStorage } from "./file-storage"; -import { DNA_NICK } from "./dna"; -import type { FileExpression } from "./types"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import { FileStoragePutAdapter } from './putAdapter.ts' +import pako from "https://esm.sh/pako@2.1.0"; +import { FileStorage } from "./file-storage.ts"; +import { DNA_NICK } from "./build/dna.js"; +import type { FileExpression } from "./types.ts"; export default class Adapter implements ExpressionAdapter { putAdapter: PublicSharing diff --git a/bootstrap-languages/file-storage/esbuild.ts b/bootstrap-languages/file-storage/esbuild.ts new file mode 100644 index 000000000..d7d18e01a --- /dev/null +++ b/bootstrap-languages/file-storage/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'agent.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/file-storage/noteExpressionUI.ts b/bootstrap-languages/file-storage/expressionUI.ts similarity index 100% rename from bootstrap-languages/file-storage/noteExpressionUI.ts rename to bootstrap-languages/file-storage/expressionUI.ts diff --git a/bootstrap-languages/file-storage/file-storage.ts b/bootstrap-languages/file-storage/file-storage.ts index 81e7e2ddc..829065dd5 100644 --- a/bootstrap-languages/file-storage/file-storage.ts +++ b/bootstrap-languages/file-storage/file-storage.ts @@ -1,5 +1,5 @@ -import type { FileExpression, EntryHash } from "./types"; -import { Blob } from "buffer"; +import type { FileExpression, EntryHash } from "./types.ts"; +//import { Blob } from "https://esm.sh/buffer@6.0.3"; type ZomeCallFn = (fn: string, params: any) => Promise; diff --git a/bootstrap-languages/file-storage/hc-dna/Cargo.lock b/bootstrap-languages/file-storage/hc-dna/Cargo.lock index 1ad45f3e3..f8ffaa8ba 100644 --- a/bootstrap-languages/file-storage/hc-dna/Cargo.lock +++ b/bootstrap-languages/file-storage/hc-dna/Cargo.lock @@ -46,6 +46,15 @@ dependencies = [ "libc", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arrayref" version = "0.3.6" @@ -72,7 +81,7 @@ checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object 0.30.3", @@ -206,6 +215,12 @@ version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -236,6 +251,17 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "colored" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355" +dependencies = [ + "is-terminal", + "lazy_static", + "winapi", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -261,7 +287,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "libc", "scopeguard", "windows-sys 0.33.0", @@ -341,7 +367,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -350,7 +376,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -360,7 +386,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] @@ -372,7 +398,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", "memoffset 0.7.1", "scopeguard", @@ -384,7 +410,7 @@ version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -476,6 +502,17 @@ dependencies = [ "syn", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -499,6 +536,12 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "either" version = "1.8.1" @@ -546,6 +589,27 @@ dependencies = [ "syn", ] +[[package]] +name = "errno" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "fallible-iterator" version = "0.2.0" @@ -582,6 +646,95 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "gcollections" version = "1.5.0" @@ -610,7 +763,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -652,9 +805,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8046116c32434837d28ad1b443802e2444a38d8cdb69caca9169414364fe0b69" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" dependencies = [ "hdk_derive", "holo_hash", @@ -669,9 +822,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cbecb374a53eba516cbfefaad21f4bc805f4c731b81bd800a9a9e0239004eb3" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ "getrandom", "hdi", @@ -689,9 +842,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8eade453438a832944ab3f4006482f6bb5693997ff58e3049f23a8f8c617a4" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ "darling", "heck", @@ -718,6 +871,12 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" + [[package]] name = "hex" version = "0.4.3" @@ -726,14 +885,16 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.1.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cffb2fb9ce1d2ce4c98d4cc9d625ddb92f6982f47094ed2e36fa93f5a096f36" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_util", + "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -742,12 +903,14 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0630a221701e40ddf0fb369ead8eb6e18e3ec84241b3c77f803ea137930017b" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "holochain_util", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -781,11 +944,25 @@ dependencies = [ "syn", ] +[[package]] +name = "holochain_util" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" +dependencies = [ + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", +] + [[package]] name = "holochain_wasmer_common" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" dependencies = [ "holochain_serialized_bytes", "serde", @@ -798,9 +975,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -812,14 +989,17 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df99af259b89d8309121d2a81852f8e468dc587332ce59a93130f4e1149758b4" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" dependencies = [ "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -891,7 +1071,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -919,6 +1099,38 @@ dependencies = [ "trilean", ] +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.2", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "is-terminal" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +dependencies = [ + "hermit-abi 0.3.2", + "io-lifetimes", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.5" @@ -934,11 +1146,62 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" +dependencies = [ + "base64", + "derive_more", + "holochain_util", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand", + "serde", + "statrs", + "thiserror", + "tracing", +] + [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" dependencies = [ "derive_more", "gcollections", @@ -949,9 +1212,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" dependencies = [ "chrono", "derive_more", @@ -982,10 +1245,16 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "link-cplusplus" version = "1.0.8" @@ -995,6 +1264,12 @@ dependencies = [ "cc", ] +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + [[package]] name = "lock_api" version = "0.4.9" @@ -1011,7 +1286,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1044,6 +1319,16 @@ dependencies = [ "libc", ] +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "memchr" version = "2.5.0" @@ -1092,6 +1377,54 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -1102,6 +1435,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -1109,6 +1453,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1117,7 +1462,7 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] @@ -1164,7 +1509,7 @@ version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -1173,9 +1518,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pest" @@ -1193,6 +1538,18 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1255,6 +1612,52 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.6.1" @@ -1412,6 +1815,20 @@ dependencies = [ "semver 1.0.16", ] +[[package]] +name = "rustix" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.45.0", +] + [[package]] name = "rustversion" version = "1.0.11" @@ -1534,7 +1951,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -1545,11 +1962,45 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" version = "1.10.0" @@ -1562,6 +2013,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand", +] + [[package]] name = "strsim" version = "0.10.0" @@ -1620,7 +2084,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "libc", "redox_syscall", @@ -1744,7 +2208,7 @@ version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -1854,7 +2318,7 @@ version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] @@ -1917,7 +2381,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "indexmap", "js-sys", "loupe", @@ -2030,7 +2494,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enum-iterator", "enumset", "leb128", @@ -2056,7 +2520,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enumset", "leb128", "loupe", @@ -2122,7 +2586,7 @@ checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 1.0.0", "corosensei", "enum-iterator", "indexmap", @@ -2230,7 +2694,16 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets", + "windows-targets 0.42.1", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.1", ] [[package]] @@ -2239,21 +2712,42 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" dependencies = [ - "windows_aarch64_gnullvm", + "windows_aarch64_gnullvm 0.42.1", "windows_aarch64_msvc 0.42.1", "windows_i686_gnu 0.42.1", "windows_i686_msvc 0.42.1", "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm", + "windows_x86_64_gnullvm 0.42.1", "windows_x86_64_msvc 0.42.1", ] +[[package]] +name = "windows-targets" +version = "0.48.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + [[package]] name = "windows_aarch64_msvc" version = "0.33.0" @@ -2266,6 +2760,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + [[package]] name = "windows_i686_gnu" version = "0.33.0" @@ -2278,6 +2778,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + [[package]] name = "windows_i686_msvc" version = "0.33.0" @@ -2290,6 +2796,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + [[package]] name = "windows_x86_64_gnu" version = "0.33.0" @@ -2302,12 +2814,24 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + [[package]] name = "windows_x86_64_msvc" version = "0.33.0" @@ -2319,3 +2843,9 @@ name = "windows_x86_64_msvc" version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" diff --git a/bootstrap-languages/file-storage/hc-dna/build.ps1 b/bootstrap-languages/file-storage/hc-dna/build.ps1 index e7bcb228e..42d3e50d2 100644 --- a/bootstrap-languages/file-storage/hc-dna/build.ps1 +++ b/bootstrap-languages/file-storage/hc-dna/build.ps1 @@ -1,3 +1,3 @@ -$env:CARGO_TARGET_DIR = target +# $env:CARGO_TARGET_DIR = target cargo build --release --target wasm32-unknown-unknown hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/holochain_version.nix b/bootstrap-languages/file-storage/hc-dna/holochain_version.nix index 9f44831c8..acfe9651f 100644 --- a/bootstrap-languages/file-storage/hc-dna/holochain_version.nix +++ b/bootstrap-languages/file-storage/hc-dna/holochain_version.nix @@ -4,7 +4,7 @@ { url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; + rev = "holochain-0.2.2"; sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; cargoLock = { outputHashes = { diff --git a/bootstrap-languages/file-storage/hc-dna/tests/.hc b/bootstrap-languages/file-storage/hc-dna/tests/.hc new file mode 100644 index 000000000..cf4242098 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/tests/.hc @@ -0,0 +1,10 @@ +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/3u2oqidDs876GqjCJrC7C +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/uGhb6HCHxCTeX6CmtB1-j +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/lQxNYNKW4QzCuw-SfmTR7 +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/coZoYEvYKBcQ5JpXuKvRe +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/fcuNcz4XKj51l8XDw3NpZ +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/E6krFpm2q5_T94qOYb7EB +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/FS5F54Vb0MCUVPDtZpw-H +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/PvG8wa8Nf47qpOCwdQVm2 +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/S6G5YGjUZR6oTuyxF624z +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/1-9EyRt3Pf2qNlfN9PvRW diff --git a/bootstrap-languages/file-storage/hc-dna/tests/index.ts b/bootstrap-languages/file-storage/hc-dna/tests/index.ts index 6ef01ffbc..29bc221a8 100644 --- a/bootstrap-languages/file-storage/hc-dna/tests/index.ts +++ b/bootstrap-languages/file-storage/hc-dna/tests/index.ts @@ -63,6 +63,7 @@ test("Share 1MB between Alice and Bob", async (t) => { const blobUp = new Blob([buf]) console.log("Uploading file...") + //@ts-ignore const hashes = await aliceClient.upload(blobUp); console.log("Done") console.log("Got hashes", hashes) @@ -80,6 +81,7 @@ test("Share 1MB between Alice and Bob", async (t) => { t.assert(bufUp.compare(bufDown) == 0) await scenario.shutDown() + t.end() }) }) @@ -135,6 +137,7 @@ test("Share full FileExpression between Alice and Bob", async (t) => { const buf = Buffer.from(randomNumbers); const blobUp = new Blob([buf]) + //@ts-ignore const hashes = await aliceClient.upload(blobUp); const fileMetadata = { name: "test.txt", @@ -170,8 +173,8 @@ test("Share full FileExpression between Alice and Bob", async (t) => { const bufUp = Buffer.from(await blobUp.arrayBuffer()); t.assert(bufUp.compare(bufDown) == 0) - await scenario.shutDown(); - + await scenario.shutDown(); + t.end(); }) }) \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/tests/package.json b/bootstrap-languages/file-storage/hc-dna/tests/package.json index 36257fbce..22b393d4a 100644 --- a/bootstrap-languages/file-storage/hc-dna/tests/package.json +++ b/bootstrap-languages/file-storage/hc-dna/tests/package.json @@ -5,8 +5,8 @@ "type": "module", "license": "MIT", "dependencies": { - "@holochain/client": "^0.12.0", - "@holochain/tryorama": "^0.11.1", + "@holochain/client": "0.16.1", + "@holochain/tryorama": "0.15.0", "tape-promise": "^4.0.0", "ts-node": "^10.8.0", "@types/node": "^14.0.14", diff --git a/bootstrap-languages/file-storage/hc-dna/tests/yarn.lock b/bootstrap-languages/file-storage/hc-dna/tests/yarn.lock new file mode 100644 index 000000000..0cc0eecb0 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/tests/yarn.lock @@ -0,0 +1,1235 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@holochain/client@0.16.1", "@holochain/client@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.1.tgz#3cdb110a5d4ab9bf51f31def289f0d082baa77ba" + integrity sha512-jfbrSZz3Yqr/hb3NwzfLSWpR6Cnt82hiHUZP5R1MrGpFQV8JVI2uq94CMVasBspNsWX3lMpT9LNz5Duvq7zF8Q== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" + lodash-es "^4.17.21" + ws "^8.13.0" + +"@holochain/serialization@^0.1.0-beta-rc.3": + version "0.1.0-beta-rc.3" + resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" + integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== + +"@holochain/tryorama@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.15.0.tgz#726dbd33159edf8866de7aa5cf6afdb2230aec74" + integrity sha512-GWsiheb6AFkPkT1ho+dJeFRB2jVboIm/Gp+7v1LshKbDZrgY7oDEopyQPWmy4SkQQYItuscGaIdaOUJIQJuGKQ== + dependencies: + "@holochain/client" "^0.16.0" + get-port "^6.1.2" + lodash "^4.17.21" + uuid "^8.3.2" + winston "^3.8.2" + ws "^8.11.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@ljharb/resumer@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ljharb/resumer/-/resumer-0.0.1.tgz#8a940a9192dd31f6a1df17564bbd26dc6ad3e68d" + integrity sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw== + dependencies: + "@ljharb/through" "^2.3.9" + +"@ljharb/through@^2.3.9": + version "2.3.9" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.9.tgz#85f221eb82f9d555e180e87d6e50fb154af85408" + integrity sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ== + +"@msgpack/msgpack@^2.7.2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" + integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== + +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== + +"@tauri-apps/api@^1.2.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.4.0.tgz#b4013ca3d17b853f7df29fe14079ebb4d52dbffa" + integrity sha512-Jd6HPoTM1PZSFIzq7FB8VmMu3qSSyo/3lSwLpoapW+lQ41CL5Dow2KryLg+gyazA/58DRWI9vu/XpEeHK4uMdw== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/faker@^5.5.3": + version "5.5.9" + resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== + +"@types/node@*": + version "20.6.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.2.tgz#a065925409f59657022e9063275cd0b9bd7e1b12" + integrity sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw== + +"@types/node@^14.0.14": + version "14.18.61" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.61.tgz#752097010d85f6279b3069811bf0e99eba996096" + integrity sha512-1mFT4DqS4/s9tlZbdkwEB/EnSykA9MDeDLIk3FHApGvIMGY//qgstB2gu9GKGESWyW/qiRUO+jhlLJ9bBJ8j+Q== + +"@types/tape-promise@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/tape-promise/-/tape-promise-4.0.2.tgz#21b6cf9a8d66dae026f9fe81aafe0c2025b7f058" + integrity sha512-EKVttQy09DutWfuOj7CoqCiP9fH6chU5eYADP6wLYmqrjz2ibgf+ONevDVzleC7L58/qhuAcfEgUBDAEUi+awg== + dependencies: + "@types/tape" "*" + +"@types/tape@*": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@types/tape/-/tape-5.6.1.tgz#3285ad2e5433f7672974330e8b1c8264962a1281" + integrity sha512-Rs3uJYjo+oAtF+X/icS75nIa/tnPmZEuFqxwZW456+PfM0gqyqDh4fU9Mp0msFkeeFzvLPp7F7nDfw1yYDLJVA== + dependencies: + "@types/node" "*" + "@types/through" "*" + +"@types/through@*": + version "0.0.31" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.31.tgz#eb410602641807e74a90c5e951f46686e75eed1c" + integrity sha512-LpKpmb7FGevYgXnBXYs6HWnmiFyVG07Pt1cnbgM1IhEacITTiUaBXXvOR3Y50ksaJWGSfhbEvQFivQEFGCC55w== + dependencies: + "@types/node" "*" + +"@types/triple-beam@^1.3.2": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.3.tgz#726ae98a5f6418c8f24f9b0f2a9f81a8664876ae" + integrity sha512-6tOUG+nVHn0cJbVp25JFayS5UE6+xlbcNF9Lo9mU7U0zk3zeUShZied4YEQZjy1JBF043FSkdXw8YkUJuVtB5g== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array.prototype.every@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.5.tgz#f8ca86a1a82a91eb5173187ef68935dc47215922" + integrity sha512-FfMQJ+/joFGXpRCltbzV3znaP5QxIhLFySo0fEPn3GuoYlud9LhknMCIxdYKC2qsM/6VHoSp6YGwe3EZXrEcwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + is-string "^1.0.7" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +blob-compare@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/blob-compare/-/blob-compare-1.1.0.tgz#bb26f66f4795b57f1cfc8de48b89af42ae14c72f" + integrity sha512-2IAxmSdPgS91n9COyZz2G2ZwG/9ALrcgyCW12E50YMuJ5YR/BaEI2AidK6t0HwuZ1ODsXgD9gmrHrhpQlDCMoA== + dependencies: + webworker-promise "^0.4.2" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +deep-equal@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.2.tgz#9b2635da569a13ba8e1cc159c2f744071b115daa" + integrity sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.1" + 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.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +define-data-property@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" + integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +emittery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" + integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +es-abstract@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.1" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.12" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.11" + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + 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" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +js-base64@^3.7.3: + version "3.7.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +libsodium-wrappers@^0.7.11: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" + integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== + dependencies: + libsodium "^0.7.13" + +libsodium@^0.7.13: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" + integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b" + integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== + dependencies: + "@colors/colors" "1.5.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" + +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-stable-stringify@^2.3.1: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +string.prototype.trim@^1.2.7, string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tape-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tape-promise/-/tape-promise-4.0.0.tgz#c1f3553959b2e9d64b1546e7276b8a017c616897" + integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== + dependencies: + is-promise "^2.1.0" + onetime "^2.0.0" + +tape@^5.5.3: + version "5.6.6" + resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.6.tgz#dc555729d557184764a0d61130304d21977e4ca2" + integrity sha512-rGp2cZ3rfZ6QfTBm6yvohf8aXmDqPyzMKZwTMV12w4i+b/N2Adwlg8PlW8jLqWzlJUZhglyYaLOSrMt/ZlZkAA== + dependencies: + "@ljharb/resumer" "^0.0.1" + "@ljharb/through" "^2.3.9" + array.prototype.every "^1.1.4" + call-bind "^1.0.2" + deep-equal "^2.2.2" + defined "^1.0.1" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.3" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.8" + object-inspect "^1.12.3" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + resolve "^2.0.0-next.4" + string.prototype.trim "^1.2.7" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +triple-beam@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" + integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== + +ts-node@^10.8.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typescript@^4.2.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +webworker-promise@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/webworker-promise/-/webworker-promise-0.4.4.tgz#722b0ccade10ccb4e810325e5ebff00eb0e1b1be" + integrity sha512-NfdSlaWqd+0iSrQudB0N0MELfJ9TVTlynhXMpi06piuZhyc9Yy7Hz6BFu2HUkvIb9lCS0pFW42ptd/JnXVnptg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + 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" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.11, which-typed-array@^1.1.9: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.8.2: + version "3.10.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.10.0.tgz#d033cb7bd3ced026fed13bf9d92c55b903116803" + integrity sha512-nT6SIDaE9B7ZRO0u3UvdrimG0HkB7dSTAgInQnNR2SOPJ4bvq5q79+pXLftKmP52lJGW15+H5MCK0nM9D3KB/g== + dependencies: + "@colors/colors" "1.5.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.11.0, ws@^8.13.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" + integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml index 6fadb6261..3fcef6cd6 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml @@ -17,5 +17,5 @@ chrono = { version = "0.4.22", default-features = false, features = ["clock", "s thiserror = "1.0.20" integrity = { path = "../integrity" } sha2 = "0.10.5" -hdk = "0.1.0" -holo_hash = "0.1.0" \ No newline at end of file +hdk = "0.2.2" +holo_hash = "0.2.2" \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs index 69cb21fca..079042dfb 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs @@ -25,7 +25,6 @@ pub fn get_now() -> DateTime { pub fn store_file_expression(expression: FileExpression) -> ExternResult { let hash = hash_entry(&expression)?; create_entry(&EntryTypes::FileExpression(expression))?; - Ok(hash) } diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml index 8a860b176..ae8e958dd 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml @@ -13,6 +13,6 @@ name = "integrity" derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.1.0" -hdi = "0.2.0" -hdk = "0.1.0" +holo_hash = "0.2.2" +hdi = "0.3.2" +hdk = "0.2.2" diff --git a/bootstrap-languages/file-storage/index.ts b/bootstrap-languages/file-storage/index.ts index 6ae00788d..45c191c37 100644 --- a/bootstrap-languages/file-storage/index.ts +++ b/bootstrap-languages/file-storage/index.ts @@ -1,7 +1,7 @@ -import type { Address, Interaction, Agent, Language, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; -import Adapter from './adapter' -import { FileStorageUI } from './noteExpressionUI' -import { DNA, DNA_NICK } from "./dna"; +import type { Address, Interaction, Language, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import Adapter from './adapter.ts' +import { FileStorageUI } from "./build/expressionUI.js"; +import { DNA, DNA_NICK } from "./build/dna.js"; function interactions(expression: Address): Interaction[] { return [] @@ -11,7 +11,7 @@ function isImmutableExpression(expression: Address): boolean { return true } -//@ad4m-template-variable +//!@ad4m-template-variable const name = "file-storage"; export default async function create(context: LanguageContext): Promise { diff --git a/bootstrap-languages/file-storage/package.json b/bootstrap-languages/file-storage/package.json index e6d30b778..1e28de675 100644 --- a/bootstrap-languages/file-storage/package.json +++ b/bootstrap-languages/file-storage/package.json @@ -6,13 +6,16 @@ "type": "module", "scripts": { "integration-test": "node ../../test-runner/build/cli.js --test ./integration.test.cjs --bundle ./build/bundle.js --meta '{\"name\":\"file-storage\",\"description\":\"An AD4M Language for file storage leveraging a holochain DNA\",\"sourceCodeLink\":\"https://github.com/perspect3vism/file-storage-language\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", + "rollup-icons": "rollup -c rollup.config.icons.js", + "rollup-dna": "rollup -c rollup.config.hc-dna.js", + "rollup-expression-ui": "rollup -c rollup.config.expression-ui.js", + "compile-dna": "cd hc-dna && ./build.sh && cd ..", + "compile-dna-windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd ..", "build": "run-script-os", - "build:linux": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", - "build:macos": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", - "build:windows": "yarn run build-icons && cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", - "build-icons": "rollup -c rollup.config.icons.js", - "build-dna": "cd ./hc-dna && ./build.sh && cd ..", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + "build:linux": "yarn compile-dna && yarn build:common", + "build:macos": "yarn compile-dna && yarn build:common", + "build:windows": "yarn compile-dna-windows && yarn build:common", + "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", @@ -33,12 +36,12 @@ "rollup-plugin-string": "^3.0.0", "rollup-plugin-svelte": "^6.0.0", "rollup-plugin-terser": "^7.0.0", + "run-script-os": "^1.1.6", "svelte": "^3.0.0", "svelte-check": "^1.0.0", "svelte-preprocess": "^4.0.0", "tslib": "^2.0.0", "typescript": "^4.2.4", - "uint8arrays": "^3.0.0", - "run-script-os": "^1.1.6" + "uint8arrays": "^3.0.0" } } diff --git a/bootstrap-languages/file-storage/putAdapter.ts b/bootstrap-languages/file-storage/putAdapter.ts index 3c81417f5..ec6c49d21 100644 --- a/bootstrap-languages/file-storage/putAdapter.ts +++ b/bootstrap-languages/file-storage/putAdapter.ts @@ -1,9 +1,9 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; -import pako from "pako"; -import { FileStorage } from "./file-storage"; -import { DNA_NICK } from "./dna"; -import { Blob } from "buffer"; -import type { FileExpression, FileMetadata } from "./types"; +import type { Address, AgentService, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import pako from "https://esm.sh/pako@2.1.0"; +import { FileStorage } from "./file-storage.ts"; +import { DNA_NICK } from "./build/dna.js"; +//import { Blob } from "https://esm.sh/buffer@6.0.3"; +import type { FileExpression, FileMetadata } from "./types.ts"; export interface FileData { name: string; @@ -53,9 +53,10 @@ export class FileStoragePutAdapter implements PublicSharing { delete expression.data.data_base64; //Store the FileMetadataExpression - const address = await storage.storeFileExpression(expression) + let address = await storage.storeFileExpression(expression) if (!Buffer.isBuffer(address)) { - throw new Error("Could not create FileExpression data") + address = Buffer.from(address) + //throw new Error("Could not create FileExpression data") }; //@ts-ignore return address.toString("hex") diff --git a/bootstrap-languages/file-storage/rollup.config.expression-ui.js b/bootstrap-languages/file-storage/rollup.config.expression-ui.js new file mode 100644 index 000000000..4e986d631 --- /dev/null +++ b/bootstrap-languages/file-storage/rollup.config.expression-ui.js @@ -0,0 +1,25 @@ +import { string } from "rollup-plugin-string"; +import typescript from '@rollup/plugin-typescript'; + +export default { + input: "expressionUI.ts", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "FileStorageExpressionUI", + file: "build/expressionUI.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + typescript({include: "expressionUI.ts"}), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/language-language/rollup.config.js b/bootstrap-languages/file-storage/rollup.config.hc-dna.js similarity index 77% rename from bootstrap-languages/language-language/rollup.config.js rename to bootstrap-languages/file-storage/rollup.config.hc-dna.js index 983a568e1..017cc0cb2 100644 --- a/bootstrap-languages/language-language/rollup.config.js +++ b/bootstrap-languages/file-storage/rollup.config.hc-dna.js @@ -1,21 +1,26 @@ import svelte from "rollup-plugin-svelte"; import resolve from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; -//import { terser } from 'rollup-plugin-terser'; import sveltePreprocess from "svelte-preprocess"; import postcss from "rollup-plugin-postcss"; import { string } from "rollup-plugin-string"; +import json from "@rollup/plugin-json"; +import dna from "@perspect3vism/rollup-plugin-dna"; const production = !process.env.ROLLUP_WATCH; export default { - input: "index.js", + input: "dna.js", + external: [], output: { sourcemap: true, - format: "cjs", - name: "LanguageLanguage", - file: "build/bundle.js", + format: "esm", + name: "FileStorageLanguage", + file: "build/dna.js", + interop: "esModule", + globals: {}, }, + external: [], plugins: [ string({ include: "build/*.js", @@ -30,6 +35,9 @@ export default { //}, preprocess: sveltePreprocess(), }), + // copy({ + // assets: ['package.unbundled.json'] + // }), // If you have external dependencies installed from // npm, you'll most likely need these plugins. In @@ -37,7 +45,7 @@ export default { // consult the documentation for details: // https://github.com/rollup/plugins/tree/master/packages/commonjs resolve({ - browser: false, + browser: true, dedupe: ["svelte"], }), commonjs(), @@ -52,7 +60,9 @@ export default { }, ], ], - }) + }), + json(), + dna(), ], watch: { clearScreen: false, diff --git a/bootstrap-languages/file-storage/rollup.config.icons copy.js b/bootstrap-languages/file-storage/rollup.config.icons copy.js new file mode 100644 index 000000000..557135681 --- /dev/null +++ b/bootstrap-languages/file-storage/rollup.config.icons copy.js @@ -0,0 +1,106 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; + +const production = !process.env.ROLLUP_WATCH; + +export default [ + { + input: "ConstructorIcon.svelte", + output: { + sourcemap: true, + format: "esm", + name: "ConstructorIcon", + file: "build/ConstructorIcon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, + { + input: "Icon.svelte", + output: { + sourcemap: true, + format: "es", + name: "Icon", + file: "build/Icon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, +]; diff --git a/bootstrap-languages/file-storage/rollup.config.icons.js b/bootstrap-languages/file-storage/rollup.config.icons.js index 500ea3f14..557135681 100644 --- a/bootstrap-languages/file-storage/rollup.config.icons.js +++ b/bootstrap-languages/file-storage/rollup.config.icons.js @@ -1,107 +1,106 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; import postcss from "rollup-plugin-postcss"; const production = !process.env.ROLLUP_WATCH; export default [ -{ - input: 'ConstructorIcon.svelte', - output: { - sourcemap: true, - format: 'cjs', - name: 'ConstructorIcon', - file: 'build/ConstructorIcon.js' - }, - plugins: [ - svelte({ - // enable run-time checks when not in production - dev: !production, - preprocess: sveltePreprocess(), - customElement: true, - }), + { + input: "ConstructorIcon.svelte", + output: { + sourcemap: true, + format: "esm", + name: "ConstructorIcon", + file: "build/ConstructorIcon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - //typescript({ sourceMap: !production }), - - // If we're building for production (npm run build - // instead of npm run dev), minify - //production && terser() - ], - watch: { - clearScreen: false - } -}, -{ - input: 'Icon.svelte', - output: { - sourcemap: true, - format: 'cjs', - name: 'Icon', - file: 'build/Icon.js' - }, - plugins: [ - svelte({ - // enable run-time checks when not in production - dev: !production, - preprocess: sveltePreprocess(), - customElement: true, - }), + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - //typescript({ sourceMap: !production }), - - // If we're building for production (npm run build - // instead of npm run dev), minify - //production && terser() - ], - watch: { - clearScreen: false - } -} -] + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, + { + input: "Icon.svelte", + output: { + sourcemap: true, + format: "es", + name: "Icon", + file: "build/Icon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, +]; diff --git a/bootstrap-languages/file-storage/rollup.config.js b/bootstrap-languages/file-storage/rollup.config.js deleted file mode 100644 index 0e637b82c..000000000 --- a/bootstrap-languages/file-storage/rollup.config.js +++ /dev/null @@ -1,62 +0,0 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; -import postcss from "rollup-plugin-postcss"; -import { string } from 'rollup-plugin-string' -import dna from "@perspect3vism/rollup-plugin-dna"; - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: 'index.js', - output: { - sourcemap: true, - format: 'cjs', - name: 'NoteIpfs', - file: 'build/bundle.js' - }, - plugins: [ - string({ - include: 'build/*.js' - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - dna(), - ], - watch: { - clearScreen: false - } -} diff --git a/bootstrap-languages/file-storage/types.ts b/bootstrap-languages/file-storage/types.ts index 5a8d39dde..f5bb4be9f 100644 --- a/bootstrap-languages/file-storage/types.ts +++ b/bootstrap-languages/file-storage/types.ts @@ -1,13 +1,13 @@ -import { ExpressionGeneric } from "@perspect3vism/ad4m"; +import { ExpressionGeneric } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; export type EntryHash = Uint8Array; export class FileMetadata { - name: string; - size: number; - file_type: string; - checksum: string; - chunks_hashes: Array; + name: string = ""; + size: number = 0; + file_type: string = ""; + checksum: string = ""; + chunks_hashes: Array = []; } export class FileExpression extends ExpressionGeneric(FileMetadata) {} ; diff --git a/bootstrap-languages/language-language/adapter.ts b/bootstrap-languages/language-language/adapter.ts index dfc5e118e..8648912c4 100644 --- a/bootstrap-languages/language-language/adapter.ts +++ b/bootstrap-languages/language-language/adapter.ts @@ -1,7 +1,8 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; -import { CloudflarePutAdapter } from "./putAdapter"; -import axios from "axios"; -import { PROXY_URL } from "."; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import { CloudflarePutAdapter } from "./putAdapter.ts"; +//@ts-ignore +import axiod from "https://deno.land/x/axiod/mod.ts"; +import { PROXY_URL } from "./index.ts"; export default class Adapter implements ExpressionAdapter { putAdapter: PublicSharing; @@ -20,7 +21,7 @@ export default class Adapter implements ExpressionAdapter { let presignedUrl; try { - const getPresignedUrl = await axios.get(PROXY_URL+`?key=${metaDataKey}`); + const getPresignedUrl = await axiod.get(PROXY_URL+`?key=${metaDataKey}`); presignedUrl = getPresignedUrl.data.url; } catch (e) { console.error("Get meta information failed at getting presigned url", address); @@ -29,7 +30,7 @@ export default class Adapter implements ExpressionAdapter { let metaObject; try { - const getMetaObject = await axios.get(presignedUrl); + const getMetaObject = await axiod.get(presignedUrl); metaObject = getMetaObject.data; } catch (e) { console.error("Get meta information failed at getting meta information", presignedUrl); diff --git a/bootstrap-languages/language-language/esbuild.ts b/bootstrap-languages/language-language/esbuild.ts new file mode 100644 index 000000000..f29303d84 --- /dev/null +++ b/bootstrap-languages/language-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'language.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/language-language/index.ts b/bootstrap-languages/language-language/index.ts index ae7903aa0..6aa1fa773 100644 --- a/bootstrap-languages/language-language/index.ts +++ b/bootstrap-languages/language-language/index.ts @@ -1,6 +1,6 @@ -import type { Address, Language, HolochainLanguageDelegate, LanguageContext, Interaction, ExpressionUI } from "@perspect3vism/ad4m"; -import LangAdapter from "./languageAdapter"; -import Adapter from "./adapter"; +import type { Address, Language, LanguageContext, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import LangAdapter from "./languageAdapter.ts"; +import Adapter from "./adapter.ts"; export const name = "languages"; diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index 1430a7a3d..82f636ba8 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -1,11 +1,9 @@ -import type { Address, LanguageAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; -import axios from "axios"; -import { PROXY_URL } from "."; -import XMLHttpRequest from 'xhr2'; +import type { Address, LanguageAdapter, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +//@ts-ignore +import axiod from "https://deno.land/x/axiod/mod.ts"; +import { PROXY_URL } from "./index.ts"; export default class LangAdapter implements LanguageAdapter { - putAdapter: PublicSharing; - constructor(context: LanguageContext) { } @@ -19,7 +17,7 @@ export default class LangAdapter implements LanguageAdapter { let presignedUrl; try { - const getPresignedUrl = await axios.get(PROXY_URL+`?key=${cid}`); + const getPresignedUrl = await axiod.get(PROXY_URL+`?key=${cid}`); presignedUrl = getPresignedUrl.data.url; } catch (e) { console.error("Get language source failed at getting presigned url", address); @@ -28,7 +26,7 @@ export default class LangAdapter implements LanguageAdapter { let languageSource; try { - const getLanguageSource = await axios.get(presignedUrl); + const getLanguageSource = await axiod.get(presignedUrl); languageSource = getLanguageSource.data; } catch (e) { console.error("Get language source failed at getting language source", address); diff --git a/bootstrap-languages/language-language/package.json b/bootstrap-languages/language-language/package.json index a7c893ead..949497e7d 100644 --- a/bootstrap-languages/language-language/package.json +++ b/bootstrap-languages/language-language/package.json @@ -1,36 +1,12 @@ { "name": "@perspect3vism/language-language", - "version": "0.3.2", + "version": "0.4.0", "description": "An AD4M Language for storing of language bundles on Cloudflare", "main": "index.js", "scripts": { "test": "echo \"No language language integration tests\"", - "build": "tsc && rollup -c", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + "build": "deno run --allow-all esbuild.ts" }, "author": "joshuadparkin@gmail.com", - "license": "ISC", - "devDependencies": { - "@perspect3vism/ad4m": "*", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", - "@tsconfig/svelte": "^1.0.0", - "ipfs-core-types": "0.10.1", - "rollup": "^2.3.4", - "rollup-plugin-postcss": "^3.1.8", - "rollup-plugin-string": "^3.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", - "svelte": "^3.0.0", - "svelte-check": "^1.0.0", - "svelte-preprocess": "^4.0.0", - "tslib": "^2.0.0", - "typescript": "^4.2.4" - }, - "dependencies": { - "@types/node": "^18.0.0", - "axios": "^0.26.1", - "xhr2": "^0.2.1" - } + "license": "ISC" } diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index 03505f4f4..60d77f597 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -1,25 +1,18 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, LanguageLanguageInput} from "@perspect3vism/ad4m"; -import type { IPFS } from "ipfs-core-types" -import axios from "axios"; -import https from "https"; -import { PROXY_URL } from "."; +import type { Address, AgentService, PublicSharing, LanguageContext, LanguageLanguageInput} from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +//@ts-ignore +import axiod from "https://deno.land/x/axiod/mod.ts"; +import { PROXY_URL } from "./index.ts"; export class CloudflarePutAdapter implements PublicSharing { #agent: AgentService; - #IPFS: IPFS; constructor(context: LanguageContext) { this.#agent = context.agent; - this.#IPFS = context.IPFS; } async createPublic(language: LanguageLanguageInput): Promise
{ - const ipfsAddress = await this.#IPFS.add( - { content: language.bundle.toString()}, - { onlyHash: true}, - ); // @ts-ignore - const hash = ipfsAddress.cid.toString(); + const hash = UTILS.hash(language.bundle.toString()); if(hash != language.meta.address) throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`) @@ -34,27 +27,34 @@ export class CloudflarePutAdapter implements PublicSharing { // Content of the new object. value: JSON.stringify(expression), }; - //Save the meta information to the KV store - const httpsAgent = new https.Agent({ - rejectUnauthorized: false - }); - const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent }); - if (metaPostResult.status != 200) { - console.error("Upload language meta data gets error: ", metaPostResult); + try { + //Save the meta information to the KV store + const metaPostResult = await axiod.post(PROXY_URL, metaPostData); + if (metaPostResult.status != 200) { + console.error("Upload language meta data gets error: ", metaPostResult); + } + + //Build the key value object for the language bundle + const languageBundleBucketParams = { + key: hash, + // Content of the new object. + value: language.bundle.toString(), + }; + //Save the language bundle to the KV store + const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams); + if (bundlePostResult.status != 200) { + console.error("Upload language bundle data gets error: ", metaPostResult); + } + + return hash as Address; + } catch (e) { + + if(e.response.status == 400 && e.response.data.includes("Key already exists")) { + console.log("[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...") + return hash as Address; + } + console.error("[Cloudflare-based Language Language]: Error storing Language: ", e.response.data); + throw e } - - //Build the key value object for the language bundle - const languageBundleBucketParams = { - key: hash, - // Content of the new object. - value: language.bundle.toString(), - }; - //Save the language bundle to the KV store - const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent }); - if (bundlePostResult.status != 200) { - console.error("Upload language bundle data gets error: ", metaPostResult); - } - - return hash as Address; } } diff --git a/bootstrap-languages/language-language/tsconfig.json b/bootstrap-languages/language-language/tsconfig.json index cfbc9c197..8de2f1a55 100644 --- a/bootstrap-languages/language-language/tsconfig.json +++ b/bootstrap-languages/language-language/tsconfig.json @@ -8,7 +8,7 @@ Svelte Preprocess cannot figure out whether you have a value or a type, so tell TypeScript to enforce using `import type` instead of `import` for Types. */ - "importsNotUsedAsValues": "error", + //"importsNotUsedAsValues": "error", "isolatedModules": true, /** To have warnings/errors of the Svelte compiler at the correct position, diff --git a/bootstrap-languages/neighbourhood-language/adapter.ts b/bootstrap-languages/neighbourhood-language/adapter.ts index 8a42b2dd6..0a03203fe 100644 --- a/bootstrap-languages/neighbourhood-language/adapter.ts +++ b/bootstrap-languages/neighbourhood-language/adapter.ts @@ -1,26 +1,17 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService } from "@perspect3vism/ad4m"; -import type { IPFS } from "ipfs-core-types" -import axios from "axios"; -import https from "https"; -import { PROXY_URL } from "."; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import axiod from "https://deno.land/x/axiod/mod.ts"; +import { PROXY_URL } from "./index.ts"; class NeighbourhoodPutAdapter implements PublicSharing { #agent: AgentService; - #IPFS: IPFS constructor(context: LanguageContext) { this.#agent = context.agent; - this.#IPFS = context.IPFS; } async createPublic(neighbourhood: object): Promise
{ - const ipfsAddress = await this.#IPFS.add( - { content: JSON.stringify(neighbourhood)}, - { onlyHash: true}, - ); // @ts-ignore - const hash = ipfsAddress.cid.toString(); - + const hash = UTILS.hash(JSON.stringify(neighbourhood)); const agent = this.#agent; const expression = agent.createSignedExpression(neighbourhood); @@ -32,10 +23,7 @@ class NeighbourhoodPutAdapter implements PublicSharing { value: JSON.stringify(expression), }; //Save the neighbourhood information to the KV store - const httpsAgent = new https.Agent({ - rejectUnauthorized: false - }); - const neighbourhoodPostResult = await axios.post(PROXY_URL, neighbourhoodPostData, { httpsAgent }); + const neighbourhoodPostResult = await axiod.post(PROXY_URL, neighbourhoodPostData); if (neighbourhoodPostResult.status != 200) { console.error("Upload neighbourhood data gets error: ", neighbourhoodPostResult); } @@ -56,7 +44,7 @@ export default class Adapter implements ExpressionAdapter { let presignedUrl; try { - const getPresignedUrl = await axios.get(PROXY_URL+`?key=${cid}`); + const getPresignedUrl = await axiod.get(PROXY_URL+`?key=${cid}`); presignedUrl = getPresignedUrl.data.url; } catch (e) { console.error("Get neighbourhood failed at getting presigned url", e); @@ -64,7 +52,7 @@ export default class Adapter implements ExpressionAdapter { let neighbourhoodObject; try { - const getneighbourhoodObject = await axios.get(presignedUrl); + const getneighbourhoodObject = await axiod.get(presignedUrl); neighbourhoodObject = getneighbourhoodObject.data; } catch (e) { console.error("Get meta information failed at getting meta information", e); diff --git a/bootstrap-languages/neighbourhood-language/build/.keep b/bootstrap-languages/neighbourhood-language/build/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/bootstrap-languages/neighbourhood-language/esbuild.ts b/bootstrap-languages/neighbourhood-language/esbuild.ts new file mode 100644 index 000000000..535a150b6 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'neighbourhood.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/index.ts b/bootstrap-languages/neighbourhood-language/index.ts index cc7c7c032..7046ab0b9 100644 --- a/bootstrap-languages/neighbourhood-language/index.ts +++ b/bootstrap-languages/neighbourhood-language/index.ts @@ -1,5 +1,5 @@ -import type { Address, Language, LanguageContext, ExpressionUI, Interaction } from "@perspect3vism/ad4m"; -import Adapter from "./adapter"; +import type { Address, Language, LanguageContext, ExpressionUI, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import Adapter from "./adapter.ts"; function interactions(expression: Address): Interaction[] { return []; diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index edf258988..9c73c8409 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -1,35 +1,12 @@ { "name": "@perspect3vism/neighbourhood-language", - "version": "0.5.1", + "version": "0.6.0", "description": "This is a Language for storing AD4M neighbourhood objects", "main": "index.js", "scripts": { "test": "echo \"No neighbourhood language integration tests\"", - "build": "tsc && rollup -c", - "dev": "tsc && rollup -c -w" + "build": "deno run --allow-all esbuild.ts" }, "author": "joshuadparkin@gmail.com", - "license": "ISC", - "devDependencies": { - "@perspect3vism/ad4m": "*", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", - "@tsconfig/svelte": "^1.0.0", - "ipfs-core-types": "0.10.1", - "rollup": "^2.3.4", - "rollup-plugin-postcss": "^3.1.8", - "rollup-plugin-string": "^3.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", - "svelte": "^3.0.0", - "svelte-check": "^1.0.0", - "svelte-preprocess": "^4.0.0", - "tslib": "^2.0.0", - "typescript": "^4.5.5" - }, - "dependencies": { - "@types/node": "^18.0.0", - "axios": "^0.26.1" - } + "license": "ISC" } diff --git a/bootstrap-languages/neighbourhood-language/rollup.config.js b/bootstrap-languages/neighbourhood-language/rollup.config.js deleted file mode 100644 index 86f4995c4..000000000 --- a/bootstrap-languages/neighbourhood-language/rollup.config.js +++ /dev/null @@ -1,59 +0,0 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -import sveltePreprocess from 'svelte-preprocess'; -import postcss from "rollup-plugin-postcss"; -import { string } from 'rollup-plugin-string' - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: 'index.js', - output: { - sourcemap: true, - format: 'cjs', - name: 'NoteIpfs', - file: 'build/bundle.js' - }, - plugins: [ - string({ - include: 'build/*.js' - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: false, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }) - ], - watch: { - clearScreen: false - } -} diff --git a/bootstrap-languages/p-diff-sync/esbuild.ts b/bootstrap-languages/p-diff-sync/esbuild.ts new file mode 100644 index 000000000..6f3bce43c --- /dev/null +++ b/bootstrap-languages/p-diff-sync/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'perspective.diff.sync.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock index 95b0d1059..7482a52c9 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock +++ b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock @@ -46,6 +46,15 @@ dependencies = [ "libc", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arrayref" version = "0.3.6" @@ -58,6 +67,17 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -72,7 +92,7 @@ checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object 0.29.0", @@ -206,6 +226,12 @@ version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -226,6 +252,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -251,7 +288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "libc", "scopeguard", "windows-sys 0.33.0", @@ -331,7 +368,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -340,7 +377,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -350,7 +387,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] @@ -362,7 +399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", "memoffset", "once_cell", @@ -375,7 +412,7 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", ] @@ -458,6 +495,17 @@ dependencies = [ "syn", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -505,6 +553,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "545da7d6df7f8fd0de7106669a7d0bfa3dbcfa24d81da46906ad658188b2ff7c" +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "either" version = "1.8.0" @@ -579,6 +633,95 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "gcollections" version = "1.5.0" @@ -607,7 +750,7 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -659,9 +802,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "344ddd3db53dec1352aca06ca5048d305a2c20149cf3117e9669ac567e71c109" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" dependencies = [ "hdk_derive", "holo_hash", @@ -676,9 +819,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab34bc763d15b2d91d26008487b189547da9c184b5bcd448242ac255f483443e" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ "getrandom", "hdi", @@ -696,9 +839,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "596ab116a5f8977ef7d630b065b233ab73b5cded613688a487c666f8e6e63291" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ "darling 0.14.1", "heck", @@ -733,14 +876,16 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270268effa8c72be70eeb0c3d3944f58a3885daf355cd3597300bf4b33bfee1b" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_util", + "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -749,12 +894,14 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3cf7e728e70ab5aac0c89e437879ee529894d6aa2b6d6ca5d59527fda38157" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "holochain_util", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -788,11 +935,25 @@ dependencies = [ "syn", ] +[[package]] +name = "holochain_util" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" +dependencies = [ + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", +] + [[package]] name = "holochain_wasmer_common" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" dependencies = [ "holochain_serialized_bytes", "serde", @@ -805,9 +966,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -819,14 +980,17 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9725c45ba4fff602c0ac548945ddbb44cb255ee934336efd43262fff8bec8e49" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" dependencies = [ "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -888,7 +1052,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -926,6 +1090,15 @@ dependencies = [ "syn", ] +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.10.3" @@ -950,11 +1123,62 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" +dependencies = [ + "base64", + "derive_more", + "holochain_util", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand", + "serde", + "statrs", + "thiserror", + "tracing", +] + [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" dependencies = [ "derive_more", "gcollections", @@ -965,9 +1189,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" dependencies = [ "chrono", "derive_more", @@ -998,10 +1222,16 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "lock_api" version = "0.4.8" @@ -1018,7 +1248,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1057,6 +1287,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "memchr" version = "2.5.0" @@ -1096,6 +1336,54 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -1106,6 +1394,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -1113,6 +1412,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1168,7 +1468,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -1177,9 +1477,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "perspective_diff_sync" @@ -1191,7 +1491,7 @@ dependencies = [ "graphviz-rust", "hdk", "holo_hash", - "itertools", + "itertools 0.10.3", "lazy_static", "maplit", "perspective_diff_sync_integrity", @@ -1273,6 +1573,12 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "ppv-lite86" version = "0.2.16" @@ -1371,6 +1677,22 @@ dependencies = [ "getrandom", ] +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.5.3" @@ -1646,7 +1968,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -1657,7 +1979,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "006769ba83e921b3085caa8334186b00cf92b4cb1a6cf4632fbccc8eff5c7549" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -1668,11 +1990,45 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf9db03534dff993187064c4e0c05a5708d2a9728ace9a8959b77bedf415dac5" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags", + "itertools 0.8.2", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" version = "1.9.0" @@ -1685,6 +2041,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand", +] + [[package]] name = "strsim" version = "0.10.0" @@ -1743,7 +2112,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "libc", "redox_syscall", @@ -1858,7 +2227,7 @@ version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -1968,7 +2337,7 @@ version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] @@ -2031,7 +2400,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "indexmap", "js-sys", "loupe", @@ -2144,7 +2513,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enum-iterator", "enumset", "leb128", @@ -2170,7 +2539,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enumset", "leb128", "loupe", @@ -2236,7 +2605,7 @@ checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 1.0.0", "corosensei", "enum-iterator", "indexmap", diff --git a/bootstrap-languages/p-diff-sync/hc-dna/build.ps1 b/bootstrap-languages/p-diff-sync/hc-dna/build.ps1 index e7bcb228e..81582cbd3 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/build.ps1 +++ b/bootstrap-languages/p-diff-sync/hc-dna/build.ps1 @@ -1,3 +1,2 @@ -$env:CARGO_TARGET_DIR = target cargo build --release --target wasm32-unknown-unknown hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/holochain_version.nix b/bootstrap-languages/p-diff-sync/hc-dna/holochain_version.nix index 9f44831c8..acfe9651f 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/holochain_version.nix +++ b/bootstrap-languages/p-diff-sync/hc-dna/holochain_version.nix @@ -4,7 +4,7 @@ { url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; + rev = "holochain-0.2.2"; sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; cargoLock = { outputHashes = { diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml index d7fca4018..cfda8d8c6 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml @@ -21,8 +21,8 @@ dot-structures = "0.1.0" itertools = "0.10.3" perspective_diff_sync_integrity = { path = "../perspective_diff_sync_integrity" } sha2 = "0.10.5" -hdk = "0.1.0" -holo_hash = "0.1.0" +hdk = "0.2.2" +holo_hash = "0.2.2" [features] test = [] \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs index e766de24b..e9897391c 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs @@ -1,4 +1,4 @@ -use chrono::Timelike; +//use chrono::Timelike; use hdk::prelude::*; use perspective_diff_sync_integrity::{ EntryTypes, HashBroadcast, LinkTypes, PerspectiveDiff, PerspectiveDiffEntryReference, @@ -52,10 +52,10 @@ pub fn commit( diff_entry_ref_entry.clone(), ))?; let after = get_now()?.time(); - debug!( - "===PerspectiveDiffSync.commit(): Created diff entry ref: {:#?}", - diff_entry_reference - ); + // debug!( + // "===PerspectiveDiffSync.commit(): Created diff entry ref: {:#?}", + // diff_entry_reference + // ); debug!( "===PerspectiveDiffSync.commit() - Profiling: Took {} to create a PerspectiveDiff", (after - now).num_milliseconds() @@ -127,7 +127,9 @@ pub fn add_active_agent_link() -> SocialCon pub fn broadcast_current() -> SocialContextResult> { + //debug!("Running broadcast_current"); let current = current_revision::()?; + //debug!("Current revision: {:#?}", current); if current.is_some() { let current_revision = current.clone().unwrap(); @@ -143,6 +145,7 @@ pub fn broadcast_current() -> SocialContext }; let recent_agents = get_active_agents()?; + //debug!("Recent agents: {:#?}", recent_agents); remote_signal(signal_data.get_sb()?, recent_agents.clone())?; }; Ok(current.map(|rev| rev.hash)) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs index 45e48ba96..e366c16a5 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs @@ -41,11 +41,14 @@ pub fn generate_snapshot( ))?; if diff.diffs_since_snapshot == 0 && search_position.hash != latest { let now = get_now()?.time(); - let mut snapshot_links = get_links( - hash_entry(&diff)?, - LinkTypes::Snapshot, - Some(LinkTag::new("snapshot")), - )?; + // let input = GetLinksInputBuilder::try_new( + // hash_entry(&diff)?, + // LinkTypes::Snapshot + // ) + // .unwrap() + // .tag_prefix(LinkTag::new("snapshot")) + // .build(); + let mut snapshot_links = get_links(hash_entry(&diff)?, LinkTypes::Snapshot, Some(LinkTag::new("snapshot")))?; let after = get_now()?.time(); debug!("===PerspectiveDiffSync.generate_snapshot() - Profiling: Took {} to get the snapshot links", (after - now).num_milliseconds()); if snapshot_links.len() == 0 { diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs index 2cfcb13c3..296e1f004 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs @@ -654,11 +654,14 @@ impl Workspace { debug!("===Workspace.get_snapshot(): Function start"); let fn_start = get_now()?.time(); - let mut snapshot_links = get_links( - hash_entry(address)?, - LinkTypes::Snapshot, - Some(LinkTag::new("snapshot")), - )?; + // let input = GetLinksInputBuilder::try_new( + // hash_entry(address)?, + // LinkTypes::Snapshot + // ) + // .unwrap() + // .tag_prefix(LinkTag::new("snapshot")) + // .build(); + let mut snapshot_links = get_links(hash_entry(address)?, LinkTypes::Snapshot, Some(LinkTag::new("snapshot")))?; if snapshot_links.len() > 0 { let snapshot = get( diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs index 4e78a47c6..c97a7f3bd 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs @@ -100,7 +100,12 @@ impl PerspectiveDiffRetreiver for HolochainRetreiver { fn latest_revision() -> SocialContextResult> { let latest_root_entry = get_latest_revision_anchor(); let latest_root_entry_hash = hash_entry(latest_root_entry.clone())?; - + // let input = GetLinksInputBuilder::try_new( + // latest_root_entry_hash, + // LinkTypes::Index + // ) + // .unwrap() + // .build(); let mut latest_revision_links = get_links(latest_root_entry_hash, LinkTypes::Index, None)?; latest_revision_links.sort_by(|link_a, link_b| { @@ -164,16 +169,22 @@ pub fn get_active_agent_anchor() -> Anchor { } pub fn get_active_agents() -> SocialContextResult> { - let recent_agents = get_links( - hash_entry(get_active_agent_anchor())?, - LinkTypes::Index, - Some(LinkTag::new("active_agent")), - )?; + // let input = GetLinksInputBuilder::try_new( + // hash_entry(get_active_agent_anchor())?, + // LinkTypes::Index + // ) + // .unwrap() + // .tag_prefix(LinkTag::new("active_agent")) + // .build(); + let recent_agents = get_links(hash_entry(get_active_agent_anchor())?, LinkTypes::Index, Some(LinkTag::new("active_agent")))?; let recent_agents = recent_agents .into_iter() - .map(|val| AgentPubKey::from(EntryHash::from(val.target))) - .collect::>(); + .map(|val| { + let entry: EntryHash = val.target.try_into().unwrap(); + AgentPubKey::from(entry) + }) + .collect(); //Dedup the agents let mut recent_agents = dedup(&recent_agents); diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs index 17cba84ce..eba6ab08b 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs @@ -64,6 +64,7 @@ pub fn create_did_pub_key_link(did: String) -> SocialContextResult<()> { debug!("PerspectiveDiffSync.create_did_pub_key_link({:?})", did); let agent_key = agent_info()?.agent_latest_pubkey; debug!("PerspectiveDiffSync.create_did_pub_key_link() agent_key: {:?}", agent_key); + //let input = GetLinksInputBuilder::try_new(agent_key.clone(), LinkTypes::DidLink).unwrap().build(); let did_links = get_links(agent_key.clone(), LinkTypes::DidLink, None)?; debug!("PerspectiveDiffSync.create_did_pub_key_link() did_links: {:?}", did_links); if did_links.len() == 0 { @@ -88,6 +89,12 @@ pub fn create_did_pub_key_link(did: String) -> SocialContextResult<()> { } pub fn get_my_did() -> SocialContextResult> { + // let input = GetLinksInputBuilder::try_new( + // agent_info()?.agent_latest_pubkey, + // LinkTypes::DidLink + // ) + // .unwrap() + // .build(); let mut did_links = get_links(agent_info()?.agent_latest_pubkey, LinkTypes::DidLink, None)?; if did_links.len() > 0 { let did = get( @@ -115,18 +122,29 @@ pub fn get_my_did() -> SocialContextResult> { pub fn get_dids_agent_key(did: String) -> SocialContextResult> { let did_entry = Anchor(did); let did_entry_hash = hash_entry(EntryTypes::Anchor(did_entry.clone()))?; + // let input = GetLinksInputBuilder::try_new( + // did_entry_hash, + // LinkTypes::DidLink + // ) + // .unwrap() + // .build(); let did_links = get_links(did_entry_hash, LinkTypes::DidLink, None)?; debug!("PerspectiveDiffSync.get_dids_agent_key() did_links: {:?}", did_links); if did_links.len() > 0 { - Ok(Some(AgentPubKey::from(EntryHash::from( - did_links[0].target.clone(), - )))) + let entry: EntryHash = did_links[0].target.clone().try_into().unwrap(); + Ok(Some(AgentPubKey::from(entry))) } else { Ok(None) } } pub fn get_agents_did_key(agent: AgentPubKey) -> SocialContextResult> { + // let input = GetLinksInputBuilder::try_new( + // agent, + // LinkTypes::DidLink + // ) + // .unwrap() + // .build(); let mut did_links = get_links(agent, LinkTypes::DidLink, None)?; if did_links.len() > 0 { let did = get( diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml index 63a506c59..c40215be7 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml @@ -13,6 +13,6 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.1.0" -hdi = "0.2.0" -hdk = "0.1.0" \ No newline at end of file +holo_hash = "0.2.2" +hdi = "0.3.2" +hdk = "0.2.2" \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json index 13a126dd5..8c0170b0d 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json @@ -18,8 +18,8 @@ "author": "", "license": "ISC", "dependencies": { - "@holochain/client": "0.12.0", - "@holochain/tryorama": "0.11.1", + "@holochain/client": "0.16.1", + "@holochain/tryorama": "0.15.0", "@perspect3vism/ad4m": "^0.2.12", "@types/lodash": "^4.14.158", "@types/node": "^18.0.0", diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/pull.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/pull.ts index 3e3b74645..8db065701 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/pull.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/pull.ts @@ -254,7 +254,6 @@ export async function mergeFetch(t) { await aliceConductor.shutDown(); await bobConductor.shutDown(); - await cleanAllConductors(); } @@ -267,6 +266,8 @@ test("pull", async (t) => { console.error("Pull test failed with error", e); //@ts-ignore t.fail(e) + } finally { t.end() + process.exit(0) } }) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/render.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/render.ts index e7151f95f..987309c93 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/render.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/render.ts @@ -266,4 +266,5 @@ test("render", async (t) => { await render(t) await renderMerges(t) t.end() + process.exit(0); }) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/revisions.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/revisions.ts index 24534f25c..75b274839 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/revisions.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/revisions.ts @@ -88,4 +88,5 @@ export async function testRevisionUpdates(t) { test("test revision updates", async (t) => { await testRevisionUpdates(t); t.end() + process.exit(0) }) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/signals.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/signals.ts index 3eb871eb4..7bb262780 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/signals.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/signals.ts @@ -28,7 +28,9 @@ export async function signals(t) { }, } ); - aliceHapps.conductor.appWs().on("signal", (signal) => { + const portAlice = await aliceHapps.conductor.attachAppInterface(); + const appWs = await aliceHapps.conductor.connectAppWs(portAlice); + appWs.on("signal", (signal) => { console.log("Alice Received Signal:",signal) aliceSignalCount += 1; }); @@ -50,7 +52,9 @@ export async function signals(t) { } } ); - bobHapps.conductor.appWs().on("signal", (signal) => { + const portBob = await bobHapps.conductor.attachAppInterface(); + const appWsBob = await bobHapps.conductor.connectAppWs(portBob); + appWsBob.on("signal", (signal) => { console.log("Bob Received Signal:",signal) bobSignalCount += 1; }) @@ -98,4 +102,5 @@ export async function signals(t) { test("signals", async (t) => { await signals(t) t.end() + process.exit(0) }) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/stress.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/stress.ts index db8efe65d..31765bcc0 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/stress.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/stress.ts @@ -174,7 +174,9 @@ export async function stressTest(t) { } ); const alicePeersList: Map = new Map(); - aliceHapps.conductor.appWs().on("signal", async (signal) => { + const portAlice = await aliceHapps.conductor.attachAppInterface(); + const appWs = await aliceHapps.conductor.connectAppWs(portAlice); + appWs.on("signal", (signal) => { //console.log("Alice Received Signal:",signal); const { diff, reference_hash, reference, broadcast_author } = signal.payload; if (diff && reference_hash && reference && broadcast_author) { @@ -212,7 +214,9 @@ export async function stressTest(t) { } ); const bobPeersList: Map = new Map(); - bobHapps.conductor.appWs().on("signal", async (signal) => { + const portBob = await bobHapps.conductor.attachAppInterface(); + const appWsBob = await bobHapps.conductor.connectAppWs(portBob); + appWsBob.on("signal", (signal) => { console.log("Bob Received Signal:",signal) const { diff, reference_hash, reference, broadcast_author } = signal.payload; if (diff && reference_hash && reference && broadcast_author) { @@ -347,4 +351,5 @@ export async function stressTest(t) { test("stress", async (t) => { await stressTest(t); t.end() + process.exit(0) }) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/telepresence.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/telepresence.ts index 7fa4c7759..72391d3a0 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/telepresence.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/telepresence.ts @@ -39,7 +39,9 @@ export async function testTelepresence(t) { }, } ); - aliceHapps.conductor.appWs().on("signal", (signal) => { + const portAlice = await aliceHapps.conductor.attachAppInterface(); + const appWs = await aliceHapps.conductor.connectAppWs(portAlice); + appWs.on("signal", (signal) => { console.log("Alice Received Signal:",signal) aliceSignalCount += 1; }); @@ -61,7 +63,9 @@ export async function testTelepresence(t) { } } ); - bobHapps.conductor.appWs().on("signal", (signal) => { + const portBob = await bobHapps.conductor.attachAppInterface(); + const appWsBob = await bobHapps.conductor.connectAppWs(portBob); + appWsBob.on("signal", (signal) => { console.log("Bob Received Signal:",signal) bobSignalCount += 1; }) @@ -161,6 +165,8 @@ test("telepresence", async (t) => { console.error("telepresence test failed with error", e); //@ts-ignore t.fail(e) + } finally { t.end() + process.exit(0) } }) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/utils.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/utils.ts index 8bfc221cd..54744eb99 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/utils.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/utils.ts @@ -1,4 +1,4 @@ -import { AgentApp, CallableCell, Conductor } from "@holochain/tryorama"; +import { AgentApp, CallableCell, Conductor, NetworkType, enableAndGetAgentApp, runLocalServices } from "@holochain/tryorama"; import faker from "faker"; import { dnas } from './common'; import { createConductor } from "@holochain/tryorama"; @@ -38,8 +38,13 @@ export function sleep(ms: number) { export async function createConductors(num: number): Promise<{agent_happ: AgentApp, conductor: Conductor}[]> { let out = [] as {agent_happ: AgentApp, conductor: Conductor}[]; + + const localServices = await runLocalServices(); + for (let n of Array(num).keys()) { - let conductor = await createConductor(); + let conductor = await createConductor(localServices.signalingServerUrl, {networkType: NetworkType.WebRtc, bootstrapServerUrl: localServices.bootstrapServerUrl}); + let port = await conductor.attachAppInterface(); + let appWs = await conductor.connectAppWs(port); try { let app = await conductor.installApp({ bundle: { @@ -57,9 +62,9 @@ export async function createConductors(num: number): Promise<{agent_happ: AgentA resources: {} } }); - await conductor.adminWs().enableApp({installed_app_id: app.appId}) + const agentApp = await enableAndGetAgentApp(conductor.adminWs(), appWs, app); out.push({ - agent_happ: app, + agent_happ: agentApp, conductor }) } catch (e) { diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/yarn.lock b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/yarn.lock index a7d7b24af..00d1b3687 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/yarn.lock +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/yarn.lock @@ -3,1783 +3,1831 @@ "@apollo/client@3.6.9": - "integrity" "sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==" - "resolved" "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz" - "version" "3.6.9" + version "3.6.9" + resolved "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz" + integrity sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA== dependencies: "@graphql-typed-document-node/core" "^3.1.1" "@wry/context" "^0.6.0" "@wry/equality" "^0.5.0" "@wry/trie" "^0.3.0" - "graphql-tag" "^2.12.6" - "hoist-non-react-statics" "^3.3.2" - "optimism" "^0.16.1" - "prop-types" "^15.7.2" - "symbol-observable" "^4.0.0" - "ts-invariant" "^0.10.3" - "tslib" "^2.3.0" - "zen-observable-ts" "^1.2.5" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.1" + prop-types "^15.7.2" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" "@colors/colors@1.5.0": - "integrity" "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" - "resolved" "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" - "version" "1.5.0" + version "1.5.0" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@cspotcode/source-map-support@^0.8.0": - "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==" - "resolved" "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" - "version" "0.8.1" + version "0.8.1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@dabh/diagnostics@^2.0.2": - "integrity" "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==" - "resolved" "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz" - "version" "2.0.3" + version "2.0.3" + resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== dependencies: - "colorspace" "1.1.x" - "enabled" "2.0.x" - "kuler" "^2.0.0" + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" "@graphql-typed-document-node/core@^3.1.1": - "integrity" "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==" - "resolved" "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz" - "version" "3.1.1" + version "3.1.1" + resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz" + integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== -"@holochain/client@^0.12.0", "@holochain/client@0.12.0": - "integrity" "sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A==" - "resolved" "https://registry.npmjs.org/@holochain/client/-/client-0.12.0.tgz" - "version" "0.12.0" +"@holochain/client@0.12.0": + version "0.12.0" + resolved "https://registry.npmjs.org/@holochain/client/-/client-0.12.0.tgz" + integrity sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A== dependencies: "@holochain/serialization" "^0.1.0-beta-rc.3" "@msgpack/msgpack" "^2.7.2" "@tauri-apps/api" "^1.2.0" - "emittery" "^1.0.1" - "isomorphic-ws" "^5.0.0" - "js-base64" "^3.7.3" - "lodash-es" "^4.17.21" - "tweetnacl" "^1.0.3" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/client@0.16.1", "@holochain/client@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.1.tgz#3cdb110a5d4ab9bf51f31def289f0d082baa77ba" + integrity sha512-jfbrSZz3Yqr/hb3NwzfLSWpR6Cnt82hiHUZP5R1MrGpFQV8JVI2uq94CMVasBspNsWX3lMpT9LNz5Duvq7zF8Q== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" + lodash-es "^4.17.21" + ws "^8.13.0" "@holochain/serialization@^0.1.0-beta-rc.3": - "integrity" "sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw==" - "resolved" "https://registry.npmjs.org/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz" - "version" "0.1.0-beta-rc.3" - -"@holochain/tryorama@0.11.1": - "integrity" "sha512-L9xJUI7U0aP0K2TSa5kIpOx5wx8n66DeuD06CSVmoZeJTv5lpiDhzEtpdOqyiXHXISZKmLIsN/HW9kGkSGURcw==" - "resolved" "https://registry.npmjs.org/@holochain/tryorama/-/tryorama-0.11.1.tgz" - "version" "0.11.1" - dependencies: - "@holochain/client" "^0.12.0" - "get-port" "^6.1.2" - "lodash" "^4.17.21" - "uuid" "^8.3.2" - "winston" "^3.8.2" - "ws" "^8.11.0" + version "0.1.0-beta-rc.3" + resolved "https://registry.npmjs.org/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz" + integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== + +"@holochain/tryorama@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.15.0.tgz#726dbd33159edf8866de7aa5cf6afdb2230aec74" + integrity sha512-GWsiheb6AFkPkT1ho+dJeFRB2jVboIm/Gp+7v1LshKbDZrgY7oDEopyQPWmy4SkQQYItuscGaIdaOUJIQJuGKQ== + dependencies: + "@holochain/client" "^0.16.0" + get-port "^6.1.2" + lodash "^4.17.21" + uuid "^8.3.2" + winston "^3.8.2" + ws "^8.11.0" "@jest/types@^26.6.2": - "integrity" "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==" - "resolved" "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" - "version" "26.6.2" + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^15.0.0" - "chalk" "^4.0.0" + chalk "^4.0.0" "@jridgewell/resolve-uri@^3.0.3": - "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - "version" "3.1.0" + version "3.1.0" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== "@jridgewell/sourcemap-codec@^1.4.10": - "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - "version" "1.4.14" + version "1.4.14" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@0.3.9": - "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==" - "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" - "version" "0.3.9" + version "0.3.9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@msgpack/msgpack@^2.7.2": - "integrity" "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==" - "resolved" "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz" - "version" "2.7.2" + version "2.7.2" + resolved "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz" + integrity sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw== + +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== "@perspect3vism/ad4m@^0.2.12": - "integrity" "sha512-hIJV5j064SQyxJXiMoHzZGQ5QowA+bxDuXsWGcfAXBN6EpxpFSoqvRuYqGR7VjENg5CV9hL9gjOVUYdhFdRt4Q==" - "resolved" "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.2.15.tgz" - "version" "0.2.15" + version "0.2.15" + resolved "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.2.15.tgz" + integrity sha512-hIJV5j064SQyxJXiMoHzZGQ5QowA+bxDuXsWGcfAXBN6EpxpFSoqvRuYqGR7VjENg5CV9hL9gjOVUYdhFdRt4Q== dependencies: "@apollo/client" "3.6.9" "@holochain/client" "0.12.0" "@types/jest" "^26.0.14" - "class-validator" "^0.13.1" - "express" "^4.18.1" - "graphql" "^15.7.2" - "reflect-metadata" "^0.1.13" - "type-graphql" "^1.1.1" + class-validator "^0.13.1" + express "^4.18.1" + graphql "^15.7.2" + reflect-metadata "^0.1.13" + type-graphql "^1.1.1" "@tauri-apps/api@^1.2.0": - "integrity" "sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==" - "resolved" "https://registry.npmjs.org/@tauri-apps/api/-/api-1.2.0.tgz" - "version" "1.2.0" + version "1.2.0" + resolved "https://registry.npmjs.org/@tauri-apps/api/-/api-1.2.0.tgz" + integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== "@tsconfig/node10@^1.0.7": - "integrity" "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - "resolved" "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" - "version" "1.0.9" + version "1.0.9" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": - "integrity" "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - "resolved" "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" - "version" "1.0.11" + version "1.0.11" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": - "integrity" "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - "resolved" "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" - "version" "1.0.3" + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - "integrity" "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - "resolved" "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" - "version" "1.0.3" + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== "@types/faker@^5.5.3": - "integrity" "sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA==" - "resolved" "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz" - "version" "5.5.9" + version "5.5.9" + resolved "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== "@types/glob@^7.1.3": - "integrity" "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==" - "resolved" "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" - "version" "7.2.0" + version "7.2.0" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - "integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - "version" "2.0.4" + version "2.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== "@types/istanbul-lib-report@*": - "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - "version" "3.0.0" + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" - "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - "version" "3.0.1" + version "3.0.1" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== dependencies: "@types/istanbul-lib-report" "*" "@types/jest@^26.0.14": - "integrity" "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==" - "resolved" "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz" - "version" "26.0.24" + version "26.0.24" + resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== dependencies: - "jest-diff" "^26.0.0" - "pretty-format" "^26.0.0" + jest-diff "^26.0.0" + pretty-format "^26.0.0" "@types/lodash@^4.14.158": - "integrity" "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" - "resolved" "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz" - "version" "4.14.182" + version "4.14.182" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz" + integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== "@types/minimatch@*": - "integrity" "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" - "version" "3.0.5" + version "3.0.5" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/node@*": + version "14.18.22" + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz" + integrity sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw== -"@types/node@*", "@types/node@^14.0.14": - "integrity" "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz" - "version" "14.18.22" +"@types/node@^14.11.2": + version "14.18.61" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.61.tgz#752097010d85f6279b3069811bf0e99eba996096" + integrity sha512-1mFT4DqS4/s9tlZbdkwEB/EnSykA9MDeDLIk3FHApGvIMGY//qgstB2gu9GKGESWyW/qiRUO+jhlLJ9bBJ8j+Q== + +"@types/node@^18.0.0": + version "18.17.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.17.tgz#53cc07ce582c9d7c5850702a3c2cb0af0d7b0ca1" + integrity sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw== "@types/semver@^7.3.3": - "integrity" "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==" - "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz" - "version" "7.3.12" + version "7.3.12" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz" + integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== "@types/tape-promise@^4.0.1": - "integrity" "sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg==" - "resolved" "https://registry.npmjs.org/@types/tape-promise/-/tape-promise-4.0.1.tgz" - "version" "4.0.1" + version "4.0.1" + resolved "https://registry.npmjs.org/@types/tape-promise/-/tape-promise-4.0.1.tgz" + integrity sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg== dependencies: "@types/tape" "*" "@types/tape@*": - "integrity" "sha512-V1ez/RtYRGN9cNYApw5xf27DpMkTB0033X6a2i3KUmKhSojBfbWN0i3EgZxboUG96WJLHLdOyZ01aiZwVW5aSA==" - "resolved" "https://registry.npmjs.org/@types/tape/-/tape-4.13.2.tgz" - "version" "4.13.2" + version "4.13.2" + resolved "https://registry.npmjs.org/@types/tape/-/tape-4.13.2.tgz" + integrity sha512-V1ez/RtYRGN9cNYApw5xf27DpMkTB0033X6a2i3KUmKhSojBfbWN0i3EgZxboUG96WJLHLdOyZ01aiZwVW5aSA== dependencies: "@types/node" "*" "@types/triple-beam@^1.3.2": - "integrity" "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" - "resolved" "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz" - "version" "1.3.2" + version "1.3.2" + resolved "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz" + integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== "@types/yargs-parser@*": - "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - "version" "21.0.0" + version "21.0.0" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^15.0.0": - "integrity" "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==" - "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz" - "version" "15.0.15" + version "15.0.15" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz" + integrity sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg== dependencies: "@types/yargs-parser" "*" "@wry/context@^0.6.0": - "integrity" "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==" - "resolved" "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz" - "version" "0.6.1" + version "0.6.1" + resolved "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz" + integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== dependencies: - "tslib" "^2.3.0" + tslib "^2.3.0" "@wry/equality@^0.5.0": - "integrity" "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==" - "resolved" "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz" - "version" "0.5.3" + version "0.5.3" + resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz" + integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== dependencies: - "tslib" "^2.3.0" + tslib "^2.3.0" "@wry/trie@^0.3.0": - "integrity" "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==" - "resolved" "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz" - "version" "0.3.2" - dependencies: - "tslib" "^2.3.0" - -"accepts@~1.3.8": - "integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" - "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" - "version" "1.3.8" - dependencies: - "mime-types" "~2.1.34" - "negotiator" "0.6.3" - -"acorn-walk@^8.1.1": - "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - "version" "8.2.0" - -"acorn@^8.4.1": - "integrity" "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" - "version" "8.8.0" - -"ansi-regex@^5.0.0": - "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - "version" "5.0.1" - -"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "color-convert" "^2.0.1" - -"arg@^4.1.0": - "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - "version" "4.1.3" - -"array-flatten@1.1.1": - "integrity" "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - "version" "1.1.1" - -"array.prototype.every@^1.1.3": - "integrity" "sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA==" - "resolved" "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.3.tgz" - "version" "1.1.3" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - "es-abstract" "^1.19.0" - "is-string" "^1.0.7" - -"async@^3.2.3": - "integrity" "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - "resolved" "https://registry.npmjs.org/async/-/async-3.2.4.tgz" - "version" "3.2.4" - -"available-typed-arrays@^1.0.5": - "integrity" "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" - "resolved" "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - "version" "1.0.5" - -"b4a@^1.0.1": - "integrity" "sha512-fsTxXxj1081Yq5MOQ06gZ5+e2QcSyP2U6NofdOWyq+lrNI4IjkZ+fLVmoQ6uUCiNg1NWePMMVq93vOTdbJmErw==" - "resolved" "https://registry.npmjs.org/b4a/-/b4a-1.6.0.tgz" - "version" "1.6.0" - -"balanced-match@^1.0.0": - "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - "version" "1.0.2" - -"blake2b-wasm@^2.4.0": - "integrity" "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==" - "resolved" "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz" - "version" "2.4.0" - dependencies: - "b4a" "^1.0.1" - "nanoassert" "^2.0.0" - -"blake2b@^2.1.3": - "integrity" "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==" - "resolved" "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz" - "version" "2.1.4" - dependencies: - "blake2b-wasm" "^2.4.0" - "nanoassert" "^2.0.0" - -"body-parser@1.20.0": - "integrity" "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==" - "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz" - "version" "1.20.0" - dependencies: - "bytes" "3.1.2" - "content-type" "~1.0.4" - "debug" "2.6.9" - "depd" "2.0.0" - "destroy" "1.2.0" - "http-errors" "2.0.0" - "iconv-lite" "0.4.24" - "on-finished" "2.4.1" - "qs" "6.10.3" - "raw-body" "2.5.1" - "type-is" "~1.6.18" - "unpipe" "1.0.0" - -"brace-expansion@^1.1.7": - "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - "version" "1.1.11" - dependencies: - "balanced-match" "^1.0.0" - "concat-map" "0.0.1" - -"bytes@3.1.2": - "integrity" "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" - "version" "3.1.2" - -"call-bind@^1.0.0", "call-bind@^1.0.2": - "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" - "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "function-bind" "^1.1.1" - "get-intrinsic" "^1.0.2" - -"chalk@^4.0.0": - "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"class-validator@^0.13.1", "class-validator@>=0.12.0": - "integrity" "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==" - "resolved" "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz" - "version" "0.13.2" - dependencies: - "libphonenumber-js" "^1.9.43" - "validator" "^13.7.0" - -"color-convert@^1.9.3": - "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - "version" "1.9.3" - dependencies: - "color-name" "1.1.3" - -"color-convert@^2.0.1": - "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "color-name" "~1.1.4" - -"color-name@^1.0.0", "color-name@~1.1.4": - "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - "version" "1.1.4" - -"color-name@1.1.3": - "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"color-string@^1.6.0": - "integrity" "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==" - "resolved" "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" - "version" "1.9.1" - dependencies: - "color-name" "^1.0.0" - "simple-swizzle" "^0.2.2" - -"color@^3.1.3": - "integrity" "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==" - "resolved" "https://registry.npmjs.org/color/-/color-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "color-convert" "^1.9.3" - "color-string" "^1.6.0" - -"colorspace@1.1.x": - "integrity" "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==" - "resolved" "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz" - "version" "1.1.4" - dependencies: - "color" "^3.1.3" - "text-hex" "1.0.x" - -"concat-map@0.0.1": - "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - "version" "0.0.1" - -"content-disposition@0.5.4": - "integrity" "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" - "resolved" "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - "version" "0.5.4" - dependencies: - "safe-buffer" "5.2.1" - -"content-type@~1.0.4": - "integrity" "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - "resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - "version" "1.0.4" - -"cookie-signature@1.0.6": - "integrity" "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - "version" "1.0.6" - -"cookie@0.5.0": - "integrity" "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - "version" "0.5.0" - -"create-require@^1.1.0": - "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - "version" "1.1.1" - -"debug@2.6.9": - "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" - "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - "version" "2.6.9" - dependencies: - "ms" "2.0.0" - -"deep-equal@^2.0.5": - "integrity" "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==" - "resolved" "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz" - "version" "2.0.5" - dependencies: - "call-bind" "^1.0.0" - "es-get-iterator" "^1.1.1" - "get-intrinsic" "^1.0.1" - "is-arguments" "^1.0.4" - "is-date-object" "^1.0.2" - "is-regex" "^1.1.1" - "isarray" "^2.0.5" - "object-is" "^1.1.4" - "object-keys" "^1.1.1" - "object.assign" "^4.1.2" - "regexp.prototype.flags" "^1.3.0" - "side-channel" "^1.0.3" - "which-boxed-primitive" "^1.0.1" - "which-collection" "^1.0.1" - "which-typed-array" "^1.1.2" - -"define-properties@^1.1.3", "define-properties@^1.1.4": - "integrity" "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==" - "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" - "version" "1.1.4" - dependencies: - "has-property-descriptors" "^1.0.0" - "object-keys" "^1.1.1" - -"defined@^1.0.0": - "integrity" "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" - "resolved" "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" - "version" "1.0.0" - -"depd@2.0.0": - "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - "version" "2.0.0" - -"destroy@1.2.0": - "integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" - "version" "1.2.0" - -"diff-sequences@^26.6.2": - "integrity" "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" - "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz" - "version" "26.6.2" - -"diff@^4.0.1": - "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - "version" "4.0.2" - -"divide-bigint@^1.0.4": - "integrity" "sha512-4BuHUgA1+iICOm6JZlourP3Zo/EQHh42/cSHP2hhoVGmgp6Pd1eJ8wt9c8v4gGfy8vBUFhQoO+BrZ90vuaugyg==" - "resolved" "https://registry.npmjs.org/divide-bigint/-/divide-bigint-1.0.4.tgz" - "version" "1.0.4" - -"dotignore@^0.1.2": - "integrity" "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==" - "resolved" "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz" - "version" "0.1.2" - dependencies: - "minimatch" "^3.0.4" - -"ee-first@1.1.1": - "integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - "version" "1.1.1" - -"emittery@^1.0.1": - "integrity" "sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==" - "resolved" "https://registry.npmjs.org/emittery/-/emittery-1.0.1.tgz" - "version" "1.0.1" - -"enabled@2.0.x": - "integrity" "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - "resolved" "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz" - "version" "2.0.0" - -"encodeurl@~1.0.2": - "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - "version" "1.0.2" - -"es-abstract@^1.19.0", "es-abstract@^1.19.5", "es-abstract@^1.20.0": - "integrity" "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==" - "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz" - "version" "1.20.1" - dependencies: - "call-bind" "^1.0.2" - "es-to-primitive" "^1.2.1" - "function-bind" "^1.1.1" - "function.prototype.name" "^1.1.5" - "get-intrinsic" "^1.1.1" - "get-symbol-description" "^1.0.0" - "has" "^1.0.3" - "has-property-descriptors" "^1.0.0" - "has-symbols" "^1.0.3" - "internal-slot" "^1.0.3" - "is-callable" "^1.2.4" - "is-negative-zero" "^2.0.2" - "is-regex" "^1.1.4" - "is-shared-array-buffer" "^1.0.2" - "is-string" "^1.0.7" - "is-weakref" "^1.0.2" - "object-inspect" "^1.12.0" - "object-keys" "^1.1.1" - "object.assign" "^4.1.2" - "regexp.prototype.flags" "^1.4.3" - "string.prototype.trimend" "^1.0.5" - "string.prototype.trimstart" "^1.0.5" - "unbox-primitive" "^1.0.2" - -"es-get-iterator@^1.1.1": - "integrity" "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==" - "resolved" "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.0" - "has-symbols" "^1.0.1" - "is-arguments" "^1.1.0" - "is-map" "^2.0.2" - "is-set" "^2.0.2" - "is-string" "^1.0.5" - "isarray" "^2.0.5" - -"es-to-primitive@^1.2.1": - "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" - "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - "version" "1.2.1" - dependencies: - "is-callable" "^1.1.4" - "is-date-object" "^1.0.1" - "is-symbol" "^1.0.2" - -"escape-html@~1.0.3": - "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - "version" "1.0.3" - -"etag@~1.8.1": - "integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - "version" "1.8.1" - -"express@^4.18.1": - "integrity" "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==" - "resolved" "https://registry.npmjs.org/express/-/express-4.18.1.tgz" - "version" "4.18.1" - dependencies: - "accepts" "~1.3.8" - "array-flatten" "1.1.1" - "body-parser" "1.20.0" - "content-disposition" "0.5.4" - "content-type" "~1.0.4" - "cookie" "0.5.0" - "cookie-signature" "1.0.6" - "debug" "2.6.9" - "depd" "2.0.0" - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "etag" "~1.8.1" - "finalhandler" "1.2.0" - "fresh" "0.5.2" - "http-errors" "2.0.0" - "merge-descriptors" "1.0.1" - "methods" "~1.1.2" - "on-finished" "2.4.1" - "parseurl" "~1.3.3" - "path-to-regexp" "0.1.7" - "proxy-addr" "~2.0.7" - "qs" "6.10.3" - "range-parser" "~1.2.1" - "safe-buffer" "5.2.1" - "send" "0.18.0" - "serve-static" "1.15.0" - "setprototypeof" "1.2.0" - "statuses" "2.0.1" - "type-is" "~1.6.18" - "utils-merge" "1.0.1" - "vary" "~1.1.2" - -"faker@5.5.3": - "integrity" "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==" - "resolved" "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz" - "version" "5.5.3" - -"fecha@^4.2.0": - "integrity" "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - "resolved" "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz" - "version" "4.2.3" - -"finalhandler@1.2.0": - "integrity" "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==" - "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - "version" "1.2.0" - dependencies: - "debug" "2.6.9" - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "on-finished" "2.4.1" - "parseurl" "~1.3.3" - "statuses" "2.0.1" - "unpipe" "~1.0.0" - -"fn.name@1.x.x": - "integrity" "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - "resolved" "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz" - "version" "1.1.0" - -"for-each@^0.3.3": - "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" - "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - "version" "0.3.3" - dependencies: - "is-callable" "^1.1.3" - -"forwarded@0.2.0": - "integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - "version" "0.2.0" - -"fresh@0.5.2": - "integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - "version" "0.5.2" - -"fs.realpath@^1.0.0": - "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - "version" "1.0.0" - -"function-bind@^1.1.1": - "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - "version" "1.1.1" - -"function.prototype.name@^1.1.5": - "integrity" "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==" - "resolved" "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" - "version" "1.1.5" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - "es-abstract" "^1.19.0" - "functions-have-names" "^1.2.2" - -"functions-have-names@^1.2.2": - "integrity" "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" - "version" "1.2.3" - -"get-intrinsic@^1.0.1", "get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1": - "integrity" "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==" - "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "function-bind" "^1.1.1" - "has" "^1.0.3" - "has-symbols" "^1.0.3" - -"get-package-type@^0.1.0": - "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - "resolved" "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - "version" "0.1.0" - -"get-port@^6.1.2": - "integrity" "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==" - "resolved" "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz" - "version" "6.1.2" - -"get-symbol-description@^1.0.0": - "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" - "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.1" - -"glob@^7.1.6", "glob@^7.2.0": - "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - "version" "7.2.3" - 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" - -"graphql-query-complexity@^0.7.0": - "integrity" "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==" - "resolved" "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz" - "version" "0.7.2" - dependencies: - "lodash.get" "^4.4.2" - -"graphql-subscriptions@^1.1.0": - "integrity" "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==" - "resolved" "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz" - "version" "1.2.1" - dependencies: - "iterall" "^1.3.0" - -"graphql-tag@^2.12.6": - "integrity" "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==" - "resolved" "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz" - "version" "2.12.6" - dependencies: - "tslib" "^2.1.0" - -"graphql@^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^15.3.0", "graphql@^15.7.2": - "integrity" "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" - "resolved" "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" - "version" "15.8.0" - -"has-bigints@^1.0.1", "has-bigints@^1.0.2": - "integrity" "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" - "version" "1.0.2" - -"has-dynamic-import@^2.0.1": - "integrity" "sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ==" - "resolved" "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.1" - -"has-flag@^4.0.0": - "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - "version" "4.0.0" - -"has-property-descriptors@^1.0.0": - "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" - "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "get-intrinsic" "^1.1.1" - -"has-symbols@^1.0.1", "has-symbols@^1.0.2", "has-symbols@^1.0.3": - "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - "version" "1.0.3" - -"has-tostringtag@^1.0.0": - "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" - "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "has-symbols" "^1.0.2" - -"has@^1.0.3": - "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" - "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "function-bind" "^1.1.1" - -"hoist-non-react-statics@^3.3.2": - "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==" - "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" - "version" "3.3.2" - dependencies: - "react-is" "^16.7.0" - -"http-errors@2.0.0": - "integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==" - "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "depd" "2.0.0" - "inherits" "2.0.4" - "setprototypeof" "1.2.0" - "statuses" "2.0.1" - "toidentifier" "1.0.1" - -"iconv-lite@0.4.24": - "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" - "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - "version" "0.4.24" - dependencies: - "safer-buffer" ">= 2.1.2 < 3" - -"inflight@^1.0.4": - "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" - "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - "version" "1.0.6" + version "0.3.2" + resolved "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz" + integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== + dependencies: + tslib "^2.3.0" + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + +ansi-regex@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array.prototype.every@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.3.tgz" + integrity sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + is-string "^1.0.7" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +b4a@^1.0.1: + version "1.6.0" + resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.0.tgz" + integrity sha512-fsTxXxj1081Yq5MOQ06gZ5+e2QcSyP2U6NofdOWyq+lrNI4IjkZ+fLVmoQ6uUCiNg1NWePMMVq93vOTdbJmErw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +blake2b-wasm@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz" + integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== + dependencies: + b4a "^1.0.1" + nanoassert "^2.0.0" + +blake2b@^2.1.3: + version "2.1.4" + resolved "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz" + integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== + dependencies: + blake2b-wasm "^2.4.0" + nanoassert "^2.0.0" + +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +class-validator@^0.13.1: + version "0.13.2" + resolved "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz" + integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== + dependencies: + libphonenumber-js "^1.9.43" + validator "^13.7.0" + +color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +deep-equal@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz" + integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== + dependencies: + call-bind "^1.0.0" + es-get-iterator "^1.1.1" + get-intrinsic "^1.0.1" + is-arguments "^1.0.4" + is-date-object "^1.0.2" + is-regex "^1.1.1" + isarray "^2.0.5" + object-is "^1.1.4" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.3" + which-boxed-primitive "^1.0.1" + which-collection "^1.0.1" + which-typed-array "^1.1.2" + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" + integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +divide-bigint@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/divide-bigint/-/divide-bigint-1.0.4.tgz" + integrity sha512-4BuHUgA1+iICOm6JZlourP3Zo/EQHh42/cSHP2hhoVGmgp6Pd1eJ8wt9c8v4gGfy8vBUFhQoO+BrZ90vuaugyg== + +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +emittery@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-1.0.1.tgz" + integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-get-iterator@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +express@^4.18.1: + version "4.18.1" + resolved "https://registry.npmjs.org/express/-/express-4.18.1.tgz" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.0" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.10.3" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +faker@5.5.3: + version "5.5.3" + resolved "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz" + integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob@^7.1.6, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +graphql-query-complexity@^0.7.0: + version "0.7.2" + resolved "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz" + integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== + dependencies: + lodash.get "^4.4.2" + +graphql-subscriptions@^1.1.0: + version "1.2.1" + resolved "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz" + integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== + dependencies: + iterall "^1.3.0" + +graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql@^15.7.2: + version "15.8.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" + integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: - "once" "^1.3.0" - "wrappy" "1" - -"inherits@^2.0.3", "inherits@^2.0.4", "inherits@2", "inherits@2.0.4": - "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - "version" "2.0.4" - -"internal-slot@^1.0.3": - "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==" - "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "get-intrinsic" "^1.1.0" - "has" "^1.0.3" - "side-channel" "^1.0.4" - -"ipaddr.js@1.9.1": - "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - "version" "1.9.1" - -"is-arguments@^1.0.4", "is-arguments@^1.1.0": - "integrity" "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==" - "resolved" "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" - "version" "1.1.1" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.0.4, is-arguments@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" -"is-arrayish@^0.3.1": - "integrity" "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" - "version" "0.3.2" +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== -"is-bigint@^1.0.1": - "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" - "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "has-bigints" "^1.0.1" - -"is-boolean-object@^1.1.0": - "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" - "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" - -"is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.4": - "integrity" "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" - "version" "1.2.4" - -"is-core-module@^2.9.0": - "integrity" "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==" - "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" - "version" "2.9.0" - dependencies: - "has" "^1.0.3" - -"is-date-object@^1.0.1", "is-date-object@^1.0.2": - "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" - "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-map@^2.0.1", "is-map@^2.0.2": - "integrity" "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" - "resolved" "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz" - "version" "2.0.2" - -"is-negative-zero@^2.0.2": - "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - "version" "2.0.2" - -"is-number-object@^1.0.4": - "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==" - "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" - "version" "1.0.7" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-promise@^2.1.0": - "integrity" "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - "resolved" "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" - "version" "2.2.2" - -"is-regex@^1.1.1", "is-regex@^1.1.4": - "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" - "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - "version" "1.1.4" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" - -"is-set@^2.0.1", "is-set@^2.0.2": - "integrity" "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" - "resolved" "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz" - "version" "2.0.2" - -"is-shared-array-buffer@^1.0.2": - "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==" - "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "call-bind" "^1.0.2" - -"is-stream@^2.0.0": - "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - "version" "2.0.1" - -"is-string@^1.0.5", "is-string@^1.0.7": - "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" - "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - "version" "1.0.7" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-symbol@^1.0.2", "is-symbol@^1.0.3": - "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" - "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "has-symbols" "^1.0.2" - -"is-typed-array@^1.1.9": - "integrity" "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==" - "resolved" "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz" - "version" "1.1.9" - dependencies: - "available-typed-arrays" "^1.0.5" - "call-bind" "^1.0.2" - "es-abstract" "^1.20.0" - "for-each" "^0.3.3" - "has-tostringtag" "^1.0.0" - -"is-weakmap@^2.0.1": - "integrity" "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" - "resolved" "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz" - "version" "2.0.1" - -"is-weakref@^1.0.2": - "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==" - "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "call-bind" "^1.0.2" - -"is-weakset@^2.0.1": - "integrity" "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==" - "resolved" "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.1" - -"isarray@^2.0.5": - "integrity" "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" - "version" "2.0.5" - -"isomorphic-ws@^5.0.0": - "integrity" "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==" - "resolved" "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz" - "version" "5.0.0" - -"iterall@^1.3.0": - "integrity" "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - "resolved" "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz" - "version" "1.3.0" - -"jest-diff@^26.0.0": - "integrity" "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==" - "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz" - "version" "26.6.2" - dependencies: - "chalk" "^4.0.0" - "diff-sequences" "^26.6.2" - "jest-get-type" "^26.3.0" - "pretty-format" "^26.6.2" - -"jest-get-type@^26.3.0": - "integrity" "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" - "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz" - "version" "26.3.0" - -"js-base64@^3.7.3": - "integrity" "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" - "resolved" "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz" - "version" "3.7.5" +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-core-module@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.2: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.1, is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +iterall@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +js-base64@^3.7.3: + version "3.7.5" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== "js-tokens@^3.0.0 || ^4.0.0": - "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - "version" "4.0.0" - -"kuler@^2.0.0": - "integrity" "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - "resolved" "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz" - "version" "2.0.0" - -"libphonenumber-js@^1.9.43": - "integrity" "sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q==" - "resolved" "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz" - "version" "1.10.13" - -"lodash-es@^4.17.21": - "integrity" "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - "resolved" "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" - "version" "4.17.21" - -"lodash.get@^4.4.2": - "integrity" "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" - "resolved" "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" - "version" "4.4.2" - -"lodash@^4.17.19", "lodash@^4.17.21": - "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - "version" "4.17.21" - -"logform@^2.3.2", "logform@^2.4.0": - "integrity" "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==" - "resolved" "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz" - "version" "2.5.1" + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +libphonenumber-js@^1.9.43: + version "1.10.13" + resolved "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz" + integrity sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q== + +libsodium-wrappers@^0.7.11: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" + integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== + dependencies: + libsodium "^0.7.13" + +libsodium@^0.7.13: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" + integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.5.1" + resolved "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz" + integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== dependencies: "@colors/colors" "1.5.0" "@types/triple-beam" "^1.3.2" - "fecha" "^4.2.0" - "ms" "^2.1.1" - "safe-stable-stringify" "^2.3.1" - "triple-beam" "^1.3.0" - -"loose-envify@^1.4.0": - "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" - "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "js-tokens" "^3.0.0 || ^4.0.0" - -"lru-cache@^6.0.0": - "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" - "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "yallist" "^4.0.0" - -"make-error@^1.1.1": - "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - "version" "1.3.6" - -"media-typer@0.3.0": - "integrity" "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - "version" "0.3.0" - -"merge-descriptors@1.0.1": - "integrity" "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - "version" "1.0.1" - -"methods@~1.1.2": - "integrity" "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - "resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - "version" "1.1.2" - -"mime-db@1.52.0": - "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - "version" "1.52.0" - -"mime-types@~2.1.24", "mime-types@~2.1.34": - "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" - "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - "version" "2.1.35" - dependencies: - "mime-db" "1.52.0" - -"mime@1.6.0": - "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - "version" "1.6.0" - -"mimic-fn@^1.0.0": - "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" - "version" "1.2.0" - -"minimatch@^3.0.4", "minimatch@^3.1.1": - "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - "version" "3.1.2" - dependencies: - "brace-expansion" "^1.1.7" - -"minimist@^1.2.6": - "integrity" "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" - "version" "1.2.6" - -"ms@^2.1.1", "ms@2.1.3": - "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - "version" "2.1.3" - -"ms@2.0.0": - "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - "version" "2.0.0" - -"nanoassert@^2.0.0": - "integrity" "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" - "resolved" "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz" - "version" "2.0.0" - -"negotiator@0.6.3": - "integrity" "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - "version" "0.6.3" - -"object-assign@^4.1.1": - "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - "version" "4.1.1" - -"object-inspect@^1.12.0", "object-inspect@^1.9.0": - "integrity" "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" - "version" "1.12.2" - -"object-is@^1.1.4", "object-is@^1.1.5": - "integrity" "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==" - "resolved" "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" - "version" "1.1.5" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - -"object-keys@^1.1.1": - "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - "version" "1.1.1" - -"object.assign@^4.1.2": - "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" - "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "call-bind" "^1.0.0" - "define-properties" "^1.1.3" - "has-symbols" "^1.0.1" - "object-keys" "^1.1.1" - -"on-finished@2.4.1": - "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" - "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" - "version" "2.4.1" - dependencies: - "ee-first" "1.1.1" - -"once@^1.3.0": - "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" - "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "wrappy" "1" - -"one-time@^1.0.0": - "integrity" "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==" - "resolved" "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "fn.name" "1.x.x" - -"onetime@^2.0.0": - "integrity" "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==" - "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "mimic-fn" "^1.0.0" - -"optimism@^0.16.1": - "integrity" "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==" - "resolved" "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz" - "version" "0.16.1" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoassert@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz" + integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-is@^1.1.4, object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +optimism@^0.16.1: + version "0.16.1" + resolved "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz" + integrity sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg== dependencies: "@wry/context" "^0.6.0" "@wry/trie" "^0.3.0" -"parseurl@~1.3.3": - "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - "version" "1.3.3" +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -"path-is-absolute@^1.0.0": - "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - "version" "1.0.1" +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -"path-parse@^1.0.7": - "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - "version" "1.0.7" +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -"path-to-regexp@0.1.7": - "integrity" "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - "version" "0.1.7" +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== -"pretty-format@^26.0.0", "pretty-format@^26.6.2": - "integrity" "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==" - "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" - "version" "26.6.2" +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== dependencies: "@jest/types" "^26.6.2" - "ansi-regex" "^5.0.0" - "ansi-styles" "^4.0.0" - "react-is" "^17.0.1" - -"prop-types@^15.7.2": - "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" - "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" - "version" "15.8.1" - dependencies: - "loose-envify" "^1.4.0" - "object-assign" "^4.1.1" - "react-is" "^16.13.1" - -"proxy-addr@~2.0.7": - "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" - "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - "version" "2.0.7" - dependencies: - "forwarded" "0.2.0" - "ipaddr.js" "1.9.1" - -"qs@6.10.3": - "integrity" "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==" - "resolved" "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" - "version" "6.10.3" - dependencies: - "side-channel" "^1.0.4" - -"range-parser@~1.2.1": - "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - "version" "1.2.1" - -"raw-body@2.5.1": - "integrity" "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==" - "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - "version" "2.5.1" - dependencies: - "bytes" "3.1.2" - "http-errors" "2.0.0" - "iconv-lite" "0.4.24" - "unpipe" "1.0.0" - -"react-is@^16.13.1", "react-is@^16.7.0": - "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - "version" "16.13.1" - -"react-is@^17.0.1": - "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - "version" "17.0.2" - -"readable-stream@^3.4.0", "readable-stream@^3.6.0": - "integrity" "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz" - "version" "3.6.1" - dependencies: - "inherits" "^2.0.3" - "string_decoder" "^1.1.1" - "util-deprecate" "^1.0.1" - -"reflect-metadata@^0.1.13": - "integrity" "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - "resolved" "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" - "version" "0.1.13" - -"regexp.prototype.flags@^1.3.0", "regexp.prototype.flags@^1.4.3": - "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==" - "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" - "version" "1.4.3" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - "functions-have-names" "^1.2.2" - -"resolve@^2.0.0-next.3": - "integrity" "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==" - "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz" - "version" "2.0.0-next.4" - dependencies: - "is-core-module" "^2.9.0" - "path-parse" "^1.0.7" - "supports-preserve-symlinks-flag" "^1.0.0" - -"resumer@^0.0.0": - "integrity" "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==" - "resolved" "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz" - "version" "0.0.0" - dependencies: - "through" "~2.3.4" - -"safe-buffer@~5.2.0", "safe-buffer@5.2.1": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" - -"safe-stable-stringify@^2.3.1": - "integrity" "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==" - "resolved" "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz" - "version" "2.4.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +qs@6.10.3: + version "6.10.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.1" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz" + integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +resolve@^2.0.0-next.3: + version "2.0.0-next.4" + resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resumer@^0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz" + integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== + dependencies: + through "~2.3.4" + +safe-buffer@5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-stable-stringify@^2.3.1: + version "2.4.2" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz" + integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== "safer-buffer@>= 2.1.2 < 3": - "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - "version" "2.1.2" - -"semver@^7.3.2": - "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" - "version" "7.3.7" - dependencies: - "lru-cache" "^6.0.0" - -"send@0.18.0": - "integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" - "resolved" "https://registry.npmjs.org/send/-/send-0.18.0.tgz" - "version" "0.18.0" - dependencies: - "debug" "2.6.9" - "depd" "2.0.0" - "destroy" "1.2.0" - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "etag" "~1.8.1" - "fresh" "0.5.2" - "http-errors" "2.0.0" - "mime" "1.6.0" - "ms" "2.1.3" - "on-finished" "2.4.1" - "range-parser" "~1.2.1" - "statuses" "2.0.1" - -"serve-static@1.15.0": - "integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==" - "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - "version" "1.15.0" - dependencies: - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "parseurl" "~1.3.3" - "send" "0.18.0" - -"setprototypeof@1.2.0": - "integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - "version" "1.2.0" - -"side-channel@^1.0.3", "side-channel@^1.0.4": - "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" - "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "call-bind" "^1.0.0" - "get-intrinsic" "^1.0.2" - "object-inspect" "^1.9.0" - -"simple-swizzle@^0.2.2": - "integrity" "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==" - "resolved" "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" - "version" "0.2.2" - dependencies: - "is-arrayish" "^0.3.1" - -"stack-trace@0.0.x": - "integrity" "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" - "resolved" "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" - "version" "0.0.10" - -"statuses@2.0.1": - "integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - "resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - "version" "2.0.1" - -"string_decoder@^1.1.1": - "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" - "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - "version" "1.3.0" - dependencies: - "safe-buffer" "~5.2.0" - -"string.prototype.trim@^1.2.5": - "integrity" "sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ==" - "resolved" "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz" - "version" "1.2.6" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.4" - "es-abstract" "^1.19.5" - -"string.prototype.trimend@^1.0.5": - "integrity" "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==" - "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.4" - "es-abstract" "^1.19.5" - -"string.prototype.trimstart@^1.0.5": - "integrity" "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==" - "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.4" - "es-abstract" "^1.19.5" - -"supports-color@^7.1.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "has-flag" "^4.0.0" - -"supports-preserve-symlinks-flag@^1.0.0": - "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - "version" "1.0.0" - -"symbol-observable@^4.0.0": - "integrity" "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" - "resolved" "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz" - "version" "4.0.0" - -"tape-promise@^4.0.0": - "integrity" "sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw==" - "resolved" "https://registry.npmjs.org/tape-promise/-/tape-promise-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "is-promise" "^2.1.0" - "onetime" "^2.0.0" - -"tape@^5.5.3": - "integrity" "sha512-hPBJZBL9S7bH9vECg/KSM24slGYV589jJr4dmtiJrLD71AL66+8o4b9HdZazXZyvnilqA7eE8z5/flKiy0KsBg==" - "resolved" "https://registry.npmjs.org/tape/-/tape-5.5.3.tgz" - "version" "5.5.3" - dependencies: - "array.prototype.every" "^1.1.3" - "call-bind" "^1.0.2" - "deep-equal" "^2.0.5" - "defined" "^1.0.0" - "dotignore" "^0.1.2" - "for-each" "^0.3.3" - "get-package-type" "^0.1.0" - "glob" "^7.2.0" - "has" "^1.0.3" - "has-dynamic-import" "^2.0.1" - "inherits" "^2.0.4" - "is-regex" "^1.1.4" - "minimist" "^1.2.6" - "object-inspect" "^1.12.0" - "object-is" "^1.1.5" - "object-keys" "^1.1.1" - "object.assign" "^4.1.2" - "resolve" "^2.0.0-next.3" - "resumer" "^0.0.0" - "string.prototype.trim" "^1.2.5" - "through" "^2.3.8" - -"text-hex@1.0.x": - "integrity" "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - "resolved" "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz" - "version" "1.0.0" - -"through@^2.3.8", "through@~2.3.4": - "integrity" "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - "resolved" "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - "version" "2.3.8" - -"toidentifier@1.0.1": - "integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - "version" "1.0.1" - -"triple-beam@^1.3.0": - "integrity" "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - "resolved" "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz" - "version" "1.3.0" - -"ts-invariant@^0.10.3": - "integrity" "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==" - "resolved" "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz" - "version" "0.10.3" - dependencies: - "tslib" "^2.1.0" - -"ts-node@^10.8.0": - "integrity" "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==" - "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" - "version" "10.9.1" + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver@^7.3.2: + version "7.3.7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +side-channel@^1.0.3, side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +string.prototype.trim@^1.2.5: + version "1.2.6" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz" + integrity sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + 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== + +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + +tape-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/tape-promise/-/tape-promise-4.0.0.tgz" + integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== + dependencies: + is-promise "^2.1.0" + onetime "^2.0.0" + +tape@^5.5.3: + version "5.5.3" + resolved "https://registry.npmjs.org/tape/-/tape-5.5.3.tgz" + integrity sha512-hPBJZBL9S7bH9vECg/KSM24slGYV589jJr4dmtiJrLD71AL66+8o4b9HdZazXZyvnilqA7eE8z5/flKiy0KsBg== + dependencies: + array.prototype.every "^1.1.3" + call-bind "^1.0.2" + deep-equal "^2.0.5" + defined "^1.0.0" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.0" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.6" + object-inspect "^1.12.0" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.2" + resolve "^2.0.0-next.3" + resumer "^0.0.0" + string.prototype.trim "^1.2.5" + through "^2.3.8" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +through@^2.3.8, through@~2.3.4: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== + dependencies: + tslib "^2.1.0" + +ts-node@^10.8.0: + version "10.9.1" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" "@tsconfig/node12" "^1.0.7" "@tsconfig/node14" "^1.0.0" "@tsconfig/node16" "^1.0.2" - "acorn" "^8.4.1" - "acorn-walk" "^8.1.1" - "arg" "^4.1.0" - "create-require" "^1.1.0" - "diff" "^4.0.1" - "make-error" "^1.1.1" - "v8-compile-cache-lib" "^3.0.1" - "yn" "3.1.1" - -"tslib@^2.0.1", "tslib@^2.1.0", "tslib@^2.3.0": - "integrity" "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" - "version" "2.4.0" - -"tweetnacl@^1.0.3": - "integrity" "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" - "version" "1.0.3" - -"type-graphql@^1.1.1": - "integrity" "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==" - "resolved" "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz" - "version" "1.1.1" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.0: + version "2.4.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +type-graphql@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz" + integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== dependencies: "@types/glob" "^7.1.3" - "@types/node" "*" + "@types/node" "^14.11.2" "@types/semver" "^7.3.3" - "glob" "^7.1.6" - "graphql-query-complexity" "^0.7.0" - "graphql-subscriptions" "^1.1.0" - "semver" "^7.3.2" - "tslib" "^2.0.1" - -"type-is@~1.6.18": - "integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" - "resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - "version" "1.6.18" - dependencies: - "media-typer" "0.3.0" - "mime-types" "~2.1.24" - -"typescript@^4.2.4", "typescript@>=2.7": - "integrity" "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" - "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" - "version" "4.7.4" - -"unbox-primitive@^1.0.2": - "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" - "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "call-bind" "^1.0.2" - "has-bigints" "^1.0.2" - "has-symbols" "^1.0.3" - "which-boxed-primitive" "^1.0.2" - -"unpipe@~1.0.0", "unpipe@1.0.0": - "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - "version" "1.0.0" - -"util-deprecate@^1.0.1": - "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - "version" "1.0.2" - -"utils-merge@1.0.1": - "integrity" "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - "version" "1.0.1" - -"uuid@^8.3.2": - "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - "version" "8.3.2" - -"v8-compile-cache-lib@^3.0.1": - "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - "resolved" "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" - "version" "3.0.1" - -"validator@^13.7.0": - "integrity" "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" - "resolved" "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz" - "version" "13.7.0" - -"vary@~1.1.2": - "integrity" "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - "version" "1.1.2" - -"which-boxed-primitive@^1.0.1", "which-boxed-primitive@^1.0.2": - "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" - "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - "version" "1.0.2" - 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" - -"which-collection@^1.0.1": - "integrity" "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==" - "resolved" "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "is-map" "^2.0.1" - "is-set" "^2.0.1" - "is-weakmap" "^2.0.1" - "is-weakset" "^2.0.1" - -"which-typed-array@^1.1.2": - "integrity" "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==" - "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz" - "version" "1.1.8" - dependencies: - "available-typed-arrays" "^1.0.5" - "call-bind" "^1.0.2" - "es-abstract" "^1.20.0" - "for-each" "^0.3.3" - "has-tostringtag" "^1.0.0" - "is-typed-array" "^1.1.9" - -"winston-transport@^4.5.0": - "integrity" "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==" - "resolved" "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz" - "version" "4.5.0" - dependencies: - "logform" "^2.3.2" - "readable-stream" "^3.6.0" - "triple-beam" "^1.3.0" - -"winston@^3.8.2": - "integrity" "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==" - "resolved" "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz" - "version" "3.8.2" + glob "^7.1.6" + graphql-query-complexity "^0.7.0" + graphql-subscriptions "^1.1.0" + semver "^7.3.2" + tslib "^2.0.1" + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@^4.2.4: + version "4.7.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +validator@^13.7.0: + version "13.7.0" + resolved "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz" + integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + 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" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" + +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.8.2: + version "3.8.2" + resolved "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz" + integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew== dependencies: "@colors/colors" "1.5.0" "@dabh/diagnostics" "^2.0.2" - "async" "^3.2.3" - "is-stream" "^2.0.0" - "logform" "^2.4.0" - "one-time" "^1.0.0" - "readable-stream" "^3.4.0" - "safe-stable-stringify" "^2.3.1" - "stack-trace" "0.0.x" - "triple-beam" "^1.3.0" - "winston-transport" "^4.5.0" - -"wrappy@1": - "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - "version" "1.0.2" - -"ws@*", "ws@^8.11.0": - "integrity" "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==" - "resolved" "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz" - "version" "8.12.1" - -"yallist@^4.0.0": - "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - "version" "4.0.0" - -"yn@3.1.1": - "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - "version" "3.1.1" - -"zen-observable-ts@^1.2.5": - "integrity" "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==" - "resolved" "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz" - "version" "1.2.5" - dependencies: - "zen-observable" "0.8.15" - -"zen-observable@0.8.15": - "integrity" "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - "resolved" "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz" - "version" "0.8.15" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.11.0: + version "8.12.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz" + integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew== + +ws@^8.13.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" + integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15: + version "0.8.15" + resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/bootstrap-languages/p-diff-sync/index.ts b/bootstrap-languages/p-diff-sync/index.ts index 054b540a3..1f57856ad 100644 --- a/bootstrap-languages/p-diff-sync/index.ts +++ b/bootstrap-languages/p-diff-sync/index.ts @@ -1,13 +1,13 @@ -import type { Address, Language, Interaction, HolochainLanguageDelegate, LanguageContext, AgentService } from "@perspect3vism/ad4m"; -import { LinkAdapter } from "./linksAdapter"; -import { TelepresenceAdapterImplementation } from "./telepresenceAdapter"; -import { DNA, DNA_NICK, ZOME_NAME } from "./dna"; +import type { Address, Language, Interaction, HolochainLanguageDelegate, LanguageContext, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import { LinkAdapter } from "./linksAdapter.ts"; +import { TelepresenceAdapterImplementation } from "./telepresenceAdapter.ts"; +import { DNA, DNA_NICK, ZOME_NAME } from "./build/dna.js"; function interactions(expression: Address): Interaction[] { return []; } -//@ad4m-template-variable +//!@ad4m-template-variable const name = "perspective-diff-sync"; export default async function create(context: LanguageContext): Promise { @@ -37,7 +37,7 @@ export default async function create(context: LanguageContext): Promise = new Map(); - peersMutex: Mutex = new Mutex(); - currentRevisionMutex: Mutex = new Mutex(); + generalMutex: Mutex = withTimeout(new Mutex(), 10000, new Error('PerspectiveDiffSync: generalMutex timeout')); me: DID gossipLogCount: number = 0; myCurrentRevision: Buffer | null = null; @@ -34,23 +36,30 @@ export class LinkAdapter implements LinkSyncAdapter { } async others(): Promise { + //@ts-ignore return await this.hcDna.call(DNA_NICK, ZOME_NAME, "get_others", null); } async currentRevision(): Promise { + //@ts-ignore let res = await this.hcDna.call(DNA_NICK, ZOME_NAME, "current_revision", null); return res as string; } async sync(): Promise { + //console.log("PerspectiveDiffSync.sync(); Getting lock"); + const release = await this.generalMutex.acquire(); + //console.log("PerspectiveDiffSync.sync(); Got lock"); try { - await this.currentRevisionMutex.lock(); + //@ts-ignore let current_revision = await this.hcDna.call(DNA_NICK, ZOME_NAME, "sync", null); if (current_revision && Buffer.isBuffer(current_revision)) { this.myCurrentRevision = current_revision; } + } catch (e) { + console.error("PerspectiveDiffSync.sync(); got error", e); } finally { - this.currentRevisionMutex.unlock(); + release(); } await this.gossip(); return new PerspectiveDiff() @@ -60,9 +69,8 @@ export class LinkAdapter implements LinkSyncAdapter { this.gossipLogCount += 1; let lostPeers: DID[] = []; + const release = await this.generalMutex.acquire(); try { - await this.peersMutex.lock(); - await this.currentRevisionMutex.lock(); this.peers.forEach( (peerInfo, peer) => { if (peerInfo.lastSeen.getTime() + 10000 < new Date().getTime()) { lostPeers.push(peer); @@ -107,19 +115,21 @@ export class LinkAdapter implements LinkSyncAdapter { }); } - function checkSyncState(callback: SyncStateChangeObserver) { + async function checkSyncState(callback: SyncStateChangeObserver) { if (sameRevisions.length > 0 || differentRevisions.length > 0) { if (sameRevisions.length <= differentRevisions.length) { - callback(PerspectiveState.LinkLanguageInstalledButNotSynced); + await callback(PerspectiveState.LinkLanguageInstalledButNotSynced); } else { - callback(PerspectiveState.Synced); + await callback(PerspectiveState.Synced); }; } } + //@ts-ignore generateRevisionStates(this.myCurrentRevision); - checkSyncState(this.syncStateChangeCallback); + //@ts-ignore + await checkSyncState(this.syncStateChangeCallback); for (const hash of Array.from(revisions)) { if(!hash) continue @@ -133,8 +143,10 @@ export class LinkAdapter implements LinkSyncAdapter { let myRevision = pullResult.current_revision; this.myCurrentRevision = myRevision; + //@ts-ignore generateRevisionStates(this.myCurrentRevision); - checkSyncState(this.syncStateChangeCallback); + //@ts-ignore + await checkSyncState(this.syncStateChangeCallback); } } } @@ -160,20 +172,24 @@ export class LinkAdapter implements LinkSyncAdapter { `); this.gossipLogCount = 0; } + } catch (e) { + console.error("PerspectiveDiffSync.gossip(); got error", e); } finally { - this.peersMutex.unlock(); - this.currentRevisionMutex.unlock(); + release(); } } async render(): Promise { + //@ts-ignore let res = await this.hcDna.call(DNA_NICK, ZOME_NAME, "render", null); return new Perspective(res.links); } async commit(diff: PerspectiveDiff): Promise { + //console.log("PerspectiveDiffSync.commit(); Getting lock"); + const release = await this.generalMutex.acquire(); try { - await this.currentRevisionMutex.lock(); + //console.log("PerspectiveDiffSync.commit(); Got lock"); let prep_diff = { additions: diff.additions.map((diff) => prepareLinkExpression(diff)), removals: diff.removals.map((diff) => prepareLinkExpression(diff)) @@ -183,8 +199,10 @@ export class LinkAdapter implements LinkSyncAdapter { this.myCurrentRevision = res; } return res as string; + } catch (e) { + console.error("PerspectiveDiffSync.commit(); got error", e); } finally { - this.currentRevisionMutex.unlock(); + release(); } } @@ -213,16 +231,18 @@ export class LinkAdapter implements LinkSyncAdapter { // broadcast_author: ${broadcast_author} // `) try { - await this.peersMutex.lock(); + //console.log("PerspectiveDiffSync.handleHolochainSignal: Getting lock"); + + //console.log("PerspectiveDiffSync.handleHolochainSignal: Got lock"); this.peers.set(broadcast_author, { currentRevision: reference_hash, lastSeen: new Date() }); - } finally { - this.peersMutex.unlock(); + } catch (e) { + console.error("PerspectiveDiffSync.handleHolochainSignal: got error", e); } } else { //console.log("PerspectiveDiffSync.handleHolochainSignal: received a signals from ourselves in fast_forward_signal or in a pull: ", signal.payload); //This signal only contains link data and no reference, and therefore came from us in a pull in fast_forward_signal if (this.linkCallback) { - this.linkCallback(signal.payload); + await this.linkCallback(signal.payload); } } } @@ -235,6 +255,7 @@ export class LinkAdapter implements LinkSyncAdapter { DNA_NICK, ZOME_NAME, "add_active_agent_link", + //@ts-ignore null ); } @@ -263,28 +284,3 @@ function prepareLinkExpression(link: LinkExpression): object { } return data; } - - -class Mutex { - private locked = false; - private waitingResolvers: (() => void)[] = []; - - async lock(): Promise { - if (this.locked) { - return new Promise((resolve) => { - this.waitingResolvers.push(resolve); - }); - } - this.locked = true; - } - - unlock(): void { - if (!this.locked) return; - if (this.waitingResolvers.length > 0) { - const resolve = this.waitingResolvers.shift(); - if (resolve) resolve(); - } else { - this.locked = false; - } - } -} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index 1346ce491..e10f1e6c7 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -1,16 +1,16 @@ { "name": "@perspect3vism/perspective-diff-sync", - "version": "0.5.1", + "version": "0.6.0", "description": "An AD4M language for syncing mutations to a share perspective", "main": "index.js", "scripts": { "build-dna": "cd hc-dna && ./build.sh && cd ..", "build": "run-script-os", - "build:linux": "yarn run build-dna && tsc && rollup -c", - "build:macos": "yarn run build-dna && tsc && rollup -c", - "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", - "build-lang": "tsc && rollup -c", - "dev": "tsc && rollup -c -w", + "build:linux": "yarn run build-dna && yarn run build-common", + "build:macos": "yarn run build-dna && yarn run build-common", + "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && yarn run build-common", + "rollup-dna": "rollup -c rollup.config.hc-dna.js", + "build-common": "yarn run rollup-dna && deno run --allow-all esbuild.ts", "integration-test": "node ../../test-runner/build/cli.js --test ./integration-test.js --bundle \"./build/bundle.js\" --meta '{\"name\":\"p-diff-sync\",\"description\":\"Holochain based language for sharing Perspectives\",\"sourceCodeLink\":\"https://github.com/perspect3vism/perspective-diff-sync\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'" }, "author": "", diff --git a/bootstrap-languages/p-diff-sync/rollup.config.js b/bootstrap-languages/p-diff-sync/rollup.config.hc-dna.js similarity index 94% rename from bootstrap-languages/p-diff-sync/rollup.config.js rename to bootstrap-languages/p-diff-sync/rollup.config.hc-dna.js index 24ba11ace..a1c1e1bbf 100644 --- a/bootstrap-languages/p-diff-sync/rollup.config.js +++ b/bootstrap-languages/p-diff-sync/rollup.config.hc-dna.js @@ -11,13 +11,13 @@ import dna from "@perspect3vism/rollup-plugin-dna"; const production = !process.env.ROLLUP_WATCH; export default { - input: "index.js", + input: "dna.js", external: [], output: { sourcemap: true, - format: "cjs", - name: "JuntoPerspective", - file: "build/bundle.js", + format: "esm", + name: "PDiffSyncLanguage", + file: "build/dna.js", interop: "esModule", globals: {}, }, diff --git a/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts b/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts index adec989a8..9ae096da6 100644 --- a/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts +++ b/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts @@ -1,5 +1,5 @@ -import type { TelepresenceAdapter, OnlineAgent, PerspectiveExpression, TelepresenceSignalCallback, HolochainLanguageDelegate, LanguageContext } from "@perspect3vism/ad4m"; -import { DNA_NICK, ZOME_NAME } from "./dna"; +import type { TelepresenceAdapter, OnlineAgent, PerspectiveExpression, TelepresenceSignalCallback, HolochainLanguageDelegate, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0";; +import { DNA_NICK, ZOME_NAME } from "./build/dna.js"; export class TelepresenceAdapterImplementation implements TelepresenceAdapter { hcDna: HolochainLanguageDelegate; @@ -14,6 +14,7 @@ export class TelepresenceAdapterImplementation implements TelepresenceAdapter { } async getOnlineAgents(): Promise { + //@ts-ignore const getActiveAgents = await this.hcDna.call(DNA_NICK, ZOME_NAME, "get_active_agents", null); let calls = []; for (const activeAgent of getActiveAgents) { diff --git a/bootstrap-languages/perspective-language/.gitignore b/bootstrap-languages/perspective-language/.gitignore index 75022ca18..22ce42e8b 100644 --- a/bootstrap-languages/perspective-language/.gitignore +++ b/bootstrap-languages/perspective-language/.gitignore @@ -4,4 +4,5 @@ node_modules build !rollup.config.js -!rollup.config.icons.js \ No newline at end of file +!rollup.config.icons.js +!rollup.config* \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/adapter.ts b/bootstrap-languages/perspective-language/adapter.ts index c368d4a2d..025267496 100644 --- a/bootstrap-languages/perspective-language/adapter.ts +++ b/bootstrap-languages/perspective-language/adapter.ts @@ -1,32 +1,29 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; -import { IpfsPutAdapter } from './putAdapter' -import { toString as uint8ArrayToString } from 'uint8arrays/to-string' -import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; -import type { IPFS } from "ipfs-core-types"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import { IpfsPutAdapter } from './putAdapter.ts' +// import { toString as uint8ArrayToString } from 'uint8arrays/to-string' +// import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; export default class Adapter implements ExpressionAdapter { - #IPFS: IPFS - putAdapter: PublicSharing constructor(context: LanguageContext) { - this.#IPFS = context.IPFS this.putAdapter = new IpfsPutAdapter(context) } async get(address: Address): Promise { - const cid = address.toString() + console.log("PerspectiveLanguage: Sorry language has not been implemented yet!"); + // const cid = address.toString() - const chunks = [] - // @ts-ignore - for await (const chunk of this.#IPFS.cat(cid)) { - chunks.push(chunk) - } + // const chunks = [] + // // @ts-ignore + // for await (const chunk of this.#IPFS.cat(cid)) { + // chunks.push(chunk) + // } - const fileString = uint8ArrayToString(uint8ArrayConcat(chunks)); - const fileJson = JSON.parse(fileString) - //pin file to help persistence - await this.#IPFS.pin.add(cid); - return fileJson + // const fileString = uint8ArrayToString(uint8ArrayConcat(chunks)); + // const fileJson = JSON.parse(fileString) + // //pin file to help persistence + // await this.#IPFS.pin.add(cid); + return null } } \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/esbuild.ts b/bootstrap-languages/perspective-language/esbuild.ts new file mode 100644 index 000000000..db829e7f3 --- /dev/null +++ b/bootstrap-languages/perspective-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'perspective.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/noteExpressionUI.ts b/bootstrap-languages/perspective-language/expressionUI.ts similarity index 82% rename from bootstrap-languages/perspective-language/noteExpressionUI.ts rename to bootstrap-languages/perspective-language/expressionUI.ts index 713f0542a..310d1852c 100644 --- a/bootstrap-languages/perspective-language/noteExpressionUI.ts +++ b/bootstrap-languages/perspective-language/expressionUI.ts @@ -2,7 +2,7 @@ import type { ExpressionUI } from "@perspect3vism/ad4m"; import Icon from './build/Icon.js' import ConstructorIcon from './build/ConstructorIcon.js' -export class NoteExpressionUI implements ExpressionUI { +export class UI implements ExpressionUI { icon(): string { return Icon } diff --git a/bootstrap-languages/perspective-language/index.ts b/bootstrap-languages/perspective-language/index.ts index 3a34f51af..f1bad9765 100644 --- a/bootstrap-languages/perspective-language/index.ts +++ b/bootstrap-languages/perspective-language/index.ts @@ -1,6 +1,6 @@ -import type { Address, Interaction, Agent, Language, LanguageContext } from "@perspect3vism/ad4m"; -import Adapter from './adapter' -import { NoteExpressionUI } from './noteExpressionUI' +import type { Address, Interaction, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import Adapter from './adapter.ts' +import { UI } from "./build/expressionUI.js"; function interactions(expression: Address): Interaction[] { return [] @@ -8,7 +8,7 @@ function interactions(expression: Address): Interaction[] { export default function create(context: LanguageContext): Language { const expressionAdapter = new Adapter(context) - const expressionUI = new NoteExpressionUI() + const expressionUI = new UI() return { name: 'perspective-language', diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index 2daee7330..7cc94986d 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -1,13 +1,14 @@ { "name": "@perspect3vism/perspective-language", - "version": "0.5.1", + "version": "0.6.0", "description": "An AD4M Language for perspective snapshot expressions stored on IPFS", "main": "index.js", "scripts": { "test": "echo \"No perspective language integration tests\"", - "build-icons": "rollup -c rollup.config.icons.js", - "build": "yarn run build-icons && tsc && rollup -c", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + "rollup-icons": "rollup -c rollup.config.icons.js", + "rollup-expression-ui": "rollup -c rollup.config.expression-ui.js", + "build": "yarn run build:common", + "build:common": "yarn rollup-icons && yarn rollup-expression-ui && deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", @@ -18,7 +19,6 @@ "@rollup/plugin-node-resolve": "^8.0.0", "@rollup/plugin-typescript": "^4.0.0", "@tsconfig/svelte": "^1.0.0", - "ipfs-core-types": "0.10.1", "rollup": "^2.3.4", "rollup-plugin-postcss": "^3.1.8", "rollup-plugin-string": "^3.0.0", diff --git a/bootstrap-languages/perspective-language/putAdapter.ts b/bootstrap-languages/perspective-language/putAdapter.ts index 831b1cedf..f5ab8b000 100644 --- a/bootstrap-languages/perspective-language/putAdapter.ts +++ b/bootstrap-languages/perspective-language/putAdapter.ts @@ -1,37 +1,35 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, Perspective } from "@perspect3vism/ad4m"; -import type { IPFS } from "ipfs-core-types"; +import type { Address, AgentService, PublicSharing, LanguageContext, Perspective } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; export class IpfsPutAdapter implements PublicSharing { #agent: AgentService - #IPFS: IPFS constructor(context: LanguageContext) { this.#agent = context.agent - this.#IPFS = context.IPFS } async createPublic(perspective: object): Promise
{ - try { - //@ts-ignore - perspective = JSON.parse(perspective) - }catch(e){ + console.log("PerspectiveLanguage: Sorry language has not been implemented yet!"); + // try { + // //@ts-ignore + // perspective = JSON.parse(perspective) + // }catch(e){ - } - if (typeof perspective === "object" && perspective.hasOwnProperty('links')) { - const P = perspective as Perspective - if (typeof P.links !== "object") { - throw new Error('invalid link property type') - } - } - else { - throw new Error('invalid object type') - } + // } + // if (typeof perspective === "object" && perspective.hasOwnProperty('links')) { + // const P = perspective as Perspective + // if (typeof P.links !== "object") { + // throw new Error('invalid link property type') + // } + // } + // else { + // throw new Error('invalid object type') + // } - const agent = this.#agent - const expression = agent.createSignedExpression(perspective) - const content = JSON.stringify(expression) - const result = await this.#IPFS.add({content}) + // const agent = this.#agent + // const expression = agent.createSignedExpression(perspective) + // const content = JSON.stringify(expression) + // const result = await this.#IPFS.add({content}) // @ts-ignore - return result.cid.toString() as Address + return "" as Address } } \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/rollup.config.expression-ui.js b/bootstrap-languages/perspective-language/rollup.config.expression-ui.js new file mode 100644 index 000000000..6ee1236d1 --- /dev/null +++ b/bootstrap-languages/perspective-language/rollup.config.expression-ui.js @@ -0,0 +1,25 @@ +import { string } from "rollup-plugin-string"; +import typescript from '@rollup/plugin-typescript'; + +export default { + input: "expressionUI.ts", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "PerspectiveLanguageExpressionUI", + file: "build/expressionUI.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + typescript({include: "expressionUI.ts"}), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/perspective-language/rollup.config.hc-dna.js b/bootstrap-languages/perspective-language/rollup.config.hc-dna.js new file mode 100644 index 000000000..bb9e6f44a --- /dev/null +++ b/bootstrap-languages/perspective-language/rollup.config.hc-dna.js @@ -0,0 +1,70 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; +import { string } from "rollup-plugin-string"; +import json from "@rollup/plugin-json"; +import dna from "@perspect3vism/rollup-plugin-dna"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: "dna.js", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "PerspectiveLanguage", + file: "build/dna.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + // copy({ + // assets: ['package.unbundled.json'] + // }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + json(), + dna(), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/perspective-language/rollup.config.icons.js b/bootstrap-languages/perspective-language/rollup.config.icons.js index 500ea3f14..557135681 100644 --- a/bootstrap-languages/perspective-language/rollup.config.icons.js +++ b/bootstrap-languages/perspective-language/rollup.config.icons.js @@ -1,107 +1,106 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; import postcss from "rollup-plugin-postcss"; const production = !process.env.ROLLUP_WATCH; export default [ -{ - input: 'ConstructorIcon.svelte', - output: { - sourcemap: true, - format: 'cjs', - name: 'ConstructorIcon', - file: 'build/ConstructorIcon.js' - }, - plugins: [ - svelte({ - // enable run-time checks when not in production - dev: !production, - preprocess: sveltePreprocess(), - customElement: true, - }), + { + input: "ConstructorIcon.svelte", + output: { + sourcemap: true, + format: "esm", + name: "ConstructorIcon", + file: "build/ConstructorIcon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - //typescript({ sourceMap: !production }), - - // If we're building for production (npm run build - // instead of npm run dev), minify - //production && terser() - ], - watch: { - clearScreen: false - } -}, -{ - input: 'Icon.svelte', - output: { - sourcemap: true, - format: 'cjs', - name: 'Icon', - file: 'build/Icon.js' - }, - plugins: [ - svelte({ - // enable run-time checks when not in production - dev: !production, - preprocess: sveltePreprocess(), - customElement: true, - }), + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - //typescript({ sourceMap: !production }), - - // If we're building for production (npm run build - // instead of npm run dev), minify - //production && terser() - ], - watch: { - clearScreen: false - } -} -] + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, + { + input: "Icon.svelte", + output: { + sourcemap: true, + format: "es", + name: "Icon", + file: "build/Icon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, +]; diff --git a/bootstrap-languages/perspective-language/rollup.config.js b/bootstrap-languages/perspective-language/rollup.config.js deleted file mode 100644 index 18e1ed4c4..000000000 --- a/bootstrap-languages/perspective-language/rollup.config.js +++ /dev/null @@ -1,60 +0,0 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; -import postcss from "rollup-plugin-postcss"; -import { string } from 'rollup-plugin-string' - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: 'index.js', - output: { - sourcemap: true, - format: 'cjs', - name: 'NoteIpfs', - file: 'build/bundle.js' - }, - plugins: [ - string({ - include: 'build/*.js' - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - ], - watch: { - clearScreen: false - } -} diff --git a/cli/.gitignore b/cli/.gitignore index 064254721..362c90a0b 100644 --- a/cli/.gitignore +++ b/cli/.gitignore @@ -1 +1,2 @@ -agent.json \ No newline at end of file +agent.json +schema.gql \ No newline at end of file diff --git a/cli/Cargo.toml b/cli/Cargo.toml index fa9f74014..d02910338 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.5.1" +version = "0.6.0" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,11 +12,12 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.5.1" } +ad4m-client = { path = "../rust-client", version = "0.6.0" } +rust-executor = { path = "../rust-executor" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" -tokio = { version = "1", features = ["full"] } +tokio = { version = "1.25.0", features = ["full"] } rustyline = "10" dirs = "4" chrono = { version = "0.4", features = ["serde"] } @@ -26,5 +27,6 @@ unicode-width = "0.1" rand = "0.8" regex = "1" serde = { version = "1.0", features = ["derive"] } -colour = "0.6.0" +colour = "0.7.0" syntect = "5.0" +ctrlc = "3.4.0" diff --git a/cli/README.md b/cli/README.md index 6ed5cde7a..36489215f 100644 --- a/cli/README.md +++ b/cli/README.md @@ -11,6 +11,16 @@ of AD4M and all it's features. cargo build ``` +## Start & Run AD4M Agent + +``` +ad4m init +``` + +``` +ad4m run +``` + ## Usage Show all perspectives: diff --git a/cli/package.json b/cli/package.json new file mode 100644 index 000000000..84152bddd --- /dev/null +++ b/cli/package.json @@ -0,0 +1,37 @@ +{ + "name": "@perspect3vism/ad4m-cli", + "version": "0.3.4", + "description": "AD4M cli for starting an AD4M agent, and querying the executor", + "main": "", + "files": [], + "type": "module", + "types": "", + "scripts": { + "build": "cargo build --release", + "test": "cargo test --release" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/perspect3vism/ad4m.git" + }, + "author": { + "name": "Nicolas Luck", + "email": "nicolas@lucksus.eu" + }, + "contributors": [ + { + "name": "Joshua Parkin", + "email": "joshuadparkin@gmail.com" + } + ], + "license": "CAL-1.0", + "bugs": { + "url": "https://github.com/perspect3vism/ad4m/issues" + }, + "devDependencies": { + "@perspect3vism/ad4m-executor": "*", + "@perspect3vism/rust-ad4m-executor": "*" + }, + "dependencies": { + } +} diff --git a/cli/src/agent.rs b/cli/src/agent.rs index 4f09c5ba2..00c250a5b 100644 --- a/cli/src/agent.rs +++ b/cli/src/agent.rs @@ -1,5 +1,5 @@ use crate::{formatting::*, util::readline_masked}; -use ad4m_client::Ad4mClient; +use ad4m_client::{agent::add_entanglement_proofs::EntanglementProofInput, Ad4mClient}; use anyhow::{bail, Result}; use clap::Subcommand; @@ -18,13 +18,41 @@ pub enum AgentFunctions { passphrase: Option, }, /// Lookup agent by DID - ByDID { did: String }, + ByDID { + did: String, + }, /// Initialize a new agent Generate { /// Agent passphrase #[arg(short, long)] passphrase: Option, }, + AddEntanglementProof { + device_key: String, + device_key_signed_by_did: String, + device_key_type: String, + did: String, + did_signed_by_device_key: String, + did_signing_key_id: String, + }, + DeleteEntanglementProof { + device_key: String, + device_key_signed_by_did: String, + device_key_type: String, + did: String, + did_signed_by_device_key: String, + did_signing_key_id: String, + }, + EntanglementProofPreFlight { + device_key: String, + device_key_type: String, + }, + GenerateJwt { + request_id: String, + rand: String, + }, + /// Stay connected and print any agent status changed events + Watch {}, } pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> { @@ -99,6 +127,70 @@ pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> println!("Agent generated"); } } + AgentFunctions::AddEntanglementProof { + device_key, + device_key_signed_by_did, + device_key_type, + did, + did_signed_by_device_key, + did_signing_key_id, + } => { + let input = EntanglementProofInput { + device_key: device_key, + device_key_signed_by_did: device_key_signed_by_did, + device_key_type: device_key_type, + did: did, + did_signed_by_device_key: did_signed_by_device_key, + did_signing_key_id: did_signing_key_id, + }; + ad4m_client + .agent + .add_entanglement_proofs(vec![input]) + .await?; + println!("Entanglement proofs added!"); + } + AgentFunctions::DeleteEntanglementProof { + device_key, + device_key_signed_by_did, + device_key_type, + did, + did_signed_by_device_key, + did_signing_key_id, + } => { + let input = ad4m_client::agent::delete_entanglement_proofs::EntanglementProofInput { + device_key: device_key, + device_key_signed_by_did: device_key_signed_by_did, + device_key_type: device_key_type, + did: did, + did_signed_by_device_key: did_signed_by_device_key, + did_signing_key_id: did_signing_key_id, + }; + ad4m_client + .agent + .delete_entanglement_proofs(vec![input]) + .await?; + println!("Entanglement proofs removed!"); + } + AgentFunctions::EntanglementProofPreFlight { + device_key, + device_key_type, + } => { + let result = ad4m_client + .agent + .entanglement_proof_pre_flight(device_key, device_key_type) + .await?; + println!("Add preflight!: {:#?}", result); + } + AgentFunctions::GenerateJwt { request_id, rand } => { + let result = ad4m_client + .agent + .retrieve_capability(request_id, rand) + .await?; + println!("JWT: {:#?}", result); + } + AgentFunctions::Watch {} => { + ad4m_client.agent.watch().await?; + } }; Ok(()) } diff --git a/cli/src/bootstrap_publish.rs b/cli/src/bootstrap_publish.rs index 623e22e99..6df1a2fae 100644 --- a/cli/src/bootstrap_publish.rs +++ b/cli/src/bootstrap_publish.rs @@ -1,12 +1,8 @@ use ad4m_client::Ad4mClient; -use anyhow::Result; -use colour::{blue_ln, green_ln}; +use colour::green_ln; use serde::{Deserialize, Serialize}; -use std::io::{BufRead, BufReader}; -use std::path::PathBuf; +use std::fs; use std::process::exit; -use std::sync::mpsc::Sender; -use std::{fs, process::Stdio}; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct SeedProto { @@ -60,55 +56,6 @@ pub struct BootstrapSeed { pub language_language_bundle: String, } -pub fn serve_ad4m_host( - ad4m_host_path: String, - data_path: PathBuf, - sender: Sender, -) -> Result<()> { - let mut ad4m_host_publish = std::process::Command::new(ad4m_host_path) - .arg("serve") - .arg("--languageLanguageOnly") - .arg("true") - .arg("--dataPath") - .arg(data_path) - .stdout(Stdio::piped()) - .stderr(Stdio::piped()) - .spawn()?; - blue_ln!("ad4m-host serve started"); - blue_ln!("Listening for stdout..."); - - let stdout = ad4m_host_publish.stdout.take().unwrap(); - let stderr = ad4m_host_publish.stderr.take().unwrap(); - let mut f = BufReader::new(stdout); - let mut f_e = BufReader::new(stderr); - std::thread::spawn(move || loop { - let mut buf = String::new(); - - match f.read_line(&mut buf) { - Ok(_) => { - if !buf.is_empty() { - sender.send(buf).unwrap(); - } - } - Err(e) => println!("an error!: {:?}", e), - } - }); - - std::thread::spawn(move || loop { - let mut buf_e = String::new(); - match f_e.read_line(&mut buf_e) { - Ok(_) => { - if !buf_e.is_empty() { - println!("{}", buf_e); - } - } - Err(e) => println!("an error!: {:?}", e), - } - }); - - Ok(()) -} - //Generates an ad4m client, unlocks the agent and then publishes the languages found in the seed proto. //After that it will generate a new bootstrap seed and save to the current directory pub async fn start_publishing( @@ -116,10 +63,7 @@ pub async fn start_publishing( seed_proto: SeedProto, language_language_bundle: String, ) { - let ad4m_client = Ad4mClient::new( - "http://localhost:4000/graphql".to_string(), - "".to_string() - ); + let ad4m_client = Ad4mClient::new("http://localhost:4000/graphql".to_string(), "".to_string()); let agent = ad4m_client .agent @@ -131,7 +75,7 @@ pub async fn start_publishing( println!("Error unlocking agent: {}", error); exit(1); } - + green_ln!("Unlocked agent\n"); let mut languages = vec![]; diff --git a/cli/src/dev.rs b/cli/src/dev.rs index 203e2b3e7..b5eacda6c 100644 --- a/cli/src/dev.rs +++ b/cli/src/dev.rs @@ -1,9 +1,7 @@ - -use anyhow::{Result}; +use anyhow::Result; use clap::Subcommand; -use colour::{self, blue_ln, green_ln}; -use std::fs; -use std::sync::mpsc::channel; +use colour::{self, green_ln}; +use std::{fs, str::FromStr}; use crate::bootstrap_publish::*; @@ -13,22 +11,88 @@ pub enum DevFunctions { GenerateBootstrap { agent_path: String, passphrase: String, - ad4m_host_path: String, seed_proto: String, }, + PublishAndTestExpressionLanguage { + language_path: String, + data: String + } } pub async fn run(command: DevFunctions) -> Result<()> { match command { + DevFunctions::PublishAndTestExpressionLanguage { language_path , data } => { + let ad4m_test_dir = dirs::home_dir() + .expect("Could not get home directory") + .join(".ad4m-test"); + let ad4m_test_dir: String = ad4m_test_dir.to_string_lossy().to_string(); + let ad4m_test_dir_clone = ad4m_test_dir.clone(); + + let _init = rust_executor::init::init(Some(ad4m_test_dir.clone()), None) + .map_err(|err| anyhow::anyhow!("Error in init: {:?}", err))?; + + let run_handle = tokio::task::spawn(async move { + rust_executor::run(rust_executor::Ad4mConfig { + app_data_path: Some(ad4m_test_dir_clone), + network_bootstrap_seed: None, + language_language_only: Some(false), + run_dapp_server: Some(false), + gql_port: None, + hc_admin_port: None, + hc_app_port: None, + hc_use_bootstrap: None, + hc_use_local_proxy: None, + hc_use_mdns: None, + hc_use_proxy: None, + connect_holochain: None, + admin_credential: Some(String::from("*")), + hc_proxy_url: None, + hc_bootstrap_url: None, + }) + .await; + }); + + let test_res = tokio::task::spawn(async move { + tokio::time::sleep(std::time::Duration::from_millis(5000)).await; + let client = ad4m_client::Ad4mClient::new(String::from("http://127.0.0.1:4000/graphql"), String::from("*")); + let me = client.agent.me().await; + println!("Me: {:?}", me); + let agent_generate = client.agent.generate(String::from("test")).await; + println!("Agent generate: {:?}", agent_generate); + let publish_language = client.languages.publish( + language_path, + String::from("some-test-lang"), + Some(String::from("some-desc")), + None, + None + ).await; + println!("Publish language: {:?}", publish_language); + let language_info = publish_language.unwrap(); + let language = client.languages.by_address(language_info.address.clone()).await; + println!("Language: {:?}", language); + let expression = client.expressions.expression_create( + language_info.address, + serde_json::Value::from_str(&data).expect("could not cast input data to serde_json::Value"), + ).await; + println!("Expression create: {:?}", expression); + let expression = client.expressions.expression(expression.unwrap()).await; + println!("Expression get: {:?}", expression); + }).await; + green_ln!("Test future finished with: {:?}", test_res); + + run_handle.abort(); + //Cleanup test agent + let _ = fs::remove_dir_all(std::path::Path::new(&ad4m_test_dir)); + green_ln!("Test agent cleaned up\n"); + std::process::exit(0); + }, DevFunctions::GenerateBootstrap { agent_path, passphrase, - ad4m_host_path, seed_proto, } => { green_ln!( - "Attempting to generate a new bootstrap seed using ad4m-host path: {:?} and agent path: {:?}\n", - ad4m_host_path, + "Attempting to generate a new bootstrap seed using agent path: {:?}\n", agent_path ); @@ -45,7 +109,7 @@ pub async fn run(command: DevFunctions) -> Result<()> { if data_path_files.is_ok() { fs::remove_dir_all(&data_path)?; } - //Create the ad4m directory + // //Create the ad4m directory fs::create_dir(&data_path)?; let ad4m_data_path = data_path.join("ad4m"); fs::create_dir(&ad4m_data_path)?; @@ -71,54 +135,75 @@ pub async fn run(command: DevFunctions) -> Result<()> { neighbourhood_language: String::from(""), }; let temp_publish_bootstrap_path = data_path.join("publishing_bootstrap.json"); + green_ln!("Writting temp publish boostrap at path: {:?}\n", temp_publish_bootstrap_path.to_str()); fs::write( &temp_publish_bootstrap_path, serde_json::to_string(&temp_bootstrap_seed)?, )?; //start ad4m-host with publishing bootstrap - let ad4m_host_init = std::process::Command::new(&ad4m_host_path) - .arg("init") - .arg("--networkBootstrapSeed") - .arg(&temp_publish_bootstrap_path) - .arg("--dataPath") - .arg(&data_path) - .arg("--overrideConfig") - .output()?; - - blue_ln!( - "ad4m-host init output: {}\n", - String::from_utf8_lossy(&ad4m_host_init.stdout) - ); + rust_executor::init::init( + Some(data_path.to_str().unwrap().to_string()), + Some(temp_publish_bootstrap_path.to_str().unwrap().to_string()), + ) + .map_err(|err| { + colour::red_ln!("Error in init: {:?}", err); + err + }) + .unwrap(); green_ln!( "Starting publishing with bootstrap path: {}\n", temp_publish_bootstrap_path.to_str().unwrap() ); - let (tx, rx) = channel(); - serve_ad4m_host(ad4m_host_path, data_path, tx)?; - - for line in &rx { - println!("{}", line); - if line.contains("GraphQL server started, Unlock the agent to start holohchain") { - green_ln!("AD4M Host ready for publishing\n"); - //Spawn in a new thread so we can continue reading logs in loop below, whilst publishing is happening - tokio::spawn(async move { - start_publishing( - passphrase.clone(), - seed_proto.clone(), - lang_lang_source.clone(), - ) - .await; - }); - break; - } - } + tokio::task::spawn(async move { + rust_executor::run(rust_executor::Ad4mConfig { + app_data_path: Some(data_path.to_str().unwrap().to_string()), + network_bootstrap_seed: Some( + temp_publish_bootstrap_path.to_str().unwrap().to_string(), + ), + language_language_only: Some(true), + run_dapp_server: Some(false), + gql_port: None, + hc_admin_port: None, + hc_app_port: None, + hc_use_bootstrap: None, + hc_use_local_proxy: None, + hc_use_mdns: None, + hc_use_proxy: None, + connect_holochain: None, + admin_credential: None, + hc_proxy_url: None, + hc_bootstrap_url: None, + }) + .await; + }); - for line in rx { - println!("{}", line); - } + //Spawn in a new thread so we can continue reading logs in loop below, whilst publishing is happening + let publish_fut = tokio::task::spawn(async move { + green_ln!("Runing publish fut"); + tokio::time::sleep(std::time::Duration::from_millis(5000)).await; + green_ln!("AD4M ready for publishing\n"); + start_publishing( + passphrase.clone(), + seed_proto.clone(), + lang_lang_source.clone(), + ) + .await; + }).await; + green_ln!("Publish future finished with: {:?}", publish_fut); + + // tokio::select! { + // biased; + + // _ = run_fut => { + // green_ln!("AD4M finished running\n"); + // } + // _ = publish_fut => { + // green_ln!("AD4M finished publishing\n"); + // } + // } } }; Ok(()) diff --git a/cli/src/main.rs b/cli/src/main.rs index 3ed8e7ea0..3f18a9480 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -28,6 +28,7 @@ use crate::{ use ad4m_client::*; use anyhow::{Context, Result}; use clap::{Parser, Subcommand}; +use rust_executor::Ad4mConfig; use startup::executor_data_path; /// AD4M command line interface. @@ -110,6 +111,45 @@ enum Domain { #[command(subcommand)] command: DevFunctions, }, + Init { + #[arg(short, long, action)] + data_path: Option, + #[arg(short, long, action)] + network_bootstrap_seed: Option, + }, + Run { + #[arg(short, long, action)] + app_data_path: Option, + #[arg(short, long, action)] + network_bootstrap_seed: Option, + #[arg(short, long, action)] + language_language_only: Option, + #[arg(long, action)] + run_dapp_server: Option, + #[arg(short, long, action)] + gql_port: Option, + #[arg(long, action)] + hc_admin_port: Option, + #[arg(long, action)] + hc_app_port: Option, + #[arg(long, action)] + hc_use_bootstrap: Option, + #[arg(long, action)] + hc_use_local_proxy: Option, + #[arg(long, action)] + hc_use_mdns: Option, + #[arg(long, action)] + hc_use_proxy: Option, + #[arg(long, action)] + hc_proxy_url: Option, + #[arg(long, action)] + hc_bootstrap_url: Option, + #[arg(short, long, action)] + connect_holochain: Option, + #[arg(long, action)] + admin_credential: Option + }, + RunLocalHcServices {} } async fn get_ad4m_client(args: &ClapApp) -> Result { @@ -139,13 +179,86 @@ async fn get_ad4m_client(args: &ClapApp) -> Result { Ok(ad4m_client) } -#[tokio::main] +#[tokio::main(flavor = "multi_thread")] async fn main() -> Result<()> { let args = ClapApp::parse(); if let Domain::Dev { command } = args.domain { dev::run(command).await?; return Ok(()); + }; + + if let Domain::Init { + data_path, + network_bootstrap_seed, + } = args.domain + { + match rust_executor::init::init(data_path, network_bootstrap_seed) { + Ok(()) => println!("Successfully initialized AD4M executor!"), + Err(e) => { + println!("Failed to initialize AD4M executor: {}", e); + std::process::exit(1); + } + }; + return Ok(()); + }; + + if let Domain::Run { + app_data_path, + network_bootstrap_seed, + language_language_only, + run_dapp_server, + gql_port, + hc_admin_port, + hc_app_port, + hc_use_bootstrap, + hc_use_local_proxy, + hc_use_mdns, + hc_use_proxy, + hc_proxy_url, + hc_bootstrap_url, + connect_holochain, + admin_credential + } = args.domain + { + let _ = tokio::spawn(async move { + rust_executor::run_with_tokio(Ad4mConfig { + app_data_path, + network_bootstrap_seed, + language_language_only, + run_dapp_server, + gql_port, + hc_admin_port, + hc_app_port, + hc_use_bootstrap, + hc_use_local_proxy, + hc_use_mdns, + hc_use_proxy, + hc_proxy_url, + hc_bootstrap_url, + connect_holochain, + admin_credential + }).await; + }).await; + + let _ = ctrlc::set_handler(move || { + println!("Received CTRL-C! Exiting..."); + exit(0); + }); + + use tokio::time::sleep; + use std::time::Duration; + use std::process::exit; + use ctrlc; + + loop { + sleep(Duration::from_secs(2)).await; + } + }; + + if let Domain::RunLocalHcServices {} = args.domain { + rust_executor::run_local_hc_services().await?; + return Ok(()); } let ad4m_client = get_ad4m_client(&args).await?; @@ -167,7 +280,29 @@ async fn main() -> Result<()> { })?; println!("{}", log); } - Domain::Dev{ command: _ } => unreachable!(), + Domain::Dev { command: _ } => unreachable!(), + Domain::Init { + data_path: _, + network_bootstrap_seed: _, + } => unreachable!(), + Domain::Run { + app_data_path: _, + network_bootstrap_seed: _, + language_language_only: _, + run_dapp_server: _, + gql_port: _, + hc_admin_port: _, + hc_app_port: _, + hc_use_bootstrap: _, + hc_use_local_proxy: _, + hc_use_mdns: _, + hc_use_proxy: _, + hc_proxy_url: _, + hc_bootstrap_url: _, + connect_holochain: _, + admin_credential: _ + } => unreachable!(), + Domain::RunLocalHcServices {} => unreachable!(), } Ok(()) diff --git a/cli/src/startup.rs b/cli/src/startup.rs index 2125fc26b..36035e7c4 100644 --- a/cli/src/startup.rs +++ b/cli/src/startup.rs @@ -43,7 +43,7 @@ pub fn get_executor_port() -> Result { pub fn get_executor_url() -> Result { let port = get_executor_port()?; - Ok(format!("http://localhost:{}/graphql", port)) + Ok(format!("http://127.0.0.1:{}/graphql", port)) } pub async fn get_cap_token(executor_url: String) -> Result { diff --git a/connect/package.json b/connect/package.json index b79f8e2e7..5b11fb7cd 100644 --- a/connect/package.json +++ b/connect/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-connect", - "version": "0.5.1", + "version": "0.6.0", "description": "Lib for handling everything needed to setup a connection to a local or remote ad4m-executor", "license": "CAL-1.0", "main": "dist/web.js", diff --git a/core/package.json b/core/package.json index 3aa32d3d7..73341916a 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m", - "version": "0.5.1", + "version": "0.6.0", "description": "*The Agent-Centric Distributed Application Meta-ontology* or just: *Agent-Centric DApp Meta-ontology* * A new meta-ontology for interoperable, decentralized application design * A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends * The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network", "main": "lib/index.cjs", "module": "lib/index.js", @@ -33,7 +33,7 @@ "homepage": "https://ad4m.dev", "dependencies": { "@apollo/client": "3.7.10", - "@holochain/client": "0.12.5", + "@holochain/client": "0.16.0", "@types/jest": "^26.0.14", "class-validator": "^0.13.1", "express": "4.18.2", @@ -51,7 +51,6 @@ "cross-fetch": "^3.1.4", "graphql-ws": "5.12.0", "honkit": "^4.0.0", - "ipfs-core-types": "0.10.1", "jest": "^26.6.0", "rollup": "^2.56.3", "ts-jest": "^26.5.6", diff --git a/core/src/PubSub.ts b/core/src/PubSub.ts index 4cc34f675..45366c85d 100644 --- a/core/src/PubSub.ts +++ b/core/src/PubSub.ts @@ -1,6 +1,6 @@ export const AGENT_UPDATED = 'agent-updated-topic' export const AGENT_STATUS_CHANGED = 'agent-status-changed-topic' -export const DIRECT_MESSAGE_RECEIVED = 'direct-message-received-topic' +export const RUNTIME_MESSAGED_RECEIVED_TOPIC = 'runtime-messaged-received-topic' export const PERSPECTIVE_ADDED_TOPIC = 'perspective-added-topic' export const PERSPECTIVE_UPDATED_TOPIC = 'perspective-updated-topic' export const PERSPECTIVE_REMOVED_TOPIC = 'perspective-removed-topic' diff --git a/core/src/agent/AgentClient.ts b/core/src/agent/AgentClient.ts index f1b4eb799..a2852f28f 100644 --- a/core/src/agent/AgentClient.ts +++ b/core/src/agent/AgentClient.ts @@ -519,10 +519,10 @@ export class AgentClient { const { agentSignMessage } = unwrapApolloResult( await this.#apolloClient.mutate({ mutation: gql`mutation agentSignMessage($message: String!) { - agentSignMessage(message: $message) { - ${AGENT_SIGNATURE_FIELDS} - } - }`, + agentSignMessage(message: $message) { + ${AGENT_SIGNATURE_FIELDS} + } + }`, variables: { message }, }) ); diff --git a/core/src/language/LanguageContext.ts b/core/src/language/LanguageContext.ts index c3e767c1d..cdb412087 100644 --- a/core/src/language/LanguageContext.ts +++ b/core/src/language/LanguageContext.ts @@ -1,6 +1,5 @@ import type { AppSignalCb } from '@holochain/client' import { Expression } from "../expression/Expression"; -import type { IPFS } from 'ipfs-core-types' export interface AgentService { readonly did: string @@ -13,7 +12,6 @@ export interface SignaturesService { export interface LanguageContext { agent: AgentService; - IPFS: IPFS; signatures: SignaturesService; storageDirectory: string; customSettings: object; diff --git a/core/src/runtime/RuntimeResolver.ts b/core/src/runtime/RuntimeResolver.ts index 550c01cf4..fb8891cb4 100644 --- a/core/src/runtime/RuntimeResolver.ts +++ b/core/src/runtime/RuntimeResolver.ts @@ -3,7 +3,7 @@ import { Perspective, PerspectiveExpression, PerspectiveInput } from "../perspec import { ExpressionProof } from "../expression/Expression"; import { LinkExpression } from "../links/Links"; import { ExceptionType } from "../Exception"; -import { DIRECT_MESSAGE_RECEIVED, EXCEPTION_OCCURRED_TOPIC } from '../PubSub'; +import { RUNTIME_MESSAGED_RECEIVED_TOPIC, EXCEPTION_OCCURRED_TOPIC } from '../PubSub'; const testLink = new LinkExpression() testLink.author = "did:ad4m:test" @@ -177,7 +177,7 @@ export default class RuntimeResolver { } - @Subscription({topics: DIRECT_MESSAGE_RECEIVED, nullable: true}) + @Subscription({topics: RUNTIME_MESSAGED_RECEIVED_TOPIC, nullable: true}) runtimeMessageReceived(): PerspectiveExpression { return testPerspectiveExpression } diff --git a/core/src/subject/SDNADecorators.ts b/core/src/subject/SDNADecorators.ts index 6ea23f026..55b687c62 100644 --- a/core/src/subject/SDNADecorators.ts +++ b/core/src/subject/SDNADecorators.ts @@ -235,12 +235,12 @@ export function SDNAClass(opts: SDNAClassOptions) { target: initial, }) - classRemoverActions = [{ + classRemoverActions.push({ action: "removeLink", source: "this", predicate: through, target: initial, - }] + }) } } @@ -312,9 +312,11 @@ export function SDNAClass(opts: SDNAClassOptions) { let subjectContructorJSONString = stringifyObjectLiteral(constructorActions) sdna += `constructor(${uuid}, '${subjectContructorJSONString}').\n` - let instanceConditionProlog = instanceConditions.join(", ") - sdna += `instance(${uuid}, Base) :- ${instanceConditionProlog}.\n` - sdna += "\n" + if(instanceConditions.length > 0) { + let instanceConditionProlog = instanceConditions.join(", ") + sdna += `instance(${uuid}, Base) :- ${instanceConditionProlog}.\n` + sdna += "\n" + } sdna += `destructor(${uuid}, '${stringifyObjectLiteral(classRemoverActions)}').\n` sdna += "\n" sdna += propertiesCode.join("\n") diff --git a/core/src/subject/Subject.ts b/core/src/subject/Subject.ts index bf78ad7b0..f4cdb2497 100644 --- a/core/src/subject/Subject.ts +++ b/core/src/subject/Subject.ts @@ -36,11 +36,15 @@ export class Subject { if(results && results.length > 0) { let expressionURI = results[0].Value if(resolveExpressionURI) { - const expression = await this.#perspective.getExpression(expressionURI) try { - return JSON.parse(expression.data) - } catch(e) { - return expression.data + const expression = await this.#perspective.getExpression(expressionURI) + try { + return JSON.parse(expression.data) + } catch(e) { + return expression.data + } + } catch (err) { + return expressionURI } } else { return expressionURI @@ -76,16 +80,6 @@ export class Subject { } } - - const flattenPrologList = (list: object): any[] =>{ - let result = [] - while(list && list["head"]) { - result.push(list["head"]) - list = list["tail"] - } - return result - } - let results2 = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), collection(C, Collection)`) if(!results2) results2 = [] let collections = results2.map(result => result.Collection) @@ -96,7 +90,8 @@ export class Subject { get: async () => { let results = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), collection_getter(C, "${this.#baseExpression}", "${c}", Value)`) if(results && results.length > 0 && results[0].Value) { - return flattenPrologList(eval(results[0].Value)) + let collectionContent = results[0].Value.filter((v: any) => v !== "" && v !== '') + return collectionContent } else { return [] } diff --git a/core/src/subject/SubjectEntity.ts b/core/src/subject/SubjectEntity.ts index c6dab67e1..4ffb6782a 100644 --- a/core/src/subject/SubjectEntity.ts +++ b/core/src/subject/SubjectEntity.ts @@ -3,15 +3,6 @@ import { PerspectiveProxy } from "../perspectives/PerspectiveProxy"; import { makeRandomPrologAtom } from "./SDNADecorators"; import { singularToPlural } from "./util"; -const flattenPrologList = (list: object): any[] => { - let result = [] - while (list && list["head"]) { - result.push(list["head"]) - list = list["tail"] - } - return result -} - export type QueryPartialEntity = { [P in keyof T]?: T[P] | (() => string); }; @@ -49,13 +40,16 @@ export class SubjectEntity { let results = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), property_getter(C, "${tempId}", "${p}", Value)`) if (results && results.length > 0) { let expressionURI = results[0].Value - if (resolveExpressionURI) { - const expression = await this.#perspective.getExpression(expressionURI) try { - return JSON.parse(expression.data) - } catch (e) { - return expression.data + const expression = await this.#perspective.getExpression(expressionURI) + try { + return JSON.parse(expression.data) + } catch (e) { + return expression.data + } + } catch (err) { + return expressionURI } } else { return expressionURI @@ -78,7 +72,7 @@ export class SubjectEntity { const getProperty = async () => { let results = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), collection_getter(C, "${tempId}", "${c}", Value)`) if (results && results.length > 0 && results[0].Value) { - return flattenPrologList(eval(results[0].Value)) + return eval(results[0].Value) } else { return [] } @@ -95,14 +89,13 @@ export class SubjectEntity { private async setProperty(key: string, value: any) { const setters = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), property_setter(C, "${key}", Setter)`) if (setters && setters.length > 0) { - const property = setters[0].Property const actions = eval(setters[0].Setter) - const resolveLanguageResults = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), property_resolve_language(C, "${property}", Language)`) + const resolveLanguageResults = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), property_resolve_language(C, "${key}", Language)`) let resolveLanguage if (resolveLanguageResults && resolveLanguageResults.length > 0) { resolveLanguage = resolveLanguageResults[0].Language } - + if (resolveLanguage) { value = await this.#perspective.createExpression(value, resolveLanguage) } diff --git a/dapp/.gitignore b/dapp/.gitignore new file mode 100644 index 000000000..ce1bb2e87 --- /dev/null +++ b/dapp/.gitignore @@ -0,0 +1,2 @@ +bundle.js +bundle.cjs \ No newline at end of file diff --git a/dapp/App.svelte b/dapp/App.svelte new file mode 100644 index 000000000..affc371f2 --- /dev/null +++ b/dapp/App.svelte @@ -0,0 +1,146 @@ + + +
+ + {#if signedIn==true} + {#if currentAccount==undefined} +

Get Started

+

+ Welcome to AD4M, thanks for being here. Lets connect all the dapps :) +

Sign into MetaMask 

+ +
+

Sign into WalletConnect

+ + {:else} +

Create link

+ + {/if} + {:else} +

Please unlock your ad4m agent...

+
+ + + + {/if} +
+ + \ No newline at end of file diff --git a/dapp/ethereum.js b/dapp/ethereum.js new file mode 100644 index 000000000..9945ace1e --- /dev/null +++ b/dapp/ethereum.js @@ -0,0 +1,98 @@ +import detectEthereumProvider from '@metamask/detect-provider'; + +export async function startEthereum(handleAccountsChanged) { + const provider = await detectEthereumProvider(); + if(!provider) { + console.log('Please install MetaMask!') + setTimeout(startEthereum, 1000) + } else { + // If the provider returned by detectEthereumProvider is not the same as + // window.ethereum, something is overwriting it, perhaps another wallet. + if (provider !== window.ethereum) { + console.error('Do you have multiple wallets installed?'); + } + // Access the decentralized web! + + window.ethereum.on('chainChanged', window.location.reload) + + ethereum + .request({ method: 'eth_accounts' }) + .then(handleAccountsChanged) + .catch((err) => { + // Some unexpected error. + // For backwards compatibility reasons, if no accounts are available, + // eth_accounts will return an empty array. + console.error(err); + }); + + // Note that this event is emitted on page load. + // If the array of accounts is non-empty, you're already + // connected. + ethereum.on('accountsChanged', handleAccountsChanged); + } +} + +const domain = [ + { name: "name", type: "string" }, + { name: "version", type: "string" }, + { name: "chainId", type: "uint256" }, +]; + +const didEntangle = [ + { name: "did", type: "string" } +]; + +export async function sign(signer, did) { + const domainData = { + name: "Ad4m DID Authentification", + version: "2", + //TODO: infer env from process.env and then use correct chainId; ropstein or eth + chainId: 1, + }; + + var message = { + did: did, + }; + + const data = { + types: { + EIP712Domain: domain, + DIDEntangle: didEntangle, + }, + domain: domainData, + primaryType: "DIDEntangle", + message: message + }; + + let req = { + method: "eth_signTypedData_v3", + params: [signer, JSON.stringify(data)], + from: signer + } + console.log('sign: sending request ' + JSON.stringify(req)) + const result = await ethereum.request(req) + + console.log('sign: response received ' + result) + + const signature = result.substring(2); + const r = "0x" + signature.substring(0, 64); + const s = "0x" + signature.substring(64, 128); + const v = parseInt(signature.substring(128, 130), 16); + + return { data, signature, r, s, v } +} + +export function connectWallet(handleAccountsChanged) { + ethereum + .request({ method: 'eth_requestAccounts' }) + .then(handleAccountsChanged) + .catch((err) => { + if (err.code === 4001) { + // EIP-1193 userRejectedRequest error + // If this happens, the user rejected the connection request. + console.log('Please connect to MetaMask.'); + } else { + console.error(err); + } + }); +} \ No newline at end of file diff --git a/dapp/main.js b/dapp/main.js new file mode 100644 index 000000000..d80e9a350 --- /dev/null +++ b/dapp/main.js @@ -0,0 +1,7 @@ +import App from './App.svelte'; + +const app = new App({ + target: document.body, +}); + +export default app; \ No newline at end of file diff --git a/dapp/package.json b/dapp/package.json new file mode 100644 index 000000000..5fccbd905 --- /dev/null +++ b/dapp/package.json @@ -0,0 +1,16 @@ +{ + "name": "@perspect3vism/dapp", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "scripts": { + "build": "rollup -c rollup.config.js" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^25.0.4", + "@rollup/plugin-node-resolve": "^15.2.1", + "rollup": "^3.28.1", + "rollup-plugin-svelte": "^7.1.6", + "svelte": "^4.2.0" + } +} diff --git a/dapp/public/404.html b/dapp/public/404.html new file mode 100644 index 000000000..197050d6a --- /dev/null +++ b/dapp/public/404.html @@ -0,0 +1 @@ +

Not Found, sorry

\ No newline at end of file diff --git a/dapp/public/favicon.png b/dapp/public/favicon.png new file mode 100644 index 000000000..7e6f5eb5a Binary files /dev/null and b/dapp/public/favicon.png differ diff --git a/dapp/public/global.css b/dapp/public/global.css new file mode 100644 index 000000000..e69de29bb diff --git a/dapp/public/index.html b/dapp/public/index.html new file mode 100644 index 000000000..a98d78f51 --- /dev/null +++ b/dapp/public/index.html @@ -0,0 +1,18 @@ + + + + + + + Ad4m DAPP Integration + + + + + + + + + + + diff --git a/dapp/rollup.config.js b/dapp/rollup.config.js new file mode 100644 index 000000000..757a2cd1b --- /dev/null +++ b/dapp/rollup.config.js @@ -0,0 +1,28 @@ +const nodeResolve = require('@rollup/plugin-node-resolve'); +const commonjs = require('@rollup/plugin-commonjs'); +const svelte = require('rollup-plugin-svelte'); + +module.exports = { + input: 'main.js', + output: [ + { + format: 'cjs', + file: "./public/bundle.cjs", + }, + { + format: 'esm', + file: "./public/bundle.js", + } + ], + plugins: [ + svelte({ + emitCss: false, + }), + nodeResolve({ + browser: true, + exportConditions: ['svelte'], + extensions: ['.svelte'] + }), + commonjs() + ] +}; \ No newline at end of file diff --git a/dapp/yarn.lock b/dapp/yarn.lock new file mode 100644 index 000000000..c1bb252a1 --- /dev/null +++ b/dapp/yarn.lock @@ -0,0 +1,375 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@rollup/plugin-commonjs@^25.0.4": + version "25.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz#a7547a0c4ec3fa79818eb313e1de0023e548f4e6" + integrity sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.27.0" + +"@rollup/plugin-node-resolve@^15.2.1": + version "15.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz#a15b14fb7969229e26a30feff2816d39eff503f0" + integrity sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" + +"@rollup/pluginutils@^4.1.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^5.0.1": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.3.tgz#183126d69aeb1cfa23401d5a71cb4b8c16c4a4e0" + integrity sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + +acorn@^8.10.0, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== + dependencies: + dequal "^2.0.3" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +code-red@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35" + integrity sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + "@types/estree" "^1.0.1" + acorn "^8.10.0" + estree-walker "^3.0.3" + periscopic "^3.1.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +estree-walker@^2.0.1, estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +estree-walker@^3.0.0, estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + +is-core-module@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-reference@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-reference@^3.0.0, is-reference@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831" + integrity sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w== + dependencies: + "@types/estree" "*" + +locate-character@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" + integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== + +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + +magic-string@^0.30.0: + version "0.30.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +periscopic@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + +picomatch@^2.2.2, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.22.1: + version "1.22.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" + integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +rollup-plugin-svelte@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.6.tgz#44a4ea6c6e8ed976824d9fd40c78d048515e5838" + integrity sha512-nVFRBpGWI2qUY1OcSiEEA/kjCY2+vAjO9BI8SzA7NRrh2GTunLd6w2EYmnMt/atgdg8GvcNjLsmZmbQs/u4SQA== + dependencies: + "@rollup/pluginutils" "^4.1.0" + resolve.exports "^2.0.0" + +rollup@^3.28.1: + version "3.28.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" + integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== + optionalDependencies: + fsevents "~2.3.2" + +source-map-js@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svelte@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.0.tgz#0e4304c15524450b22fba02516eb72efbd8847b6" + integrity sha512-kVsdPjDbLrv74SmLSUzAsBGquMs4MPgWGkGLpH+PjOYnFOziAvENVzgJmyOCV2gntxE32aNm8/sqNKD6LbIpeQ== + dependencies: + "@ampproject/remapping" "^2.2.1" + "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/trace-mapping" "^0.3.18" + acorn "^8.9.0" + aria-query "^5.3.0" + axobject-query "^3.2.1" + code-red "^1.0.3" + css-tree "^2.3.1" + estree-walker "^3.0.3" + is-reference "^3.0.1" + locate-character "^3.0.0" + magic-string "^0.30.0" + periscopic "^3.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== diff --git a/docs/package.json b/docs/package.json index 5f581b86e..19403d4a9 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-docs", - "version": "0.5.1", + "version": "0.6.0", "description": "Documentation for AD4M", "license": "CAL-1.0", "homepage": "./", diff --git a/download-binaries-linux.sh b/download-binaries-linux.sh deleted file mode 100755 index 53ff64368..000000000 --- a/download-binaries-linux.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -[ ! -d "./executor/temp/binary" ] && mkdir -p "./executor/temp/binary" - -if [ ! -f "./executor/temp/binary/hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 - mv hc-linux-0.1.0 ./executor/temp/binary/hc - chmod +x ./executor/temp/binary/hc - - if [ ! -f "/usr/local/bin/hc" ]; then - echo "Copying hc to /usr/local/bin" - cp ./executor/temp/binary/hc /usr/local/bin/hc - fi -fi - -if [ ! -f "./executor/temp/binary/holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 - mv holochain-linux-0.1.0 ./executor/temp/binary/holochain - chmod +x ./executor/temp/binary/holochain - - if [ ! -f "/usr/local/bin/holochain" ]; then - echo "Copying holochain to /usr/local/bin" - cp ./executor/temp/binary/holochain /usr/local/bin/holochain - fi -fi - -if [ ! -f "./executor/temp/swipl/bin/swipl" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/swipl-linux-x86.zip - unzip swipl-linux-x86.zip -d ./executor/temp - rm -rf swipl-linux-x64.zip -fi \ No newline at end of file diff --git a/download-binaries-macos.sh b/download-binaries-macos.sh deleted file mode 100755 index a595231f8..000000000 --- a/download-binaries-macos.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -[ ! -d "./executor/temp/binary" ] && mkdir -p "./executor/temp/binary" - -if [ ! -f "./executor/temp/binary/hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-darwin-0.1.0 - mv hc-darwin-0.1.0 ./executor/temp/binary/hc - chmod +x ./executor/temp/binary/hc - - if [ ! -f "/usr/local/bin/hc" ]; then - echo "Copying hc to /usr/local/bin" - cp ./executor/temp/binary/hc /usr/local/bin/hc - fi -fi - -if [ ! -f "./executor/temp/binary/holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-darwin-0.1.0 - mv holochain-darwin-0.1.0 ./executor/temp/binary/holochain - chmod +x ./executor/temp/binary/holochain - - if [ ! -f "/usr/local/bin/holochain" ]; then - echo "Copying holochain to /usr/local/bin" - cp ./executor/temp/binary/holochain /usr/local/bin/holochain - fi -fi - -if [ ! -f "./executor/temp/swipl/bin/swipl" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/swipl-darwin-x86.zip - unzip swipl-darwin-x86.zip -d ./temp - rm -rf ./executor/temp/__MACOSX - rm -rf swipl-linux-x64.zip -fi \ No newline at end of file diff --git a/download-binaries-windows.ps1 b/download-binaries-windows.ps1 deleted file mode 100644 index 241000d4e..000000000 --- a/download-binaries-windows.ps1 +++ /dev/null @@ -1,24 +0,0 @@ -choco install wget --no-progress -choco install swi-prolog - -$env:path += ";C:\Program Files\swipl\bin" - -mkdir executor/temp/binary - -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./executor/temp/binary/hc.exe - -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-windows-0.1.0.exe -O ./executor/temp/binary/holochain.exe - -# Global path where the binary should be copied to -$global_path = "C:\Windows\System32\" - -# Check if the global path exists -if (-not (Test-Path $global_path -PathType Container)) { - Write-Host "Global path not found." - exit 1 -} - -Copy-Item ./executor/temp/binary/hc.exe $global_path -Copy-Item ./executor/temp/binary/holochain.exe $global_path -$SwiplPath = Get-Command swipl.exe | Select-Object -ExpandProperty Definition -Copy-Item $SwiplPath -Destination ./executor/temp/binary/swipl.exe \ No newline at end of file diff --git a/executor/.gitignore b/executor/.gitignore index 3124ccf06..fafaa3e73 100644 --- a/executor/.gitignore +++ b/executor/.gitignore @@ -1,2 +1,4 @@ tst-tmp temp +lib +!customHttpDownloader.js \ No newline at end of file diff --git a/executor/README.md b/executor/README.md index fe1138fab..4873d3d71 100644 --- a/executor/README.md +++ b/executor/README.md @@ -1,4 +1,4 @@ -# AD4M Executor (= run-time) +# AD4M Executor (= JS run-time) ## What's AD4M? @@ -8,17 +8,13 @@ AD4M (_Agent-Centric Distributed Application Meta-Ontology_) is an abstract inte 2. **Language** (=space of expressions / combining storage and UI on an abstract level) 3. **Perspective** (=what an agent perceives / spaces of links (triplets) between expressions) -See [the AD4M repository](https://github.com/perspect3vism/ad4m/blob/main/README.md) for a more detailed description as well as TypeScript classes and interfaces. +See [the AD4M repository](https://github.com/coasys/ad4m/blob/main/README.md) for a more detailed description as well as TypeScript classes and interfaces. -## Why a Node.js Executor For AD4M? +## Modules Use -Using this as the local back-end / middleware, all that's left to do in order to build an AD4M based / compatible application is writing a UI that connects to this AD4M executor via it's [GraphQL interface](src/core/graphQL-interface/GraphQL.ts) and potentially adding custom AD4M Languages. See [Perspect3ve](https://github.com/perspect3vism/perspect3ve) for a working example. +This module is used to manage installed AD4M Languages via the `LanguageController`; code [here](https://github.com/coasys/ad4m/blob/main/executor/src/core/LanguageController.ts), maintain an agents internal Perspectives via the `PerspectivesController`; code [here](https://github.com/coasys/ad4m/blob/main/executor/src/core/PerspectivesController.ts), and a local database of links for each `Perspective` via the `db`; code [here](https://github.com/coasys/ad4m/blob/main/executor/src/core/db.ts). -So this package can be used for starting an AD4M node.js runtime. - -`main.js` will listen for calls from the host on the event `init`. Upon receiving this event it will spawn the AD4M runtime; this runtime is interfaced with and managed via a locally running graphql server. Information on the topology of this server can be found [here](./src/core/graphQL-interface/GraphQL.ts). - -More information about the AD4M ontology and scope can be found [here](https://github.com/perspect3vism/perspect3ve/tree/master/src/ad4m). +It exposes functions for core AD4M Operations via: [`GraphQL.ts`](https://github.com/coasys/ad4m/blob/rust-refactor/executor/src/core/graphQL-interface/GraphQL.ts); which routes function calls (expected to be coming from rust-executor) to their appropriate controllers for handling. ## Building diff --git a/executor/customHttpDownloader.js b/executor/customHttpDownloader.js new file mode 100644 index 000000000..d4070dd10 --- /dev/null +++ b/executor/customHttpDownloader.js @@ -0,0 +1,72 @@ +let setup = ({onResolve, onLoad}) => { + onResolve({filter: /^https:\/\/github.com/}, resolveFile) + onResolve({filter: /.*/, namespace: 'http-fetch'}, resolveUrl) + onLoad({filter: /.*/, namespace: 'http-fetch'}, loadSource) +} + +let resolveFile = ({path}) => { + return { + path: path, + namespace: 'http-fetch' + } +} + +export let resolveUrl = ({path, importer}) => { + return { + path: new URL(path, importer).href, + namespace: 'imports' + } +} + +export let loadSource = async ({path}) => { + let source; + if (path.includes('perspect3vism')) { + const commit = path.split("#"); + + const url = `${commit[0].replace("https://github.com", "https://raw.githubusercontent.com")}/${commit[1]}/lib/bundle.js` + + path = url; + } + + source = await fetch(path) + + if (!source.ok) { + let message = `GET ${path} failed: status ${source.status}` + throw new Error(message) + } + + let contents = await source.text() + let pattern = /\/\/# sourceMappingURL=(\S+)/ + let match = contents.match(pattern) + if (match) { + let url = new URL(match[1], source.url) + let dataurl = await loadMap(url) + let comment = `//# sourceMappingURL=${dataurl}` + contents = contents.replace(pattern, comment) + } + + + + let {pathname} = new URL(source.url) + let loader = pathname.match(/[^.]+$/)[0] + + loader = loader === 'mjs' ? 'js' : loader + return {contents, loader} +} + +let loadMap = async url => { + let map = await fetch(url) + let type = map.headers.get('content-type').replace(/\s/g, '') + let buffer = await map.arrayBuffer() + let blob = new Blob([buffer], {type}) + let reader = new FileReader() + return new Promise(cb => { + reader.onload = e => cb(e.target.result) + reader.readAsDataURL(blob) + }) +} + +export default { + name: "custom-http-fetch", + setup +}; \ No newline at end of file diff --git a/executor/esbuild.ts b/executor/esbuild.ts new file mode 100644 index 000000000..461e8d95f --- /dev/null +++ b/executor/esbuild.ts @@ -0,0 +1,183 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.18.2/mod.js"; +import * as path from "https://deno.land/std@0.177.0/path/mod.ts"; +import { loadSource, resolveUrl } from "./customHttpDownloader.js"; + +function denoAlias(nodeModule) { + return { + name: `${nodeModule}-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^${nodeModule}$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/${nodeModule}.ts`, namespace: 'imports' }; + }); + + build.onResolve({filter: /.*/, namespace: 'imports'}, resolveUrl) + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + } +} + +const result = await esbuild.build({ + entryPoints: ['src/deno.ts'], + outfile: 'lib/bundle.js', + bundle: true, + platform: 'node', + target: 'esnext', + format: 'esm', + globalName: 'executor', + charset: 'ascii', + legalComments: 'inline', + plugins: [ + { + name: `node:net`, + setup(build) { + build.onResolve({ filter: new RegExp(`^node:net$`) }, (args) => { + return { path: path.resolve(`deno_std-0.177.0/node/net.ts`), external: false }; + }); + }, + }, + ...[ + 'crypto', 'path', 'fs', 'net', 'dns', 'cluster', 'https', + 'dgram', 'os', 'tls', 'http', 'url', 'util', 'stream', 'events', 'tty', + 'zlib', 'assert', 'buffer', 'constants', 'querystring', 'string_decoder', + 'global', 'process', + ].map(denoAlias), + { + name: `dns-promisis-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^dns/promises$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/dns.ts`, external: true }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: `child_process`, + setup(build) { + build.onResolve({ filter: new RegExp(`^child_process$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/child_process.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: `fs-promisis-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^fs/promises$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/fs.ts`, external: true }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: `ws-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^ws$`) }, (args) => { + return { path: `https://deno.land/x/websocket@v0.1.4/mod.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: `aloe`, + setup(build) { + build.onResolve({ filter: new RegExp(`^aloedb-node$`) }, (args) => { + return { path: 'https://deno.land/x/aloedb@0.9.0/mod.ts', namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/std@0.150.0/media_types/mod.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.150.0/media_types/mod.ts$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/media_types/mod.ts`, external: true }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/std@0.177.0/node/util.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/util.ts$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/util.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/std@0.177.0/node/os.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/os.ts$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/os.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/std@0.177.0/node/global.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/global.ts$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/global.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/std@0.177.0/node/path.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/path.ts$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/path.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/x/xhr@0.3.0/mod.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/x/xhr@0.3.0/mod.ts$`) }, (args) => { + return { path: `https://deno.land/x/xhr@0.3.0/mod.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + ], +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/executor/package.json b/executor/package.json index 7e9a8abcc..575172e95 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.5.1", + "version": "0.6.0", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "main": "lib/main.js", "files": [ @@ -16,26 +16,12 @@ "type": "module", "types": "lib/main.d.ts", "scripts": { - "build": "tsc", - "run": "node --experimental-specifier-resolution=node lib/main.js", - "prepare-test": "run-script-os", - "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", - "prepare-test:linux": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", - "prepare-test:windows": "powershell -ExecutionPolicy Bypass -File ./scripts/build-test-language.ps1 && powershell -ExecutionPolicy Bypass -File ./scripts/prepareTestDirectory.ps1 && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", - "inject-language-language": "node scripts/injectLanguageLanguageBundle.js", - "inject-publishing-agent": "node scripts/injectPublishingAgent.js", - "publish-test-languages": "ts-node-esm --experimental-specifier-resolution=node --files ./src/testutils/publishTestLangs.ts", - "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", - "test:windows": "yarn run prepare-test:windows && yarn run test-all:windows && node scripts/cleanTestingData.js", - "test-all": "yarn run test-perspective && yarn run test-auth-unit && yarn run test-db && yarn run test-prolog && yarn run test-swipl && yarn run test-auth && yarn run test-app && yarn run test-integration", - "test-all:windows": "yarn run test-all", - "test-integration": "ts-mocha -p tsconfig.json --timeout 50000 --exit src/tests/integration.test.ts", - "test-auth": "ts-mocha -p tsconfig.json --timeout 50000 --exit src/tests/authentication.test.ts", - "test-app": "ts-mocha -p tsconfig.json --timeout 50000 --exit src/tests/app.test.ts", + "build": "deno run --allow-all esbuild.ts", + "bundle": "deno run --allow-all esbuild.ts", + "test": "yarn run test-perspective && yarn test-db && yarn run test-auth-unit", "test-perspective": "ts-mocha -p tsconfig.json --exit src/core/Perspective.test.ts", "test-db": "ts-mocha -p tsconfig.json --exit src/core/db.test.ts", "test-prolog": "ts-mocha -p tsconfig.json --exit src/core/PrologInstance.test.ts", - "test-swipl": "ts-mocha -p tsconfig.json --exit src/core/Swipl.test.ts", "test-auth-unit": "ts-mocha -p tsconfig.json --exit src/core/agent/Auth.test.ts" }, "repository": { @@ -57,71 +43,38 @@ "url": "https://github.com/perspect3vism/ad4m/issues" }, "devDependencies": { - "@apollo/client": "3.7.10", - "@peculiar/webcrypto": "^1.1.7", "@types/chai": "*", - "@types/chai-as-promised": "*", - "@types/expect": "*", "@types/faker": "^5.5.7", - "@types/fs-extra": "^9.0.12", "@types/js-yaml": "^4.0.2", - "@types/lowdb": "^1.0.11", "@types/mocha": "*", "@types/node": "^18.0.0", - "@types/node-fetch": "^2.5.11", "@types/secp256k1": "^4.0.3", "@types/sha256": "^0.2.0", "@types/sinon": "*", "@types/uuid": "^8.3.1", - "@types/ws": "8.5.4", "chai": "*", - "chai-as-promised": "*", "faker": "^5.1.0", "mocha": "*", - "node-wget-js": "^1.0.1", - "react": "^17.0.1", "sinon": "*", - "ts-mocha": "*", - "ts-node": "10.9.1", - "typescript": "^4.6.2", - "unzipper": "^0.10.11", - "ws": "8.13.0" + "ts-mocha": "*" }, "dependencies": { - "@graphql-tools/schema": "^8.5.1", - "@holochain/client": "0.12.5", + "@holochain/client": "perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b", + "@msgpack/msgpack": "3.0.0-beta2", "@noble/secp256k1": "^1.7.0", "@perspect3vism/ad4m": "*", - "@transmute/did-key-ed25519": "^0.2.1-unstable.29", - "@transmute/did-key-secp256k1": "^0.2.1-unstable.29", "@transmute/did-key.js": "^0.2.1-unstable.29", - "@transmute/did-wallet": "lucksus/did-wallet", - "@types/express": "^4.17.14", "@types/json-stable-stringify": "^1.0.33", "@types/mocha": "^10.0.0", "aloedb-node": "^1.1.1", - "apollo-server": "3.12.0", - "apollo-server-core": "3.12.0", - "apollo-server-express": "3.12.0", "async-mutex": "^0.3.2", - "express": "4.18.2", - "fs-extra": "^10.0.0", "get-port": "5.1.1", - "graphql": "15.7.2", - "graphql-subscriptions": "2.0.0", - "graphql-ws": "5.12.0", - "ipfs": "^0.65.0", - "jose": "^4.8.1", "js-yaml": "^4.1.0", "json-stable-stringify": "^1.0.1", - "key-encoder": "^2.0.3", + "linkedom": "^0.14.26", "lodash": "^4.17.21", - "lowdb": "^1.0.0", - "node-fetch": "^2.6.1", - "run-script-os": "^1.1.6", "sha256": "^0.2.0", - "sha3": "^2.1.3", - "swipl-stdio": "https://github.com/perspect3vism/node-swipl-stdio.git", - "tmp": "^0.2.1" + "tmp": "^0.2.1", + "uuid": "*" } } diff --git a/executor/scripts/build-test-language.ps1 b/executor/scripts/build-test-language.ps1 deleted file mode 100644 index 433297302..000000000 --- a/executor/scripts/build-test-language.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -Set-Location src\tests\test-language -npm i -npm run build diff --git a/executor/scripts/build-test-language.sh b/executor/scripts/build-test-language.sh deleted file mode 100755 index b9666d17a..000000000 --- a/executor/scripts/build-test-language.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -cd src/tests/test-language -yarn install -yarn run build diff --git a/executor/scripts/download-languages-path b/executor/scripts/download-languages-path deleted file mode 100644 index b50d6d6d6..000000000 --- a/executor/scripts/download-languages-path +++ /dev/null @@ -1 +0,0 @@ -./src/tst-tmp/languages \ No newline at end of file diff --git a/executor/scripts/install-binaries.ps1 b/executor/scripts/install-binaries.ps1 deleted file mode 100644 index eb39777ea..000000000 --- a/executor/scripts/install-binaries.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -rustup target add wasm32-unknown-unknown - -$HoloPath = Get-Command holochain | Select-Object -ExpandProperty Definition - -if ($HoloPath -ne $null) { - if (Test-Path $HoloPath) { - $Version = Invoke-Expression "$HoloPath --version" - - if($Version -notlike '*0.1.0*') { - cargo install --locked holochain --git https://github.com/holochain/holochain.git --tag holochain-0.1.0 --force --locked - } - } -} else { - cargo install --locked holochain --git https://github.com/holochain/holochain.git --tag holochain-0.1.0 --force --locked -} - -$HcPath = Get-Command hc | Select-Object -ExpandProperty Definition - -if ($HcPath -ne $null) { - if (Test-Path $HcPath) { - $Version = Invoke-Expression "$HcPath --version" - - if($Version -notlike '*0.1.0*') { - cargo install holochain_cli --version 0.1.0 --force --locked - } - } -} else { - cargo install holochain_cli --version 0.1.0 --force --locked -} \ No newline at end of file diff --git a/executor/scripts/prepareTestDirectory.ps1 b/executor/scripts/prepareTestDirectory.ps1 deleted file mode 100644 index f7331f647..000000000 --- a/executor/scripts/prepareTestDirectory.ps1 +++ /dev/null @@ -1,16 +0,0 @@ -choco install wget --no-progress -# $env:path += ";C:\Program Files\swipl\bin" - -mkdir src\tst-tmp -cd src\tst-tmp -mkdir agents -mkdir languages -mkdir languages\test-language -cp -r ..\tests\test-language\build languages\test-language\build - -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./hc.exe - -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-windows-0.1.0.exe -O ./holochain.exe - -$SwiplPath = Get-Command swipl.exe | Select-Object -ExpandProperty Definition -Copy-Item $SwiplPath -Destination swipl.exe diff --git a/executor/scripts/prepareTestDirectory.sh b/executor/scripts/prepareTestDirectory.sh deleted file mode 100755 index bcd870ef4..000000000 --- a/executor/scripts/prepareTestDirectory.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -[ -d "src/tst-tmp" ] && rm -rf src/tst-tmp -mkdir src/tst-tmp -cd src/tst-tmp -mkdir agents -mkdir languages -mkdir languages/test-language -cp -r ../tests/test-language/build languages/test-language/build - -ln -s ../../temp/binary/hc ./hc -ln -s ../../temp/binary/holochain ./holochain -#ln -s ../../temp/swipl/bin/swipl ./swipl -homedir=`echo "$(cd ../../temp/swipl/lib/swipl; pwd)"` -echo '#!/bin/bash' > ./swipl -echo 'cd ../../temp/swipl/bin' >> ./swipl -echo -n "./swipl --home=${homedir} " >> ./swipl -echo '"$@"' >> ./swipl -chmod +x ./swipl diff --git a/executor/scripts/run-all-test.ps1 b/executor/scripts/run-all-test.ps1 deleted file mode 100644 index 250ee0fd8..000000000 --- a/executor/scripts/run-all-test.ps1 +++ /dev/null @@ -1 +0,0 @@ -$env:PATH = '.\src\tst-tmp;'+ $env:PATH \ No newline at end of file diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/Ad4mCore.ts similarity index 75% rename from executor/src/core/PerspectivismCore.ts rename to executor/src/core/Ad4mCore.ts index 7da4baa1d..d31c6882a 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -3,28 +3,27 @@ import { parseExprUrl, LanguageRef, Neighbourhood, PerspectiveState } from '@per import * as Config from './Config' import * as Db from './db' -import type { PerspectivismDb } from './db' +import type { Ad4mDb } from './db' import HolochainService, { HolochainConfiguration } from './storage-services/Holochain/HolochainService'; -import * as IPFS from './storage-services/IPFS' import AgentService from './agent/AgentService' import PerspectivesController from './PerspectivesController' import LanguageController from './LanguageController' -import * as GraphQL from './graphQL-interface/GraphQL' import * as DIDs from './agent/DIDs' import type { DIDResolver } from './agent/DIDs' import Signatures from './agent/Signatures' -import * as PubSub from './graphQL-interface/PubSub' -import { IPFS as IPFSType } from 'ipfs' +import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' +import EntanglementProofController from './EntanglementProof' import fs from 'fs' import { AgentInfoResponse } from '@holochain/client' import RuntimeService from './RuntimeService' -import { PERSPECT3VIMS_AGENT_INFO } from './perspect3vismAgentInfo' import { v4 as uuidv4 } from 'uuid'; import { MainConfig } from './Config' -import { OuterConfig } from '../main' import path from "path"; -import { sleep } from "./utils"; +import { getPubSub, sleep } from "./utils"; +export interface InitServicesParams { + agentService: AgentService, +} export interface InitIPFSParams { ipfsSwarmPort?: number, ipfsRepoPath?: string, @@ -37,6 +36,8 @@ export interface InitHolochainParams { hcUseLocalProxy?: boolean, hcUseMdns?: boolean, passphrase?: string + hcProxyUrl: string, + hcBootstrapUrl: string, } export interface HolochainUnlockConfiguration extends HolochainConfiguration { @@ -48,28 +49,31 @@ export interface ConnectHolochainParams { hcPortApp: number, } -export default class PerspectivismCore { +export default class Ad4mCore { #config: MainConfig; #holochain?: HolochainService - #IPFS?: IPFSType + //#IPFS?: IPFSType #agentService: AgentService #runtimeService: RuntimeService - #db: PerspectivismDb + #db: Ad4mDb #didResolver: DIDResolver #signatures: Signatures #perspectivesController?: PerspectivesController #languageController?: LanguageController + #entanglementProofController?: EntanglementProofController #languagesReady: Promise #resolveLanguagesReady: (value: void) => void + resolvers: any + constructor(config: Config.CoreConfig) { this.#config = Config.init(config); - this.#agentService = new AgentService(this.#config.rootConfigPath, this.#config.reqCredential) + this.#agentService = new AgentService(this.#config.rootConfigPath, this.#config.adminCredential) this.#runtimeService = new RuntimeService(this.#config) this.#agentService.ready.then(() => { this.#runtimeService.did = this.#agentService!.did! @@ -77,7 +81,7 @@ export default class PerspectivismCore { this.#agentService.load() this.#db = Db.init(this.#config.dataPath) this.#didResolver = DIDs.init(this.#config.dataPath) - this.#signatures = new Signatures(this.#didResolver) + this.#signatures = new Signatures() const that = this this.#resolveLanguagesReady = () => {} this.#languagesReady = new Promise(resolve => { @@ -85,6 +89,44 @@ export default class PerspectivismCore { }) } + async callResolver (type: string, fnName: string, args: any, context: any) { + //console.log("Calling resolvers with data", type, fnName, args, context); + if(!this.resolvers[type]) throw new Error(`Could not find resolver for type ${type}`) + if(!this.resolvers[type][fnName]) throw new Error(`Could not find resolver function ${fnName} for type ${type}`) + try { + let result; + if (args && context) { + result = await this.resolvers[type][fnName](args, context); + } + if (!args) { + result = await this.resolvers[type][fnName](context); + } + if (!context) { + result = await this.resolvers[type][fnName](args); + } + if (!args && !context) { + result = await this.resolvers[type][fnName](); + } + return {"Ok": result} + } catch (error) { + //@ts-ignore + if (typeof error.message === "object") { + //@ts-ignore + return {"Error": JSON.stringify(error.message)}; + } else { + //@ts-ignore + return {"Error": error.message} + } + } + } + + get holochainService(): HolochainService { + if (!this.#holochain) { + throw Error("No holochain service") + } + return this.#holochain + } + get agentService(): AgentService { return this.#agentService } @@ -93,6 +135,13 @@ export default class PerspectivismCore { return this.#runtimeService } + get signatureService(): Signatures { + if (!this.#signatures) { + throw Error("No signature service") + } + return this.#signatures + } + get perspectivesController(): PerspectivesController { if (!this.#perspectivesController) { throw Error("No perspectiveController") @@ -107,7 +156,14 @@ export default class PerspectivismCore { return this.#languageController! } - get database(): PerspectivismDb { + get entanglementProofController(): EntanglementProofController { + if (!this.#entanglementProofController) { + this.#entanglementProofController = new EntanglementProofController(this.#config.rootConfigPath, this.#agentService); + } + return this.#entanglementProofController + } + + get database(): Ad4mDb { return this.#db } @@ -117,31 +173,19 @@ export default class PerspectivismCore { for(let ph of this.perspectivesController.allPerspectiveHandles()) { const perspective = this.perspectivesController.perspective(ph.uuid) perspective.clearPolling() - perspective.closePrologEngine() } console.log("Stopping IPFS") - await this.#IPFS?.stop({timeout: 15}); + //await this.#IPFS?.stop({timeout: 15}); console.log("Stopping Holochain conductor") await this.#holochain?.stop(); console.log("Done.") } - async startGraphQLServer(port: number, mocks: boolean, config: OuterConfig) { - const { url, subscriptionsUrl } = await GraphQL.startServer({ - core: this, - mocks, - port, - config - }) - console.log(`🚀 GraphQL Server ready at ${url}`) - console.log(`🚀 GraphQL subscriptions ready at ${subscriptionsUrl}`) - } - async initIPFS(params: InitIPFSParams) { console.log("Init IPFS service with port ", params.ipfsSwarmPort, " at path: ", params.ipfsRepoPath); - let ipfs = await IPFS.init(params.ipfsSwarmPort, params.ipfsRepoPath); - this.#IPFS = ipfs; + //let ipfs = await IPFS.init(params.ipfsSwarmPort, params.ipfsRepoPath); + //this.#IPFS = ipfs; } async initHolochain(params: InitHolochainParams) { @@ -158,27 +202,17 @@ export default class PerspectivismCore { useProxy: params.hcUseProxy, useLocalProxy: params.hcUseLocalProxy, useMdns: params.hcUseMdns, + hcProxyUrl: params.hcProxyUrl, + hcBootstrapUrl: params.hcBootstrapUrl, } - this.#holochain = new HolochainService(holochainConfig) + this.#holochain = new HolochainService(holochainConfig, this.#agentService, this.entanglementProofController) await this.#holochain.run({ ...holochainConfig, passphrase: params.passphrase! }); } - async connectHolochain(params: ConnectHolochainParams) { - console.log("Init ad4m service with resource path ", this.#config.resourcePath) - console.log(`Holochain ports: admin=${params.hcPortAdmin} app=${params.hcPortApp}`) - this.#holochain = new HolochainService({ - dataPath: this.#config.holochainDataPath, - resourcePath: this.#config.resourcePath, - adminPort: params.hcPortAdmin, - appPort: params.hcPortApp, - }) - await this.#holochain.connect(); - } - async waitForAgent(): Promise { return this.#agentService.ready } @@ -187,19 +221,19 @@ export default class PerspectivismCore { return this.#languagesReady } - languageSignal(signal: any) { + async languageSignal(signal: any) { // //@ts-ignore - // console.log(new Date().toISOString(), "PerspectivismCore.languageSignal: Got signal"); - //NOTE (optimization): worth considering if its worth keeping around pubsub in this or if we should just get a new pubsub here + // console.log(new Date().toISOString(), "Ad4mCore.languageSignal: Got signal"); + let pubSub = getPubSub(); //@ts-ignore - this.pubsub.publish(PubSub.SIGNAL, { signal: JSON.stringify(signal), language: this.language }); + await pubSub.publish(PubSubDefinitions.SIGNAL, { signal: JSON.stringify(signal), language: this.language }); } initControllers() { this.#languageController = new LanguageController({ agent: this.#agentService, runtime: this.#runtimeService, - IPFS: this.#IPFS, + //IPFS: this.#IPFS, signatures: this.#signatures, ad4mSignal: this.languageSignal, config: this.#config, @@ -211,6 +245,8 @@ export default class PerspectivismCore { languageController: this.#languageController, config: this.#config }) + + this.entanglementProofController } async initLanguages() { @@ -238,7 +274,7 @@ export default class PerspectivismCore { perspectiveID.sharedUrl = neighbourhoodUrl perspectiveID.neighbourhood = neighbourhood; perspectiveID.state = PerspectiveState.Synced; - this.#perspectivesController!.replace(perspectiveID, neighbourhood, false, PerspectiveState.Synced) + await this.#perspectivesController!.replace(perspectiveID, neighbourhood, false, PerspectiveState.Synced) return neighbourhoodUrl } @@ -263,7 +299,8 @@ export default class PerspectivismCore { state = PerspectiveState.LinkLanguageFailedToInstall; } - return this.#perspectivesController!.add("", url, neighbourhood, true, state); + console.log("Core.installNeighbourhood(): Creating perspective", url, neighbourhood, state); + return await this.#perspectivesController!.add("", url, neighbourhood, true, state); } async languageApplyTemplateAndPublish(sourceLanguageHash: string, templateData: object): Promise { @@ -304,10 +341,6 @@ export default class PerspectivismCore { } } - async pubKeyForLanguage(lang: string): Promise { - return Buffer.from(await this.#holochain!.pubKeyForLanguage(lang)) - } - async holochainRequestAgentInfos(): Promise { return await this.#holochain!.requestAgentInfos() } @@ -316,22 +349,25 @@ export default class PerspectivismCore { await this.#holochain!.addAgentInfos(agent_infos) } - async connectToHardwiredPerspect3vismAgent() { - //@ts-ignore - await this.holochainAddAgentInfos(PERSPECT3VIMS_AGENT_INFO()) - console.debug("Added Perspect3vism Holochain agent infos.") + async connectToAd4mHolochainNode() { + // //@ts-ignore + // await this.holochainAddAgentInfos(PERSPECT3VIMS_AGENT_INFO()) + console.debug("Added AD4M Holochain agent infos.") } async initializeAgentsDirectMessageLanguage() { + console.log("wait for languages"); await this.waitForLanguages() + console.log("finished wait"); const agent = this.#agentService.agent! if(agent.directMessageLanguage) return console.log("Agent doesn't have direct message language set yet. Creating from template...") + console.log("Cloning direct message language from template..."); const templateParams = { uid: uuidv4(), recipient_did: this.#agentService.agent?.did, - recipient_hc_agent_pubkey: Buffer.from((await this.#holochain?.pubKeyForAllLanguages())!).toString('hex') + recipient_hc_agent_pubkey: Buffer.from(await HOLOCHAIN_SERVICE.getAgentKey()).toString('hex') } console.debug("Now creating clone with parameters:", templateParams) const createdDmLang = await this.languageApplyTemplateAndPublish(this.#config.directMessageLanguage, templateParams) @@ -364,6 +400,6 @@ export default class PerspectivismCore { } } -export function create(config: Config.CoreConfig): PerspectivismCore { - return new PerspectivismCore(config) +export function create(config: Config.CoreConfig): Ad4mCore { + return new Ad4mCore(config) } \ No newline at end of file diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index b8395cf5d..2eb78cc31 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import * as fs from 'fs'; import { Address, Expression } from '@perspect3vism/ad4m'; -export let ad4mExecutorVersion = "0.5.1"; +export let ad4mExecutorVersion = "0.6.0"; export let agentLanguageAlias = "did"; export let languageLanguageAlias = "lang"; export let neighbourhoodLanguageAlias = "neighbourhood"; @@ -18,7 +18,7 @@ export class MainConfig { holochainConductorPath: string; resourcePath: string = ''; languageLanguageOnly: boolean = false; - reqCredential: string = ''; + adminCredential: string = ''; knownLinkLanguages: string[] = []; trustedAgents: string[] = []; systemLanguages: string[] = []; @@ -35,8 +35,7 @@ export class MainConfig { swiplPath: string | undefined = undefined; swiplHomePath: string | undefined = undefined; - constructor(resourcePath = '', appDataPath = '') { - this.resourcePath = resourcePath; + constructor(appDataPath = '') { this.rootConfigPath = path.join(appDataPath, 'ad4m'); this.dataPath = path.join(this.rootConfigPath, 'data') this.languagesPath = path.join(this.rootConfigPath, 'languages') @@ -53,7 +52,6 @@ export type LanguageAlias = { export interface CoreConfig { appDataPath: string - appResourcePath: string languageLanguageBundle: string systemLanguages: string[] preloadLanguages: string[] @@ -68,17 +66,15 @@ export interface CoreConfig { perspectiveLanguageSettings?: object neighbourhoodLanguageSettings?: object languageLanguageSettings?: object - reqCredential?: string - swiplPath?: string, - swiplHomePath?: string, + adminCredential?: string } export function init(c: CoreConfig): MainConfig { - const mainConfig = new MainConfig(c.appResourcePath, c.appDataPath); + const mainConfig = new MainConfig(c.appDataPath); - if(c.reqCredential) { - mainConfig.reqCredential = c.reqCredential + if(c.adminCredential) { + mainConfig.adminCredential = c.adminCredential } //Create paths if they do not exist @@ -119,8 +115,6 @@ export function init(c: CoreConfig): MainConfig { if (c.languageLanguageSettings) { mainConfig.languageLanguageSettings = c.languageLanguageSettings } - mainConfig.swiplPath = c.swiplPath - mainConfig.swiplHomePath = c.swiplHomePath return mainConfig; } diff --git a/executor/src/core/EntanglementProof.ts b/executor/src/core/EntanglementProof.ts new file mode 100644 index 000000000..4f8766997 --- /dev/null +++ b/executor/src/core/EntanglementProof.ts @@ -0,0 +1,55 @@ +import path from "path"; +import fs from "fs"; +import AgentService from "./agent/AgentService"; + +import { EntanglementProof } from '@perspect3vism/ad4m'; + +export default class EntanglementProofController { + #entanglementProofsFile: string + #agentService: AgentService + + constructor(rootConfigPath: string, agentService: AgentService) { + this.#entanglementProofsFile = path.join(rootConfigPath, "entanglementProofs.json") + this.#agentService = agentService + } + + signDeviceKey(deviceKey: string, deviceKeyType: string): EntanglementProof { + return new EntanglementProof(this.#agentService.did!, this.#agentService.signingKeyId!, deviceKeyType, deviceKey, this.#agentService.signString(deviceKey)) + } + + generateHolochainProof(holochainPubKey: string, signedDid: string): EntanglementProof { + return new EntanglementProof(this.#agentService.did!, this.#agentService.signingKeyId!, "holochain", holochainPubKey, this.#agentService.signString(holochainPubKey), signedDid) + } + + addEntanglementProofs(proofs: EntanglementProof[]): void { + let entanglementProofs: EntanglementProof[]; + if (fs.existsSync(this.#entanglementProofsFile)) { + entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofsFile).toString())); + entanglementProofs = entanglementProofs.concat(proofs); + entanglementProofs = Array.from(new Set(entanglementProofs)); + } else { + entanglementProofs = proofs + } + + fs.writeFileSync(this.#entanglementProofsFile, JSON.stringify(entanglementProofs)) + } + + deleteEntanglementProofs(proofs: EntanglementProof[]): void { + if (fs.existsSync(this.#entanglementProofsFile)) { + let entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofsFile).toString())); + for (const agent of proofs) { + entanglementProofs.splice(entanglementProofs.findIndex((value) => value == agent), 1); + } + fs.writeFileSync(this.#entanglementProofsFile, JSON.stringify(entanglementProofs)) + } + } + + getEntanglementProofs(): EntanglementProof[] { + if (fs.existsSync(this.#entanglementProofsFile)) { + let entanglementProofs: EntanglementProof[] = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofsFile).toString())); + return entanglementProofs + } else { + return [] + } + } +} \ No newline at end of file diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 82b3e1d94..06d61e7c8 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -10,13 +10,14 @@ import path from 'path' import * as Config from './Config' import type HolochainService from './storage-services/Holochain/HolochainService'; import type AgentService from './agent/AgentService' -import * as PubSub from './graphQL-interface/PubSub' +import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' import yaml from "js-yaml"; import { v4 as uuidv4 } from 'uuid'; import RuntimeService from './RuntimeService'; import Signatures from './agent/Signatures'; -import { PerspectivismDb } from './db'; +import { Ad4mDb } from './db'; import stringify from 'json-stable-stringify' +import { getPubSub } from './utils'; type LinkObservers = (diff: PerspectiveDiff, lang: LanguageRef)=>void; type TelepresenceSignalObserver = (signal: PerspectiveExpression, lang: LanguageRef)=>void; @@ -26,11 +27,9 @@ interface Services { holochainService: HolochainService, runtimeService: RuntimeService, signatures: Signatures, - db: PerspectivismDb + db: Ad4mDb } -class ImportError extends Error {} - const importModule = async (modulePath: string) => { // To deal with ESM on windows requires absolute path and file protocol if (process.platform === "win32") { @@ -39,24 +38,24 @@ const importModule = async (modulePath: string) => { return await import(path) } - return await import(modulePath) -} - -const requireModule = async (modulePath: string) => { - return await require(modulePath) + return await import(`file://${modulePath}`) } const loadModule = async (modulePath: string) => { - try { - return await importModule(modulePath) - } catch (e1) { + // Check if the file exists try { - return await requireModule(modulePath) - } catch (e2) { - throw new ImportError(`Unable to import module ${modulePath}. Got error ${e1} when trying to import as es module\n - and error when trying to import as commonjs ${e2}`) + //@ts-ignore + await Deno.stat(modulePath); + } catch (err) { + //@ts-ignore + if (err instanceof Deno.errors.NotFound) { + throw new Error(`File not found: ${modulePath}`); + } + throw err; } - } + const res = await UTILS.loadModule(`file://${modulePath}`); + + return await importModule(modulePath) } export default class LanguageController { @@ -69,14 +68,14 @@ export default class LanguageController { #holochainService: HolochainService #runtimeService: RuntimeService; #signatures: Signatures; - #db: PerspectivismDb; + #db: Ad4mDb; #config: Config.MainConfig; + #pubSub: PubSub; #agentLanguage?: Language #languageLanguage?: Language #neighbourhoodLanguage?: Language #perspectiveLanguage?: Language - pubSub constructor(context: object, services: Services) { this.#context = context @@ -85,21 +84,21 @@ export default class LanguageController { this.#signatures = services.signatures this.#db = services.db this.#languages = new Map() + this.#languages.set("literal", { + name: "literal", + interactions() { return [] }, + } as Language) this.#languageConstructors = new Map() this.#linkObservers = [] this.#telepresenceSignalObservers = [] this.#syncStateChangeObservers = [] - this.pubSub = PubSub.get() this.#config = (context as any).config; + this.#pubSub = getPubSub(); } async loadLanguages() { - try { - await this.loadSystemLanguages() - if (!this.#config.languageLanguageOnly) await this.loadInstalledLanguages() - } catch (e) { - throw new Error(`LanguageController.loadLanguages: Error loading languages ${e}`); - } + await this.loadSystemLanguages() + if (!this.#config.languageLanguageOnly) await this.loadInstalledLanguages() } async loadSystemLanguages() { @@ -169,8 +168,8 @@ export default class LanguageController { let errMsg = `LanguageController.loadInstalledLanguages(): COULDN'T LOAD LANGUAGE: ${bundlePath}` console.error(errMsg) console.error(e) - this.pubSub.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to load installed language", message: errMsg, @@ -209,6 +208,9 @@ export default class LanguageController { sourceFilePath = path.join(process.env.PWD!, sourceFilePath) const bundleBytes = fs.readFileSync(sourceFilePath) + if (bundleBytes.length === 0) { + throw new Error("Language to be loaded does not contain any data") + } // @ts-ignore const hash = await this.ipfsHash(bundleBytes) console.debug("LanguageController.loadLanguage: loading language at path", sourceFilePath, "with hash", hash); @@ -216,23 +218,17 @@ export default class LanguageController { try { languageSource = await loadModule(sourceFilePath); } catch (e) { - const cjsPath = sourceFilePath.replace(".js", ".cjs"); - fs.copyFileSync(sourceFilePath, cjsPath); - try { - languageSource = await loadModule(cjsPath); - } catch (e) { - const errMsg = `Could not load language ${e}`; - console.error(errMsg); - this.pubSub.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, - { - title: "Failed to load installed language", - message: errMsg, - type: ExceptionType.LanguageIsNotLoaded - } as ExceptionInfo - ); - throw new Error(errMsg); - } + const errMsg = `Could not load language ${e}`; + console.error(errMsg); + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, + { + title: "Failed to load installed language", + message: errMsg, + type: ExceptionType.LanguageIsNotLoaded + } as ExceptionInfo + ); + throw new Error(errMsg); } console.warn("LanguageController.loadLanguage: language loaded!"); let create; @@ -250,7 +246,7 @@ export default class LanguageController { const storageDirectory = this.getLanguageStoragePath(hash) const Holochain = this.#holochainService.getDelegateForLanguage(hash) //@ts-ignore - const ad4mSignal = this.#context.ad4mSignal.bind({language: hash, pubsub: this.pubSub}); + const ad4mSignal = this.#context.ad4mSignal.bind({language: hash, pubsub: this.#pubSub}); const language = await create({...this.#context, customSettings, storageDirectory, Holochain, ad4mSignal}) if(language.linksAdapter) { @@ -260,21 +256,23 @@ export default class LanguageController { if (language.linksAdapter.addSyncStateChangeCallback) { language.linksAdapter.addSyncStateChangeCallback((state: PerspectiveState) => { + console.log("LanguageController.loadLanguage: sync state change", state); this.callSyncStateChangeObservers(state, {address: hash, name: language.name} as LanguageRef); }) } } if(language.telepresenceAdapter) { - language.telepresenceAdapter.registerSignalCallback((payload: PerspectiveExpression) => { + language.telepresenceAdapter.registerSignalCallback(async (payload: PerspectiveExpression) => { + await this.tagPerspectiveExpressionSignatureStatus(payload) this.callTelepresenceSignalObservers(payload, {address: hash, name: language.name} as LanguageRef); }) } //@ts-ignore if(language.directMessageAdapter && language.directMessageAdapter.recipient() == this.#context.agent.did) { - language.directMessageAdapter.addMessageCallback((message: PerspectiveExpression) => { - this.pubSub.publish(PubSub.DIRECT_MESSAGE_RECEIVED, message) + language.directMessageAdapter.addMessageCallback(async (message: PerspectiveExpression) => { + await this.#pubSub.publish(PubSubDefinitions.RUNTIME_MESSAGED_RECEIVED_TOPIC, message) }) } @@ -297,7 +295,7 @@ export default class LanguageController { const storageDirectory = this.getLanguageStoragePath(hash) const Holochain = this.#holochainService.getDelegateForLanguage(hash) //@ts-ignore - const ad4mSignal = this.#context.ad4mSignal.bind({language: address, pubsub: this.pubSub}); + const ad4mSignal = this.#context.ad4mSignal.bind({language: address, pubsub: this.#pubSub}); //@ts-ignore const language = await create!({...this.#context, storageDirectory, Holochain, ad4mSignal, customSettings}) @@ -322,8 +320,8 @@ export default class LanguageController { //@ts-ignore if(language.directMessageAdapter && language.directMessageAdapter.recipient() == this.#context.agent.did) { - language.directMessageAdapter.addMessageCallback((message: PerspectiveExpression) => { - this.pubSub.publish(PubSub.DIRECT_MESSAGE_RECEIVED, message) + language.directMessageAdapter.addMessageCallback(async (message: PerspectiveExpression) => { + await this.#pubSub.publish(PubSubDefinitions.RUNTIME_MESSAGED_RECEIVED_TOPIC, message) }) } @@ -356,34 +354,43 @@ export default class LanguageController { } async ipfsHash(data: Buffer|string): Promise { - // @ts-ignore - const ipfsAddress = await this.#context.IPFS.add({content: data.toString()}, {onlyHash: true}) - return ipfsAddress.cid.toString() + if (typeof data != "string") { + data = data.toString(); + } + const hash = UTILS.hash(data); + return hash; } async installLanguage(address: Address, languageMeta: null|Expression): Promise { const language = this.#languages.get(address) if (language) return language - //Check that the metafile already exists with language with this address to avoid refetch - const metaFile = path.join(path.join(this.#config.languagesPath, address), "meta.json"); - if(!fs.existsSync(metaFile)) { - //Get language meta information - console.log(new Date(), "installLanguage: installing language with address", address); - if(!languageMeta) { - try { - languageMeta = await this.getLanguageExpression(address) - } catch (e) { - throw Error(`Error getting language meta from language language: ${e}`) + if(!languageMeta) { + //Check that the metafile already exists with language with this address to avoid refetch + const metaFile = path.join(path.join(this.#config.languagesPath, address), "meta.json"); + + if(fs.existsSync(metaFile)) { + languageMeta = JSON.parse(fs.readFileSync(metaFile).toString()); + } else { + // We need to get the meta from the language language + // Retry 10 times with increasing delay to account for Holochain sync + let retries = 0; + while (!languageMeta && retries < 10) { + try { + languageMeta = await this.getLanguageExpression(address) + } catch (e) { + console.error(`Error getting language meta from language language: ${e}\nRetrying...`) + } + retries++; + await new Promise(r => setTimeout(r, 5000 * retries)); } } - } else { - languageMeta = JSON.parse(fs.readFileSync(metaFile).toString()); - }; - if (languageMeta == null) { - //@ts-ignore - languageMeta = {data: {}}; + if (languageMeta == null) { + //@ts-ignore + languageMeta = {data: {}}; + } } + console.log("LanguageController.installLanguage: INSTALLING LANGUAGE:", languageMeta.data) let bundlePath = path.join(path.join(this.#config.languagesPath, address), "bundle.js"); @@ -429,7 +436,7 @@ export default class LanguageController { console.error("LanguageController.installLanguage: ERROR LOADING NEWLY INSTALLED LANGUAGE") console.error("LanguageController.installLanguage: ======================================") console.error(e) - fs.rmdirSync(languagePath, {recursive: true}) + //fs.rmdirSync(languagePath, {recursive: true}) //@ts-ignore throw Error(`Error loading language [${sourcePath}]: ${e.toString()}`) } @@ -442,15 +449,15 @@ export default class LanguageController { language.teardown(); } - this.#holochainService.removeDnaForLang(hash as string); + //Remove language from memory + this.#languages.delete(hash as string); + this.#languageConstructors.delete(hash as string); + + await this.#holochainService.removeDnaForLang(hash as string); //Remove language files const languagePath = path.join(this.#config.languagesPath, hash as string); fs.rmdirSync(languagePath, {recursive: true}); - - //Remove language from memory - this.#languages.delete(hash as string); - this.#languageConstructors.delete(hash as string); } languageForExpression(e: ExpressionRef): Language { @@ -510,8 +517,8 @@ export default class LanguageController { ) { let errMsg = `Language not created by trusted agent: ${languageAuthor} and is not templated... aborting language install. Language metadata: ${stringify(languageMetaData)}` console.error(errMsg) - this.pubSub.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to install language", message: errMsg, @@ -549,8 +556,8 @@ export default class LanguageController { } } else { let errMsg = "Agent which created source language for language trying to be installed is not a trustedAgent... aborting language install"; - this.pubSub.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to install language", message: errMsg, @@ -587,7 +594,8 @@ export default class LanguageController { //Unpack the DNA //TODO: we need to be able to check for errors in this fn call, currently we just crudly split the result - let unpackPath = this.#holochainService.unpackDna(tempDnaPath).replace(/(\r\n|\n|\r)/gm, ""); + console.log("LanguageController.readAndTemplateHolochainDNA: unpacking DNA"); + let unpackPath = (await this.#holochainService.unpackDna(tempDnaPath)).replace(/(\r\n|\n|\r)/gm, ""); fs.unlinkSync(tempDnaPath); //TODO: are all dna's using the same dna.yaml? const dnaYamlPath = path.join(unpackPath, "dna.yaml"); @@ -622,7 +630,8 @@ export default class LanguageController { fs.writeFileSync(dnaYamlPath, dnaYamlDump); //TODO: we need to be able to check for errors in this fn call, currently we just crudly split the result - let packPath = this.#holochainService.packDna(unpackPath).replace(/(\r\n|\n|\r)/gm, ""); + console.log("LanguageController.readAndTemplateHolochainDNA: packing DNA"); + let packPath = (await this.#holochainService.packDna(unpackPath)).replace(/(\r\n|\n|\r)/gm, ""); const base64 = fs.readFileSync(packPath, "base64").replace(/[\r\n]+/gm, ''); //Cleanup temp directory @@ -647,7 +656,7 @@ export default class LanguageController { applyTemplateData(sourceLanguageLines: string[], templateData: object) { //Get lines in sourceLanguageLines which have ad4m-template-variable declared - const ad4mTemplatePattern = "//@ad4m-template-variable"; + const ad4mTemplatePattern = "//!@ad4m-template-variable"; var indexes = []; for(let i = 0; i < sourceLanguageLines.length; i++) { if (sourceLanguageLines[i].includes(ad4mTemplatePattern)) { @@ -1075,8 +1084,8 @@ export default class LanguageController { let errMsg = `Error trying to verify signature for expression: ${expressionFormatted}` console.error(errMsg) console.error(e) - this.pubSub.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to get expression", message: errMsg, diff --git a/executor/src/core/Perspective.test.ts b/executor/src/core/Perspective.test.ts index f1af8ba29..f1ef70dd7 100644 --- a/executor/src/core/Perspective.test.ts +++ b/executor/src/core/Perspective.test.ts @@ -1,7 +1,6 @@ import { v4 as uuidv4 } from 'uuid'; import { Neighbourhood, LinkQuery, PerspectiveHandle, PerspectiveState } from '@perspect3vism/ad4m' import { Perspective as Ad4mPerspective, LinkExpression } from '@perspect3vism/ad4m' -import Memory from 'lowdb/adapters/Memory' import path from "path"; import { fileURLToPath } from 'url'; import { expect } from "chai"; @@ -9,7 +8,7 @@ import * as sinon from "sinon"; import Perspective from './Perspective' import type PerspectiveContext from './PerspectiveContext' -import { PerspectivismDb } from './db' +import { Ad4mDb } from './db' import { createLink } from '../testutils/links' import { createMockExpression } from '../testutils/expression' import { MainConfig } from './Config' @@ -56,7 +55,7 @@ describe('Perspective', () => { beforeEach(() => { const TEST_DIR = `${__dirname}/../tst-tmp` const appDataPath = path.join(TEST_DIR, 'agents', 'alice') - const db = new PerspectivismDb(); + const db = new Ad4mDb(); perspective = new Perspective( { uuid: uuidv4(), @@ -69,7 +68,7 @@ describe('Perspective', () => { agentService, db, languageController, - config: new MainConfig(TEST_DIR, appDataPath) + config: new MainConfig(appDataPath) } as PerspectiveContext) allLinks = [] }) @@ -116,55 +115,55 @@ describe('Perspective', () => { expect(result.length).to.be.equal(3) }) - it('Prolog queries return 5 triples', async () => { - const result = await perspective!.prologQuery("triple(X,Y,Z).") - expect(result.length).to.be.equal(5) - }) - - it('Prolog gets correctly updated when removing links', async () => { - const link = allLinks![0] - console.log("LINK TO REMOVE", link) - await perspective!.removeLink(link) - const result = await perspective!.prologQuery("triple(X,Y,Z)"); - expect(result.length).to.be.equal(4) - }) + // it('Prolog queries return 5 triples', async () => { + // const result = await perspective!.prologQuery("triple(X,Y,Z).") + // expect(result.length).to.be.equal(5) + // }) + + // it('Prolog gets correctly updated when removing links', async () => { + // const link = allLinks![0] + // console.log("LINK TO REMOVE", link) + // await perspective!.removeLink(link) + // const result = await perspective!.prologQuery("triple(X,Y,Z)"); + // expect(result.length).to.be.equal(4) + // }) }) - describe('Prolog Engine', () => { - it('answers correctly in a run with multiple link additions/removals', async () => { - let result - let linkResult - let l1 = await perspective!.addLink({source: 'ad4m://self', target: 'ad4m://test1'}) - - result = await perspective!.prologQuery("triple(Source,Pred,Target)") - expect(result.length).to.be.equal(1) - expect(result[0].Source).to.be.equal('ad4m://self') - expect(result[0].Target).to.be.equal('ad4m://test1') - - linkResult = await perspective!.prologQuery("link(Source,Pred,Target,Timestamp,Author)") - expect(linkResult.length).to.be.equal(1) - expect(linkResult[0].Source).to.be.equal('ad4m://self') - expect(linkResult[0].Target).to.be.equal('ad4m://test1') - expect(linkResult[0].Author).to.be.equal("did:local-test-agent") - expect(linkResult[0].Timestamp).not.to.be.NaN; - - let l2 = await perspective!.addLink({source: 'ad4m://self', target: 'ad4m://test2'}) - result = await perspective!.prologQuery("triple(Source,Pred,Target)") - expect(result.length).to.be.equal(2) - linkResult = await perspective!.prologQuery("link(Source,Pred,Target,Timestamp,Author)") - expect(linkResult.length).to.be.equal(2) - - let targetSet = new Set() - targetSet.add(result[0].Target) - targetSet.add(result[1].Target) - - expect(result[1].Source).to.be.equal('ad4m://self') - expect(targetSet.has('ad4m://test1')).to.be.true; - expect(targetSet.has('ad4m://test2')).to.be.true; - - //...TBC - }) - }) + // describe('Prolog Engine', () => { + // it('answers correctly in a run with multiple link additions/removals', async () => { + // let result + // let linkResult + // let l1 = await perspective!.addLink({source: 'ad4m://self', target: 'ad4m://test1'}) + + // result = await perspective!.prologQuery("triple(Source,Pred,Target)") + // expect(result.length).to.be.equal(1) + // expect(result[0].Source).to.be.equal('ad4m://self') + // expect(result[0].Target).to.be.equal('ad4m://test1') + + // linkResult = await perspective!.prologQuery("link(Source,Pred,Target,Timestamp,Author)") + // expect(linkResult.length).to.be.equal(1) + // expect(linkResult[0].Source).to.be.equal('ad4m://self') + // expect(linkResult[0].Target).to.be.equal('ad4m://test1') + // expect(linkResult[0].Author).to.be.equal("did:local-test-agent") + // expect(linkResult[0].Timestamp).not.to.be.NaN; + + // let l2 = await perspective!.addLink({source: 'ad4m://self', target: 'ad4m://test2'}) + // result = await perspective!.prologQuery("triple(Source,Pred,Target)") + // expect(result.length).to.be.equal(2) + // linkResult = await perspective!.prologQuery("link(Source,Pred,Target,Timestamp,Author)") + // expect(linkResult.length).to.be.equal(2) + + // let targetSet = new Set() + // targetSet.add(result[0].Target) + // targetSet.add(result[1].Target) + + // expect(result[1].Source).to.be.equal('ad4m://self') + // expect(targetSet.has('ad4m://test1')).to.be.true; + // expect(targetSet.has('ad4m://test2')).to.be.true; + + // //...TBC + // }) + // }) describe('with link sharing language', () => { beforeEach(() => { diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 42e5655b1..8bad153cb 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -1,20 +1,15 @@ import { Agent, Expression, Neighbourhood, LinkExpression, LinkExpressionInput, LinkInput, LanguageRef, PerspectiveHandle, Literal, PerspectiveDiff, parseExprUrl, Perspective as Ad4mPerspective, LinkStatus, LinkMutations, LinkExpressionMutations, Language, LinkSyncAdapter, TelepresenceAdapter, OnlineAgent } from "@perspect3vism/ad4m" -import { Link, linkEqual, LinkQuery, PerspectiveState } from "@perspect3vism/ad4m"; -import { SHA3 } from "sha3"; +import { Link, LinkQuery, PerspectiveState } from "@perspect3vism/ad4m"; import type AgentService from "./agent/AgentService"; import type LanguageController from "./LanguageController"; -import * as PubSub from './graphQL-interface/PubSub' +import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' import type PerspectiveContext from "./PerspectiveContext" import PrologInstance from "./PrologInstance"; import { MainConfig } from "./Config"; import { Mutex } from 'async-mutex' import { DID } from "@perspect3vism/ad4m/lib/src/DID"; -import { PerspectivismDb } from "./db"; - -type PerspectiveSubscription = { - perspective: PerspectiveHandle, - link: LinkExpression -} +import { Ad4mDb } from "./db"; +import { getPubSub } from "./utils"; const maxRetries = 10; const backoffStep = 200; @@ -31,16 +26,19 @@ export default class Perspective { state: PerspectiveState = PerspectiveState.Private; retries: number = 0; - #db: PerspectivismDb; + #db: Ad4mDb; #agent: AgentService; #languageController?: LanguageController - #pubsub: any + #updateControllersHandleSyncStatus?: (uuid: string, status: PerspectiveState) => void #config?: MainConfig; + #pubSub: PubSub; #prologEngine: PrologInstance|null #prologNeedsRebuild: boolean #pollingInterval: any; + #pendingDiffPollingInterval: any #prologMutex: Mutex + #isTeardown: boolean = false; constructor(id: PerspectiveHandle, context: PerspectiveContext, neighbourhood?: Neighbourhood, createdFromJoin?: boolean, state?: PerspectiveState) { this.updateFromId(id) @@ -59,39 +57,20 @@ export default class Perspective { this.#agent = context.agentService! this.#languageController = context.languageController! this.#config = context.config; + this.#updateControllersHandleSyncStatus = context.updateControllersHandleSyncStatus; + this.#pubSub = getPubSub(); - this.#pubsub = PubSub.get() this.#prologEngine = null this.#prologNeedsRebuild = true - this.#pubsub.subscribe(PubSub.LINK_ADDED_TOPIC, ({ perspective }: PerspectiveSubscription) => { - if (perspective.uuid === this.uuid) { - this.#prologNeedsRebuild = true - } - }) - - this.#pubsub.subscribe(PubSub.LINK_REMOVED_TOPIC, ({ perspective }: PerspectiveSubscription) => { - if (perspective.uuid === this.uuid) { - this.#prologNeedsRebuild = true - } - }) - - this.#pubsub.subscribe(PubSub.LINK_UPDATED_TOPIC, ({ perspective }: PerspectiveSubscription) => { - if (perspective.uuid === this.uuid) { - this.#prologNeedsRebuild = true - } - }) - - const that = this - process.on("SIGINT", () => { - that.#prologEngine?.close() clearInterval(this.#pollingInterval); + clearInterval(this.#pendingDiffPollingInterval); }); if (this.neighbourhood) { // setup polling loop for Perspectives with a linkLanguage - this.setupSyncSignals(3000); + this.#pollingInterval = this.setupSyncSignals(3000); // Handle join differently so we wait before publishing diffs until we have seen // a first foreign revision. Otherwise we will never use snaphshots and make the @@ -103,7 +82,7 @@ export default class Perspective { // Set the state to LinkLanguageInstalledButNotSynced so we will keep // link additions as pending until we are synced if(!revision) { - this.setupPendingDiffsPublishing(5000); + this.#pendingDiffPollingInterval = this.setupPendingDiffsPublishing(5000); } }) } catch (e) { @@ -116,9 +95,13 @@ export default class Perspective { } async updatePerspectiveState(state: PerspectiveState) { - if (this.state != state) { - await this.#pubsub.publish(PubSub.PERSPECTIVE_SYNC_STATE_CHANGE, {state, uuid: this.uuid}) - this.state = state + if (this.state !== state) { + if (this.#updateControllersHandleSyncStatus) { + this.#updateControllersHandleSyncStatus(this.uuid!, state); + }; + this.state = state; + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_SYNC_STATE_CHANGE, {state, uuid: this.uuid}) + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_UPDATED_TOPIC, this.plain()); } } @@ -138,6 +121,8 @@ export default class Perspective { async setupSyncSignals(intervalMs: number) { return setInterval(async () => { + console.log("Calling sync"); + if (this.#isTeardown) return; try { await this.callLinksAdapter("sync"); } catch(e) { @@ -150,6 +135,8 @@ export default class Perspective { let pendingGotPublished = false; let pendingDiffsInterval = setInterval(async () => { + console.log("calling pending diff"); + if (this.#isTeardown) return; if(this.state == PerspectiveState.LinkLanguageFailedToInstall) { try { await this.getLinksAdapter() @@ -162,7 +149,7 @@ export default class Perspective { // If LinkLanguage is connected/synced (otherwise currentRevision would be null)... if (await this.getCurrentRevision()) { //TODO; once we have more data information coming from the link language, correctly determine when to mark perspective as synced - this.updatePerspectiveState(PerspectiveState.Synced); + await this.updatePerspectiveState(PerspectiveState.Synced); //Let's check if we have unpublished diffs: const mutations = await this.#db.getPendingDiffs(this.uuid!); if (mutations.additions.length > 0 || mutations.removals.length > 0) { @@ -181,54 +168,21 @@ export default class Perspective { clearInterval(pendingDiffsInterval); } }, intervalMs); - } - - - setupPolling(intervalMs: number) { - return setInterval( - async () => { - try { - let madeSync = false; - // If LinkLanguage is connected/synced (otherwise currentRevision would be null)... - const currentRevision = await this.getCurrentRevision(); - if (currentRevision) { - madeSync = true; - //Let's check if we have unpublished diffs: - const mutations = await this.#db.getPendingDiffs(this.uuid!); - if (mutations.additions.length > 0 || mutations.removals.length > 0) { - // ...publish them... - await this.callLinksAdapter('commit', mutations); - // ...and clear the temporary storage - await this.#db.clearPendingDiffs(this.uuid!); - } - - //If we are fast polling (since we have not seen any changes) and we see changes, we can slow down the polling - if(this.isFastPolling && madeSync) { - this.isFastPolling = false; - clearInterval(this.#pollingInterval); - this.#pollingInterval = this.setupPolling(30000); - } - } - - } catch (e) { - console.warn(`Perspective.constructor(): NH [${this.sharedUrl}] (${this.name}): Got error when trying to check sync on linksAdapter. Error: ${e}`, e); - } - }, - intervalMs - ); + return pendingDiffsInterval; } plain(): PerspectiveHandle { - const { name, uuid, author, timestamp, sharedUrl, neighbourhood } = this + const { name, uuid, author, timestamp, sharedUrl, neighbourhood, state } = this return JSON.parse(JSON.stringify({ - name, uuid, author, timestamp, sharedUrl, neighbourhood + name, uuid, author, timestamp, sharedUrl, neighbourhood, state })) } updateFromId(id: PerspectiveHandle) { this.name = id.name this.uuid = id.uuid + if(id.state) this.state = id.state if(id.sharedUrl) this.sharedUrl = id.sharedUrl if(id.neighbourhood) this.neighbourhood = id.neighbourhood } @@ -272,7 +226,7 @@ export default class Perspective { return undefined; } } catch (e) { - this.updatePerspectiveState(PerspectiveState.LinkLanguageFailedToInstall); + await this.updatePerspectiveState(PerspectiveState.LinkLanguageFailedToInstall); this.retries++; throw e; } @@ -307,7 +261,7 @@ export default class Perspective { //@ts-ignore private callLinksAdapter(functionName: string, ...args): Promise { if(!this.neighbourhood || !this.neighbourhood.linkLanguage) { - //console.warn("Perspective.callLinksAdapter: Did not find neighbourhood or linkLanguage for neighbourhood on perspective, returning empty array") + console.warn("Perspective.callLinksAdapter: Did not find neighbourhood or linkLanguage for neighbourhood on perspective, returning empty array") return Promise.resolve({ additions: [], removals: [] @@ -479,12 +433,15 @@ export default class Perspective { this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); - this.#pubsub.publish(PubSub.LINK_ADDED_TOPIC, { + + linkExpression.status = status; + + await this.#pubSub.publish(PubSubDefinitions.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: linkExpression }) + this.#prologNeedsRebuild = true - linkExpression.status = status; return linkExpression } @@ -505,11 +462,12 @@ export default class Perspective { this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); for (const link of linkExpressions) { - this.#pubsub.publish(PubSub.LINK_ADDED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: link }) }; + this.#prologNeedsRebuild = true // @ts-ignore return linkExpressions.map(l => ({...l, status})) @@ -530,11 +488,12 @@ export default class Perspective { await Promise.all(linkExpressions.map(async l => await this.#db.removeLink(this.uuid!, l))) this.#prologNeedsRebuild = true; for (const link of linkExpressions) { - this.#pubsub.publish(PubSub.LINK_REMOVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: link }) }; + this.#prologNeedsRebuild = true return linkExpressions } @@ -554,17 +513,18 @@ export default class Perspective { await Promise.all(diff.removals.map(async l => await this.#db.removeLink(this.uuid!, l))); this.#prologNeedsRebuild = true; for (const link of diff.additions) { - this.#pubsub.publish(PubSub.LINK_ADDED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_ADDED_TOPIC, { perspective: this.plain(), link: link }); }; for (const link of diff.removals) { - this.#pubsub.publish(PubSub.LINK_REMOVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: link }); }; + this.#prologNeedsRebuild = true return diff; } @@ -592,7 +552,7 @@ export default class Perspective { const perspective = this.plain(); this.#prologNeedsRebuild = true; - this.#pubsub.publish(PubSub.LINK_UPDATED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_UPDATED_TOPIC, { perspective, oldLink, newLink: newLinkExpression @@ -619,7 +579,7 @@ export default class Perspective { } this.#prologNeedsRebuild = true; - this.#pubsub.publish(PubSub.LINK_REMOVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: linkExpression }) @@ -635,6 +595,7 @@ export default class Perspective { await this.#db.removeLink(this.uuid!, link); })) } + this.#prologNeedsRebuild = true; } private async getLinksLocal(query: LinkQuery): Promise { @@ -646,17 +607,17 @@ export default class Perspective { function fromDateFilter(link: LinkExpression) { if (reverse) { - return new Date(link.timestamp) <= query.fromDate! + return new Date(link.timestamp) <= new Date(query.fromDate!) } else { - return new Date(link.timestamp) >= query.fromDate! + return new Date(link.timestamp) >= new Date(query.fromDate!) } } function untilDateFilter(link: LinkExpression) { if (reverse) { - return new Date(link.timestamp) >= query.untilDate! + return new Date(link.timestamp) >= new Date(query.untilDate!) } else { - return new Date(link.timestamp) <= query.untilDate! + return new Date(link.timestamp) <= new Date(query.untilDate!) } } @@ -673,13 +634,21 @@ export default class Perspective { if(query.source) { let result = await this.#db.getLinksBySource(this.uuid!, query.source); // @ts-ignore - if(query.target) result = result.filter(l => l.data.target === query.target) + if(query.target) { + result = result.filter(l => l.data.target === query.target) + } // @ts-ignore - if(query.predicate) result = result.filter(l => l.data.predicate === query.predicate) + if(query.predicate) { + result = result.filter(l => l.data.predicate === query.predicate) + } //@ts-ignore - if (query.fromDate) result = result.filter(fromDateFilter) + if (query.fromDate) { + result = result.filter(fromDateFilter) + } // @ts-ignore - if (query.untilDate) result = result.filter(untilDateFilter) + if (query.untilDate) { + result = result.filter(untilDateFilter) + } result = limitFilter(result); return result } @@ -711,7 +680,6 @@ export default class Perspective { return new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime(); }); - if (query.limit) { const startLimit = reverse ? values.length - query.limit : 0; const endLimit = reverse ? (values.length - query.limit) + query.limit : query.limit; @@ -746,12 +714,9 @@ export default class Perspective { if(link.data.target) nodes.add(link.data.target) } - langAddrs.push(":- dynamic languageAddress/2.") - langAddrs.push(":- discontiguous languageAddress/2.") - langNames.push(":- dynamic languageName/2.") - langNames.push(":- discontiguous languageName/2.") - exprAddrs.push(":- dynamic expressionAddress/2.") - exprAddrs.push(":- discontiguous expressionAddress/2.") + langAddrs.push(":- discontiguous(languageAddress/2).") + langNames.push(":- discontiguous(languageName/2).") + exprAddrs.push(":- discontiguous(expressionAddress/2).") for(let node of nodes) { //node.replace('\n', '\n\c') @@ -819,7 +784,7 @@ export default class Perspective { return link.source == 'ad4m://self' && link.predicate == 'ad4m://has_zome' } - async initEngineFacts(): Promise { + async initEngineFacts(): Promise { let lines = [] const allLinks = await this.getLinks(new LinkQuery({})) @@ -827,119 +792,103 @@ export default class Perspective { // triple/3 // link/5 //------------------- - lines.push(":- dynamic triple/3.") - lines.push(":- discontiguous triple/3.") - lines.push(":- dynamic link/5.") - lines.push(":- discontiguous link/5.") + lines.push(":- discontiguous(triple/3).") + lines.push(":- discontiguous(link/5).") + + const linksWithoutSDNA = allLinks.filter(l => !this.isSDNALink(l.data)) - for (const link of allLinks) { + for (const link of linksWithoutSDNA) { lines.push(this.tripleFact(link)); } - for (const link of allLinks) { + for (const link of linksWithoutSDNA) { lines.push(this.linkFact(link)); }; //------------------- // reachable/2 //------------------- - lines.push(":- dynamic reachable/2.") - lines.push(":- discontiguous reachable/2.") + lines.push(":- discontiguous(reachable/2).") lines.push("reachable(A,B) :- triple(A,_,B).") lines.push("reachable(A,B) :- triple(A,_,X), reachable(X,B).") //------------------- // hiddenExpression/1 //------------------- - lines.push(":- dynamic hiddenExpression/1.") - lines.push(":- discontiguous hiddenExpression/1.") + lines.push(":- discontiguous(hiddenExpression/1).") - lines = [...lines, ...await this.nodeFacts(allLinks)] + lines = [...lines, ...await this.nodeFacts(linksWithoutSDNA)] //------------------- // Social DNA zomes //------------------- - lines.push(":- dynamic register_sdna_flow/2.") - lines.push(":- dynamic flowable/2.") - lines.push(":- dynamic flow_state/3.") - lines.push(":- dynamic start_action/2.") - lines.push(":- dynamic action/4.") - - lines.push(":- discontiguous register_sdna_flow/2.") - lines.push(":- discontiguous flowable/2.") - lines.push(":- discontiguous flow_state/3.") - lines.push(":- discontiguous start_action/2.") - lines.push(":- discontiguous action/4.") - - lines.push(":- dynamic subject_class/2.") - lines.push(":- dynamic constructor/2.") - lines.push(":- dynamic instance/2.") - lines.push(":- dynamic property/2.") - lines.push(":- dynamic property_getter/4.") - lines.push(":- dynamic property_setter/3.") - lines.push(":- dynamic property_resolve/2.") - lines.push(":- dynamic property_resolve_language/3.") - lines.push(":- dynamic property_named_option/4.") - lines.push(":- dynamic collection/2.") - lines.push(":- dynamic collection_getter/4.") - lines.push(":- dynamic collection_setter/3.") - lines.push(":- dynamic collection_remover/3.") - lines.push(":- dynamic collection_adder/3.") - lines.push(":- dynamic p3_class_icon/2.") - lines.push(":- dynamic p3_class_color/2.") - lines.push(":- dynamic p3_instance_color/3.") - - lines.push(":- discontiguous subject_class/2.") - lines.push(":- discontiguous constructor/2.") - lines.push(":- discontiguous instance/2.") - lines.push(":- discontiguous property/2.") - lines.push(":- discontiguous property_getter/4.") - lines.push(":- discontiguous property_setter/3.") - lines.push(":- discontiguous property_resolve/2.") - lines.push(":- discontiguous property_resolve_language/3.") - lines.push(":- discontiguous property_named_option/4.") - lines.push(":- discontiguous collection/2.") - lines.push(":- discontiguous collection_getter/4.") - lines.push(":- discontiguous collection_setter/3.") - lines.push(":- discontiguous collection_remover/3.") - lines.push(":- discontiguous collection_adder/3.") - lines.push(":- discontiguous p3_class_icon/2.") - lines.push(":- discontiguous p3_class_color/2.") - lines.push(":- discontiguous p3_instance_color/3.") + lines.push(":- discontiguous(register_sdna_flow/2).") + lines.push(":- discontiguous(flowable/2).") + lines.push(":- discontiguous(flow_state/3).") + lines.push(":- discontiguous(start_action/2).") + lines.push(":- discontiguous(action/4).") + + lines.push(":- discontiguous(subject_class/2).") + lines.push(":- discontiguous(constructor/2).") + lines.push(":- discontiguous(destructor/2).") + lines.push(":- discontiguous(instance/2).") + + lines.push(":- discontiguous(property/2).") + lines.push(":- discontiguous(property_getter/4).") + lines.push(":- discontiguous(property_setter/3).") + lines.push(":- discontiguous(property_resolve/2).") + lines.push(":- discontiguous(property_resolve_language/3).") + lines.push(":- discontiguous(property_named_option/4).") + + lines.push(":- discontiguous(collection/2).") + lines.push(":- discontiguous(collection_getter/4).") + lines.push(":- discontiguous(collection_setter/3).") + lines.push(":- discontiguous(collection_remover/3).") + lines.push(":- discontiguous(collection_adder/3).") + lines.push(":- discontiguous(p3_class_icon/2).") + lines.push(":- discontiguous(p3_class_color/2).") + lines.push(":- discontiguous(p3_instance_color/3).") + + lines.push(":- use_module(library(lists))."); + + let seenSubjectClasses = new Set() for(let linkExpression of allLinks) { let link = linkExpression.data if(this.isSDNALink(link)) { try { let code = Literal.fromUrl(link.target).get() - lines.push(code) + let subjectClassMatch = code.match(/subject_class\("(.+?)",/); + if (subjectClassMatch) { + let subjectClassName = subjectClassMatch[1]; + if (!seenSubjectClasses.has(subjectClassName)) { + seenSubjectClasses.add(subjectClassName); + lines = lines.concat(code.split('\n')) + } + } else { + lines = lines.concat(code.split('\n')) + } } catch { console.error("Perspective.initEngineFacts: Error loading SocialDNA link target as literal... Ignoring SocialDNA link."); } } } - const factsCode = lines.join('\n') - return factsCode + return lines } async spawnPrologEngine(): Promise { - if(this.#prologEngine) { - await this.#prologEngine.close() - this.#prologEngine = null - } - let error - const prolog = new PrologInstance(this.#config!) + const prolog = new PrologInstance(this) + await prolog.start(); try { const facts = await this.initEngineFacts() await prolog.consult(facts) } catch(e) { error = e - prolog.close() } if(error) throw error @@ -953,7 +902,7 @@ export default class Perspective { this.#prologNeedsRebuild = false } if(this.#prologNeedsRebuild) { - console.log("Perspective.prologQuery: Making prolog query but first rebuilding facts"); + //console.log("Perspective.prologQuery: Making prolog query but first rebuilding facts"); this.#prologNeedsRebuild = false const facts = await this.initEngineFacts() await this.#prologEngine!.consult(facts) @@ -964,12 +913,9 @@ export default class Perspective { } clearPolling() { + this.#isTeardown = true; clearInterval(this.#pollingInterval); - } - - closePrologEngine() { - if(this.#prologEngine) - this.#prologEngine.close() + clearInterval(this.#pendingDiffPollingInterval); } } diff --git a/executor/src/core/PerspectiveContext.ts b/executor/src/core/PerspectiveContext.ts index 292605783..8bf2cbb25 100644 --- a/executor/src/core/PerspectiveContext.ts +++ b/executor/src/core/PerspectiveContext.ts @@ -1,3 +1,4 @@ +import { PerspectiveState } from "@perspect3vism/ad4m" import type AgentService from "./agent/AgentService" import { MainConfig } from "./Config" import type LanguageController from "./LanguageController" @@ -7,4 +8,5 @@ export default class PerspectiveContext { agentService?: AgentService languageController?: LanguageController config?: MainConfig + updateControllersHandleSyncStatus?: (uuid: string, status: PerspectiveState) => void } \ No newline at end of file diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index 5ceefaedd..7663be8ad 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -1,22 +1,24 @@ import path from 'path' import fs from 'fs' import { v4 as uuidv4 } from 'uuid'; -import * as PubSub from './graphQL-interface/PubSub' +import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' import type PerspectiveContext from './PerspectiveContext' -import { Perspective as Ad4mPerspective, Neighbourhood, LinkQuery, PerspectiveHandle, LanguageRef, PerspectiveDiff, PerspectiveState } from '@perspect3vism/ad4m' +import { Perspective as Ad4mPerspective, Neighbourhood, LinkQuery, PerspectiveHandle, LanguageRef, PerspectiveDiff, PerspectiveState, PerspectiveExpression } from '@perspect3vism/ad4m' import Perspective from './Perspective' +import { getPubSub, sleep } from './utils'; export default class PerspectivesController { #perspectiveHandles: Map #perspectiveInstances: Map #rootConfigPath - pubsub #context + #pubSub: PubSub constructor(rootConfigPath: string, context: PerspectiveContext) { this.#context = context + this.#context.updateControllersHandleSyncStatus = this.updateHandleSyncStatus.bind(this); this.#rootConfigPath = rootConfigPath - this.pubsub = PubSub.get() + this.#pubSub = getPubSub(); this.#perspectiveHandles = new Map() this.#perspectiveInstances = new Map() @@ -30,8 +32,9 @@ export default class PerspectivesController { Object.keys(fileObject).map(k => { let perspectiveHandle = fileObject[k].perspectiveHandle; let createdFromJoin = fileObject[k].createdFromJoin; - console.debug(`PerspectivesController: Found existing perspective "${k}":`, perspectiveHandle) - this.#perspectiveInstances.set(k, new Perspective(perspectiveHandle, this.#context, perspectiveHandle.neighbourhood as Neighbourhood, createdFromJoin)) + console.log(`PerspectivesController: Found existing perspective:`); + console.dir(perspectiveHandle, {depth: null}); + this.#perspectiveInstances.set(k, new Perspective(perspectiveHandle, this.#context, perspectiveHandle.neighbourhood as Neighbourhood, createdFromJoin, perspectiveHandle.state)) this.#perspectiveHandles.set(k, perspectiveHandle) }) } @@ -39,20 +42,19 @@ export default class PerspectivesController { this.#context.languageController!.addLinkObserver(async (diff: PerspectiveDiff, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); if (perspective) { - perspective.populateLocalLinks(diff.additions, diff.removals); + await perspective.populateLocalLinks(diff.additions, diff.removals); try { let perspectivePlain = perspective.plain(); for (const link of diff.additions) { - await this.pubsub.publish(PubSub.LINK_ADDED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: link }) } for (const linkRemoved of diff.removals) { - console.log("publishing removal:", linkRemoved) - await this.pubsub.publish(PubSub.LINK_REMOVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_REMOVED_TOPIC, { perspective: perspectivePlain, link: linkRemoved }) @@ -65,10 +67,10 @@ export default class PerspectivesController { } }) - this.#context.languageController!.addTelepresenceSignalObserver((signal: any, lang: LanguageRef) => { + this.#context.languageController!.addTelepresenceSignalObserver(async (signal: PerspectiveExpression, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); if (perspective) { - this.pubsub.publish(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { signal: signal, perspective: perspective.plain() }) @@ -78,11 +80,16 @@ export default class PerspectivesController { }) this.#context.languageController!.addSyncStateChangeObserver(async (state: PerspectiveState, lang: LanguageRef) => { + console.log("PerspectiveController: sync state change"); + console.dir(state, {depth: null}); let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); let perspectiveHandle = Array.from(this.#perspectiveHandles.values()).find((p) => p.uuid === perspective?.uuid); if (perspective) { + if (perspectiveHandle!.state !== state) { + perspectiveHandle!.state = state; + this.#perspectiveHandles.set(perspectiveHandle!.uuid, perspectiveHandle!); + }; await perspective.updatePerspectiveState(state); - perspectiveHandle!.state = state; } else { console.warn(`Could not find perspective sync state change signal with lang: ${lang}`) } @@ -101,7 +108,7 @@ export default class PerspectivesController { fs.writeFileSync(FILEPATH, JSON.stringify(obj)) } - perspectiveID(uuid: string): PerspectiveHandle|void { + perspectiveID(uuid: string): PerspectiveHandle|undefined { const pID = this.#perspectiveHandles.get(uuid) // console.log("pID:", pID) return pID @@ -109,7 +116,8 @@ export default class PerspectivesController { allPerspectiveHandles(): PerspectiveHandle[] { const alluuids = Array.from(this.#perspectiveHandles.values()) - // console.log("ALL perspectiveHandles:", alluuids) + // console.log("ALL perspectiveHandles:"); + // console.dir(alluuids); return alluuids } @@ -118,12 +126,7 @@ export default class PerspectivesController { if(foundInstance) { return foundInstance } else { - const foundID = this.#perspectiveHandles.get(uuid) - if(foundID) { - return new Perspective(foundID, this.#context) - } else { - throw Error(`Perspective not found: ${uuid}`) - } + throw Error(`Perspective not found: ${uuid}`) } } @@ -135,7 +138,7 @@ export default class PerspectivesController { return new Ad4mPerspective(await perspective.getLinks({} as LinkQuery)); } - add(name: string, sharedUrl?: string, neighbourhood?: Neighbourhood, createdFromJoin?: boolean, state?: PerspectiveState): PerspectiveHandle { + async add(name: string, sharedUrl?: string, neighbourhood?: Neighbourhood, createdFromJoin?: boolean, state?: PerspectiveState): Promise { let perspective = { uuid: uuidv4(), name, @@ -146,42 +149,56 @@ export default class PerspectivesController { this.#perspectiveHandles.set(perspective.uuid, perspective) this.#perspectiveInstances.set(perspective.uuid, new Perspective(perspective, this.#context, neighbourhood, createdFromJoin, state)) this.save() - this.pubsub.publish(PubSub.PERSPECTIVE_ADDED_TOPIC, { perspective }) + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_ADDED_TOPIC, perspective) return perspective } - replace(perspectiveHandle: PerspectiveHandle, neighbourhood: Neighbourhood, createdFromJoin: boolean, state: PerspectiveState) { - this.pubsub.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: perspectiveHandle }) + async replace(perspectiveHandle: PerspectiveHandle, neighbourhood: Neighbourhood, createdFromJoin: boolean, state: PerspectiveState) { + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_UPDATED_TOPIC, perspectiveHandle); + this.#perspectiveHandles.set(perspectiveHandle.uuid, perspectiveHandle); - this.#perspectiveInstances.get(perspectiveHandle.uuid)?.clearPolling(); + + let existingPerspective = this.#perspectiveInstances.get(perspectiveHandle.uuid); + if (existingPerspective) { + existingPerspective.clearPolling(); + this.#perspectiveInstances.delete(perspectiveHandle.uuid); + existingPerspective = undefined; + } this.#perspectiveInstances.set(perspectiveHandle.uuid, new Perspective(perspectiveHandle, this.#context, neighbourhood, createdFromJoin, state)); this.save() } - remove(uuid: string) { + async remove(uuid: string) { try { let perspective = this.#perspectiveInstances.get(uuid); - perspective?.clearPolling(); - if (perspective?.neighbourhood) { - this.#context.languageController?.languageRemove(perspective.neighbourhood.linkLanguage); + if (perspective) { + perspective.clearPolling(); + if (perspective.neighbourhood) { + await this.#context.languageController?.languageRemove(perspective.neighbourhood.linkLanguage); + } + perspective = undefined; + this.#perspectiveHandles.delete(uuid) + this.#perspectiveInstances.delete(uuid) + this.save() + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_REMOVED_TOPIC, uuid) + return true + } else { + return false } - this.#perspectiveHandles.delete(uuid) - this.#perspectiveInstances.delete(uuid) - this.save() - this.pubsub.publish(PubSub.PERSPECTIVE_REMOVED_TOPIC, { uuid }) } catch (e) { console.error("Error removing perspective:", e); throw new Error(`Error removing perspective: ${e}`); } } - update(uuid: string, name: string) { + async update(uuid: string, name: string) { let perspective = this.perspective(uuid); perspective.name = name; let perspectiveHandle = new PerspectiveHandle(uuid, name, perspective.state); perspectiveHandle.sharedUrl = perspective.sharedUrl; - this.#perspectiveHandles.set(uuid, perspectiveHandle) + perspectiveHandle.neighbourhood = perspective.neighbourhood; + this.#perspectiveHandles.set(uuid, perspectiveHandle); this.save() const instance = this.#perspectiveInstances.get(uuid) @@ -189,14 +206,23 @@ export default class PerspectivesController { instance.updateFromId(perspective as PerspectiveHandle) } - this.pubsub.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: { + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_UPDATED_TOPIC, { uuid: perspective.uuid, name: perspective.name, state: perspective.state, sharedUrl: perspective.sharedUrl, neighbourhood: perspective.neighbourhood - } as PerspectiveHandle }); + }); return perspective } + + updateHandleSyncStatus(uuid: string, status: PerspectiveState) { + let perspective = this.#perspectiveHandles.get(uuid); + if (!perspective) { + console.error("PerspectiveController.updateHandleSyncStatus(): could not find perspectiveHandle for uuid:", uuid); + } + perspective!.state = status; + this.#perspectiveHandles.set(uuid, perspective!); + } } diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index cf6f2d008..d5dbf1995 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -1,55 +1,68 @@ -import fs from "fs-extra"; -import path from "path"; -//@ts-ignore -import swipl from 'swipl-stdio' -//@ts-ignore -import tmp from 'tmp' -import { MainConfig } from "./Config"; +import Perspective from "./Perspective"; +import { randomUUID } from "crypto"; export default class PrologInstance { - #engine + //@ts-ignore + prologService = PROLOG_SERVICE; + name: string; - constructor(config: MainConfig) { - this.#engine = new swipl.Engine( - config.swiplPath ? config.swiplPath : path.join(config.resourcePath, "swipl"), - config.swiplHomePath - ) + constructor(perspective: Perspective) { + this.name = perspective.uuid || randomUUID() + } + + async start() { + //console.log("Starting prolog instance", this.name) + return await this.prologService.spawnEngine(this.name) } async query(input: string) { - const query = await this.#engine.createQuery(input); - let allMatches = [] - try { - let ret = null; - while (ret = await query.next()) { - allMatches.push(ret) - } - } finally { - await query.close() - } - - if(JSON.stringify(allMatches) === JSON.stringify([{}])) - return true - if(JSON.stringify(allMatches) === JSON.stringify([])) - return false - - return allMatches + //console.log("Querying prolog instance", this.name, input) + let result = await this.prologService.runQuery(this.name, input) + //console.log("Got Prolog result", result) + return result + + //TODO; add parsing of the result + + // const query = await this.#engine.createQuery(input); + // let allMatches = [] + // try { + // let ret = null; + // while (ret = await query.next()) { + // allMatches.push(ret) + // } + // } finally { + // await query.close() + // } + + // if(JSON.stringify(allMatches) === JSON.stringify([{}])) + // return true + // if(JSON.stringify(allMatches) === JSON.stringify([])) + // return false + + // return allMatches } async call(query: string) { - return await this.#engine.call(query) + //console.log("Calling prolog instance", this.name, query) + return await this.prologService.runQuery(this.name, query) + + //TODO; add parsing of the result + + // return await this.#engine.call(query) }; - async consult(program: string) { - const tmpobj = tmp.fileSync() - //@ts-ignore - fs.writeFileSync(tmpobj.name, program); - const result = await this.call(`consult('${tmpobj.name}').`) - tmpobj.removeCallback() - return result + async consult(program_lines: string[]) { + //console.log("PrologInstance.consult", this.name, program, moduleName) + return await this.prologService.loadModuleString(this.name, "main.pl", program_lines) + // const tmpobj = tmp.fileSync() + // //@ts-ignore + // fs.writeFileSync(tmpobj.name, program); + // const result = await this.call(`consult('${tmpobj.name}').`) + // tmpobj.removeCallback() + // return result } - close() { - this.#engine.close() + async remove() { + return await this.prologService.removeEngine(this.name) } } \ No newline at end of file diff --git a/executor/src/core/Swipl.test.ts b/executor/src/core/Swipl.test.ts deleted file mode 100644 index a9161dea4..000000000 --- a/executor/src/core/Swipl.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -//@ts-ignore -import swipl from 'swipl-stdio' -import { expect } from "chai"; -import path from 'path'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -describe('swipl', () => { - it('can call Prolog predicate', async () => { - const engine = new swipl.Engine(path.join(__dirname, '../tst-tmp', 'swipl')); - const query = await engine.createQuery('member(X, [1,2,3,4])'); - let allMatches = [] - try { - let ret = null; - while (ret = await query.next()) { - //@ts-ignore - allMatches.push(ret.X) - } - } finally { - await query.close() - } - - expect(allMatches).to.be.deep.equal([1,2,3,4]) - }) -}) diff --git a/executor/src/core/perspect3vismAgentInfo.ts b/executor/src/core/ad4mHolochainAgentInfo.ts similarity index 100% rename from executor/src/core/perspect3vismAgentInfo.ts rename to executor/src/core/ad4mHolochainAgentInfo.ts diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index b8c457b90..ff6527b44 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -1,6 +1,6 @@ import * as path from "path"; import * as fs from "fs"; -import didWallet from "@transmute/did-wallet"; +import { Key } from "../../wallet_extension"; import { Language, Expression, @@ -8,12 +8,9 @@ import { ReadOnlyLanguage, ExceptionType, } from "@perspect3vism/ad4m"; -import { Agent, ExpressionProof, AgentSignature } from "@perspect3vism/ad4m"; -import secp256k1 from "secp256k1"; -import * as secp256k1DIDKey from "@transmute/did-key-secp256k1"; +import { Agent, ExpressionProof, AgentSignature, EntanglementProof } from "@perspect3vism/ad4m"; import Signatures from "./Signatures"; -import * as PubSubInstance from "../graphQL-interface/PubSub"; -import type { PubSub } from "graphql-subscriptions"; +import * as PubSubDefinitions from "../graphQL-interface/SubscriptionDefinitions"; import { resolver } from "@transmute/did-key.js"; import { v4 as uuidv4 } from "uuid"; import { ExceptionInfo } from "@perspect3vism/ad4m/lib/src/runtime/RuntimeResolver"; @@ -27,16 +24,14 @@ import { AGENT_AUTH_CAPABILITY, Capability, } from "./Auth"; -import * as jose from "jose"; -import * as crypto from "crypto"; -import KeyEncoder from "key-encoder"; import * as secp from "@noble/secp256k1"; +import { getPubSub } from "../utils"; + export default class AgentService { #did?: string; #didDocument?: string; #signingKeyId?: string; - #wallet?: object; #file: string; #appsFile: string; #apps: AuthInfoExtended[]; @@ -44,7 +39,7 @@ export default class AgentService { #fileProfile: string; #agent?: Agent; #agentLanguage?: Language; - #pubsub: PubSub; + #pubSub: PubSub; #requests: Map; #tokenValidPeriod: number; #adminCredential: string; @@ -52,7 +47,7 @@ export default class AgentService { #readyPromise: Promise; #readyPromiseResolve?: (value: void | PromiseLike) => void; - constructor(rootConfigPath: string, reqCredential?: string) { + constructor(rootConfigPath: string, adminCredential?: string) { this.#file = path.join(rootConfigPath, "agent.json"); this.#fileProfile = path.join(rootConfigPath, "agentProfile.json"); this.#appsFile = path.join(rootConfigPath, "apps.json"); @@ -61,17 +56,17 @@ export default class AgentService { } catch (e) { this.#apps = []; } - this.#pubsub = PubSubInstance.get(); + this.#pubSub = getPubSub(); this.#readyPromise = new Promise((resolve) => { this.#readyPromiseResolve = resolve; }); this.#requests = new Map(); this.#tokenValidPeriod = DefaultTokenValidPeriod; - if (reqCredential) { - this.#adminCredential = reqCredential; + if (adminCredential) { + this.#adminCredential = adminCredential; } else { console.warn( - "reqCredential is not set or empty, empty token will possess admin capabililities." + "adminCredential is not set or empty, empty token will possess admin capabililities." ); this.#adminCredential = ""; } @@ -89,7 +84,14 @@ export default class AgentService { return this.#readyPromise; } - createSignedExpression(data: any): Expression { + get signingKeyId(): string { + if (!this.#signingKeyId) { + throw new Error("No signing key id on AgentService") + } + return this.#signingKeyId! + } + + signingChecks() { if (!this.isInitialized) { throw new Error("Can't sign without keystore"); } @@ -99,17 +101,19 @@ export default class AgentService { if (!this.#signingKeyId) { throw new Error("Can't sign without signingKeyId"); } + } + + createSignedExpression(data: any): Expression { + this.signingChecks() const timestamp = new Date().toISOString(); const payloadBytes = Signatures.buildMessage(data, timestamp); - const key = this.getSigningKey(); - const privKey = Uint8Array.from(Buffer.from(key.privateKey, key.encoding)); - - const sigObj = secp256k1.ecdsaSign(payloadBytes, privKey); - const sigBuffer = Buffer.from(sigObj.signature); + const signature = WALLET.sign(payloadBytes); + const sigBuffer = Buffer.from(signature); const sigHex = sigBuffer.toString("hex"); - let proof = new ExpressionProof(sigHex, this.#signingKeyId); + + let proof = new ExpressionProof(sigHex.toString(), this.#signingKeyId!); proof.valid = true; proof.invalid = false; @@ -123,10 +127,20 @@ export default class AgentService { return signedExpresssion; } + signString(data: string): string { + this.signingChecks() + + const payloadBytes = Signatures.buildMessageRaw(data) + const signature = WALLET.sign(payloadBytes); + const sigBuffer = Buffer.from(signature); + const sigHex = sigBuffer.toString("hex"); + return sigHex + } + async updateAgent(a: Agent) { this.#agent = a; await this.storeAgentProfile(); - this.#pubsub.publish(PubSubInstance.AGENT_UPDATED, a); + await this.#pubSub.publish(PubSubDefinitions.AGENT_UPDATED, a); } setAgentLanguage(lang: Language) { @@ -190,94 +204,19 @@ export default class AgentService { } } - private getSigningKey() { - // @ts-ignore - const keys = this.#wallet.extractByTags([this.#signingKeyId]); - if (keys.length === 0) { - throw new Error( - `Signing key '${ - this.#signingKeyId - }' key found in keystore. Abort signing.` - ); - } - if (keys.length > 1) { - throw new Error( - `Multiple '${ - this.#signingKeyId - }' keys found in keystore. Abort signing.` - ); - } - - const key = keys[0]; - //console.log(key) - return key; + private getSigningKey(): Key { + return WALLET.getMainKey(); } async createNewKeys() { - const key = await secp256k1DIDKey.Secp256k1KeyPair.generate({ - // @ts-ignore - secureRandom: () => crypto.randomBytes(32), - }); - - if (!key.privateKeyBuffer) { - throw Error("Cannot create keys without privateKeyBuffer"); - } - + WALLET.createMainKey() + const didDocument = WALLET.getMainKeyDocument() + const key = didDocument.verificationMethod[0] + this.#did = key.controller; this.#didDocument = JSON.stringify(await resolver.resolve(this.#did)); this.#agent = new Agent(this.#did); this.#signingKeyId = key.id; - - const keys = [ - { - type: "assymetric", - encoding: "hex", - publicKey: key.publicKeyBuffer.toString("hex"), - privateKey: key.privateKeyBuffer.toString("hex"), - tags: [key.type, key.id], - }, - ]; - - this.#wallet = didWallet.create({ keys }); - - console.debug(key); - console.debug(JSON.stringify(key)); - } - - async initialize( - did: string, - didDocument: string, - keystore: string, - password: string - ) { - this.#did = did; - this.#didDocument = didDocument; - this.#agent = new Agent(did); - this.#signingKeyId = did + "#primary"; - - console.debug("Creating wallet..."); - this.#wallet = didWallet.create(keystore); - console.debug("done."); - - console.debug("Unlocking wallet..."); - try { - // @ts-ignore - this.#wallet.unlock(password); - } catch (e) { - console.error(e); - return; - } - - console.debug("done."); - - console.debug("Saving wallet..."); - this.save(password); - console.debug("done."); - - console.debug("Registering new DID with agent language..."); - this.storeAgentProfile(); - this.#pubsub.publish(PubSubInstance.AGENT_UPDATED, this.#agent); - this.#readyPromiseResolve!(); } isInitialized() { @@ -285,15 +224,13 @@ export default class AgentService { } isUnlocked() { - // @ts-ignore - const keys = this.#wallet.keys ? true : false; - return keys; + return WALLET.isUnlocked() } async unlock(password: string) { // @ts-ignore - this.#wallet.unlock(password); - this.#pubsub.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); + WALLET.unlock(password); + await this.#pubSub.publish(PubSubDefinitions.AGENT_STATUS_CHANGED, this.dump()); this.#readyPromiseResolve!(); try { await this.storeAgentProfile(); @@ -306,29 +243,23 @@ export default class AgentService { } } - lock(password: string) { + async lock(password: string) { // @ts-ignore - this.#wallet.lock(password); - this.#pubsub.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); + WALLET.lock(password); + await this.#pubSub.publish(PubSubDefinitions.AGENT_STATUS_CHANGED, this.dump()); } async save(password: string) { - // @ts-ignore - this.#wallet.lock(password); - const dump = { did: this.#did, didDocument: this.#didDocument, signingKeyId: this.#signingKeyId, // @ts-ignore - keystore: this.#wallet.export(), + keystore: WALLET.export(password), agent: this.#agent, }; fs.writeFileSync(this.#file, JSON.stringify(dump)); - - // @ts-ignore - await this.#wallet.unlock(password); this.#readyPromiseResolve!(); } @@ -340,7 +271,7 @@ export default class AgentService { this.#did = dump.did; this.#didDocument = dump.didDocument; this.#signingKeyId = dump.signingKeyId; - this.#wallet = didWallet.create(dump.keystore); + WALLET.load(dump.keystore); if (fs.existsSync(this.#fileProfile)) this.#agent = JSON.parse(fs.readFileSync(this.#fileProfile).toString()); else { @@ -349,21 +280,13 @@ export default class AgentService { } dump() { - const isInitialized = this.isInitialized(); - let isUnlocked = false; - if (isInitialized) { - // @ts-ignore - isUnlocked = this.#wallet.keys ? true : false; - } - - const dump = { + return { agent: this.#agent, - isInitialized, - isUnlocked, + isInitialized: this.isInitialized(), + isUnlocked: WALLET.isUnlocked(), did: this.#did, didDocument: this.#didDocument, }; - return dump; } async getCapabilities(token: string) { @@ -375,29 +298,24 @@ export default class AgentService { return [AGENT_AUTH_CAPABILITY]; } - const key = this.getSigningKey(); - // @ts-ignore - let keyEncoder = new KeyEncoder.default("secp256k1"); - const pemPublicKey = keyEncoder.encodePublic(key.publicKey, "raw", "pem"); - const pubKeyObj = crypto.createPublicKey(pemPublicKey); - - const { payload } = await jose.jwtVerify(token, pubKeyObj); + const payload = await JWT.verifyJwt(token); - return payload.capabilities; + //@ts-ignore + return payload.capabilities.capabilities; } isAdminCredential(token: string) { return token == this.#adminCredential; } - requestCapability(authInfo: AuthInfo) { + async requestCapability(authInfo: AuthInfo) { let requestId = uuidv4(); let authExtended = { requestId, auth: authInfo, } as AuthInfoExtended; - this.#pubsub.publish(PubSubInstance.EXCEPTION_OCCURRED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Request to authenticate application", message: `${authInfo.appName} is waiting for authentication, go to ad4m launcher for more information.`, type: ExceptionType.CapabilityRequested, @@ -424,30 +342,13 @@ export default class AgentService { async generateJwt(requestId: string, rand: string) { const authKey = genRequestKey(requestId, rand); - console.log("AgentService.generateJwt(): rand number with requestId: ", authKey); const auth = this.#requests.get(authKey); if (!auth) { throw new Error("Can't find permitted request"); } - const key = this.getSigningKey(); - // @ts-ignore - let keyEncoder = new KeyEncoder.default("secp256k1"); - const pemPrivateKey = keyEncoder.encodePrivate( - key.privateKey, - "raw", - "pem" - ); - const keyObj = crypto.createPrivateKey(pemPrivateKey); - - const jwt = await new jose.SignJWT({ ...auth }) - .setProtectedHeader({ alg: "ES256K" }) - .setIssuedAt() - .setIssuer(this.did || "") - .setAudience(`${auth.appName}:${this.did || ""}`) - .setExpirationTime(`${this.#tokenValidPeriod}s`) - .sign(keyObj); + const jwt = await JWT.generateJwt(this.did || "", `${auth.appName}:${this.did || ""}`, this.#tokenValidPeriod, auth); this.#requests.delete(authKey); @@ -456,7 +357,7 @@ export default class AgentService { this.#apps = apps; fs.writeFileSync(this.#appsFile, JSON.stringify(apps)); - this.#pubsub.publish(PubSubInstance.APPS_CHANGED, null); + await this.#pubSub.publish(PubSubDefinitions.APPS_CHANGED, null); } return jwt; @@ -466,19 +367,19 @@ export default class AgentService { return this.#apps; } - removeApp(requestId: string) { + async removeApp(requestId: string) { try { this.#apps = this.#apps.filter((app: any) => app.requestId !== requestId); fs.writeFileSync(this.#appsFile, JSON.stringify(this.#apps)); - this.#pubsub.publish(PubSubInstance.APPS_CHANGED, null); + await this.#pubSub.publish(PubSubDefinitions.APPS_CHANGED, null); } catch (e) { console.error("Error while removing app", e); } } - revokeAppToken(requestId: string) { + async revokeAppToken(requestId: string) { try { this.#apps = this.#apps.map((app: any) => app.requestId === requestId ? { ...app, revoked: true } : app @@ -486,26 +387,29 @@ export default class AgentService { fs.writeFileSync(this.#appsFile, JSON.stringify(this.#apps)); - this.#pubsub.publish(PubSubInstance.APPS_CHANGED, null); + await this.#pubSub.publish(PubSubDefinitions.APPS_CHANGED, null); } catch (e) { console.error("Error while revoking token", e); } } async signMessage(msg: string) { - const key = this.getSigningKey(); - const msgHash = await secp.utils.sha256(new TextEncoder().encode(msg)); - const signature = await secp.sign(msgHash, key.privateKey); - const sigHex = Buffer.from(signature).toString("hex"); - return new AgentSignature(sigHex, key.publicKey); + this.signingChecks() + + const payloadBytes = Signatures.buildMessageRaw(msg) + const signature = WALLET.sign(payloadBytes); + const sigBuffer = Buffer.from(signature); + const sigHex = sigBuffer.toString("hex"); + + return new AgentSignature(sigHex, WALLET.getMainKey().publicKey); } } export function init( rootConfigPath: string, - reqCredential?: string + adminCredential?: string ): AgentService { - const agent = new AgentService(rootConfigPath, reqCredential); + const agent = new AgentService(rootConfigPath, adminCredential); agent.load(); return agent; } diff --git a/executor/src/core/agent/Auth.ts b/executor/src/core/agent/Auth.ts index b0c44fe44..5bf284095 100644 --- a/executor/src/core/agent/Auth.ts +++ b/executor/src/core/agent/Auth.ts @@ -1,6 +1,4 @@ import lodash from "lodash"; -import path from "path"; -import * as fs from "fs"; export type Capabilities = Capability[]; export interface Capability { @@ -369,12 +367,15 @@ export const checkTokenAuthorized = ( if (!isAd4minCredential) { if (apps.length > 0) { if (token) { - const app = apps.find((app) => app.token === token); + const filteredApps = apps.filter((app) => app.token === token); - if (!app) { - throw Error(`Unauthorized access`); - } else if (app.revoked) { + if (filteredApps.length === 0) { throw Error(`Unauthorized access`); + } else { + const noRevoked = filteredApps.filter((app) => !app.revoked); + if (noRevoked.length === 0) { + throw Error(`Unauthorized access`); + } } } } diff --git a/executor/src/core/agent/DIDs.ts b/executor/src/core/agent/DIDs.ts index c18bef9df..a79cb044e 100644 --- a/executor/src/core/agent/DIDs.ts +++ b/executor/src/core/agent/DIDs.ts @@ -1,21 +1,13 @@ -import low from 'lowdb' -import FileSync from 'lowdb/adapters/FileSync' -import path from 'path' -import fetch from 'node-fetch' import { resolver } from '@transmute/did-key.js'; export class DIDResolver { - #cacheDB: any - - constructor(dbAdapter: typeof FileSync) { - this.#cacheDB = low(dbAdapter) - } + #cacheMap = new Map() async resolve(did: string): Promise { if(!did) return null - if(this.#cacheDB.has(did).value()) { - return this.#cacheDB.get(did).value() + if(this.#cacheMap.has(did)) { + return this.#cacheMap.get(did) } try { @@ -31,7 +23,7 @@ export class DIDResolver { const didDocument = await response.json() if(didDocument) { - this.#cacheDB.set(did, didDocument).write() + this.#cacheMap.set(did, didDocument) } else { throw new Error("Empty JSON response") } @@ -47,6 +39,6 @@ export class DIDResolver { } export function init(cacheDBFilePath: string) { - const adapter = new FileSync(path.join(cacheDBFilePath, 'DIDCache.json')) - return new DIDResolver(adapter) + //const adapter = new FileSync(path.join(cacheDBFilePath, 'DIDCache.json')) + return new DIDResolver() } \ No newline at end of file diff --git a/executor/src/core/agent/Signatures.ts b/executor/src/core/agent/Signatures.ts index a0e30799e..8a412eb0b 100644 --- a/executor/src/core/agent/Signatures.ts +++ b/executor/src/core/agent/Signatures.ts @@ -1,47 +1,19 @@ import type { Expression } from "@perspect3vism/ad4m" -import type { DIDResolver } from ".//DIDs" import sha256 from 'sha256' -import secp256k1 from 'secp256k1' -import baseX from 'base-x' import stringify from 'json-stable-stringify' -const BASE58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' -const bs58 = baseX(BASE58) export default class Signatures { - #didResolver: DIDResolver + constructor() {} - constructor(didResolver: DIDResolver) { - this.#didResolver = didResolver + async verifyStringSignedByDid(did: string, didSigningKeyId: string, data: string, signedData: string): Promise { + const sigBytes = Uint8Array.from(Buffer.from(signedData, "hex")) + const message = Signatures.buildMessageRaw(data) + return WALLET.verify(did, message, sigBytes) } async verify(expr: Expression): Promise { - // @ts-ignore - const { didDocument } = await this.#didResolver.resolve(expr.author) - if(!didDocument) { - console.debug("DID document not found for", expr.author) - return false - } - - - const availableKeys = didDocument.publicKey ? didDocument.publicKey : didDocument.verificationMethod - //@ts-ignore - const key = availableKeys.find(k => k.id === expr.proof.key) - if(!key) { - console.debug("Key not found in DID document", expr.proof.key, didDocument) - return false - } - - let pubKey: Uint8Array | undefined - if(key.publicKeyHex) - pubKey = Uint8Array.from(Buffer.from(key.publicKeyHex, "hex")) - if(key.publicKeyBase58) - pubKey = Uint8Array.from(bs58.decode(key.publicKeyBase58)) const sigBytes = Uint8Array.from(Buffer.from(expr.proof.signature, "hex")) const message = Signatures.buildMessage(expr.data, expr.timestamp) - - if (!pubKey) { - throw Error("Could not find publicKeyHex or publicKeyBase58 in did document") - } - return secp256k1.ecdsaVerify(sigBytes, message, pubKey) + return WALLET.verify(expr.author, message, sigBytes) } static buildMessage(data: any, timestamp: string): Uint8Array { @@ -51,4 +23,12 @@ export default class Signatures { const payloadBytes = Uint8Array.from(sha256(Buffer.from(payloadBuffer), { asBytes: true })) return payloadBytes } + + static buildMessageRaw(data: any): Uint8Array { + const payload = { data } + const payloadString = stringify(payload) + const payloadBuffer = Buffer.from(payloadString) + const payloadBytes = Uint8Array.from(sha256(Buffer.from(payloadBuffer), { asBytes: true })) + return payloadBytes + } } diff --git a/executor/src/core/db.test.ts b/executor/src/core/db.test.ts index 92a036622..7ed63e812 100644 --- a/executor/src/core/db.test.ts +++ b/executor/src/core/db.test.ts @@ -1,7 +1,7 @@ -import { PerspectivismDb } from './db' +import { Ad4mDb } from './db' import { v4 as uuidv4 } from 'uuid'; import { expect } from "chai"; -import { LinkExpression, LinkExpressionInput, PerspectiveDiff } from '@perspect3vism/ad4m'; +import { LinkExpressionInput, PerspectiveDiff } from '@perspect3vism/ad4m'; import faker from 'faker' function constructDummyLinkExpression(): LinkExpressionInput { @@ -22,12 +22,12 @@ function constructDummyLinkExpression(): LinkExpressionInput { } as LinkExpressionInput } -describe('PerspectivismDb', () => { - let db: PerspectivismDb | undefined +describe('Ad4mDb', () => { + let db: Ad4mDb | undefined let pUUID: string | undefined beforeEach(() => { - db = new PerspectivismDb(); + db = new Ad4mDb(); pUUID = uuidv4() }) @@ -45,8 +45,6 @@ describe('PerspectivismDb', () => { delete link.data.predicate await db!.addLink(pUUID!, link); - link.data.predicate = null; - const result = await db!.getLink(pUUID!, link); expect(result).to.be.deep.equal(link); }) diff --git a/executor/src/core/db.ts b/executor/src/core/db.ts index 12492085a..91f198b23 100644 --- a/executor/src/core/db.ts +++ b/executor/src/core/db.ts @@ -1,5 +1,6 @@ import { Database } from 'aloedb-node' import path from 'path' +import fs from 'fs'; import type { Expression, LinkExpression, LinkStatus, PerspectiveDiff } from "@perspect3vism/ad4m"; interface LinkSchema { @@ -25,12 +26,24 @@ interface PerspectiveDiffSchema { isPending: boolean } -export class PerspectivismDb { +export class Ad4mDb { #linkDb: Database; #expressionDb: Database; #diffDb: Database; constructor(dbPath?: string) { + let linkDbPath = dbPath ? path.join(dbPath, "links.json") : undefined; + let expressionDbPath = dbPath ? path.join(dbPath, "expression.json") : undefined; + let diffDbPath = dbPath ? path.join(dbPath, "diffs.json") : undefined; + if (linkDbPath && !fs.existsSync(linkDbPath)) { + fs.writeFileSync(linkDbPath, ""); + } + if (expressionDbPath && !fs.existsSync(expressionDbPath)) { + fs.writeFileSync(expressionDbPath, ""); + } + if (diffDbPath && !fs.existsSync(diffDbPath)) { + fs.writeFileSync(diffDbPath, ""); + } this.#linkDb = new Database(dbPath ? path.join(dbPath, "links.json") : undefined); this.#expressionDb = new Database(dbPath ? path.join(dbPath, "expression.json") : undefined); this.#diffDb = new Database(dbPath ? path.join(dbPath, "diffs.json") : undefined); @@ -106,9 +119,6 @@ export class PerspectivismDb { if (link.data.source == null) { delete link.data.source; }; - if (link.data.predicate == null) { - delete link.data.predicate; - }; if (link.data.target == null) { delete link.data.target; }; @@ -206,7 +216,7 @@ export class PerspectivismDb { } } -export function init(dbFilePath: string): PerspectivismDb { - return new PerspectivismDb(dbFilePath) +export function init(dbFilePath: string): Ad4mDb { + return new Ad4mDb(dbFilePath) } diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 4d33dc91b..3516eceb8 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -1,25 +1,15 @@ -import { ApolloServer, gql, AuthenticationError } from 'apollo-server-express' -import express from 'express'; -import { createServer } from 'http'; -import { - ApolloServerPluginDrainHttpServer, -} from "apollo-server-core"; -import { WebSocketServer } from 'ws'; -import { useServer } from 'graphql-ws/lib/use/ws'; -import { makeExecutableSchema } from '@graphql-tools/schema'; -import { Agent, Expression, InteractionCall, LanguageRef, PerspectiveExpression, PerspectiveHandle, PerspectiveState, PerspectiveUnsignedInput } from '@perspect3vism/ad4m' +import { Agent, Expression, InteractionCall, Language, LanguageRef, PerspectiveExpression, PerspectiveState, PerspectiveUnsignedInput } from '@perspect3vism/ad4m' import { exprRef2String, parseExprUrl, LanguageMeta } from '@perspect3vism/ad4m' -import { typeDefsString } from '@perspect3vism/ad4m/lib/src/typeDefs' -import type PerspectivismCore from '../PerspectivismCore' -import * as PubSub from './PubSub' -import { GraphQLScalarType } from "graphql"; +import type Ad4mCore from '../Ad4mCore' +import * as PubSubDefinitions from './SubscriptionDefinitions' import { ad4mExecutorVersion } from '../Config'; import * as Auth from '../agent/Auth' import { checkCapability, checkTokenAuthorized } from '../agent/Auth' -import { withFilter } from 'graphql-subscriptions'; import { OuterConfig } from '../../main'; -import path from 'path'; import Perspective from '../Perspective'; +import { Capability } from '../agent/Auth' +import { Capabilities } from '../agent/Auth' +import { getPubSub } from '../utils'; function checkLinkLanguageInstalled(perspective: Perspective) { if(perspective.state != PerspectiveState.Synced && perspective.state != PerspectiveState.LinkLanguageInstalledButNotSynced) { @@ -27,22 +17,37 @@ function checkLinkLanguageInstalled(perspective: Perspective) { } } -function createResolvers(core: PerspectivismCore, config: OuterConfig) { - const pubsub = PubSub.get() +export function createResolvers(core: Ad4mCore, config: OuterConfig) { function signPerspectiveDeep(input: PerspectiveUnsignedInput): PerspectiveExpression { let out = new PerspectiveExpression() out.links = input.links.map(l => core.agentService.createSignedExpression(l)) return core.agentService.createSignedExpression(out) } + return { Query: { + getCapabilities: async (token: string) => { + if (token === undefined) { + token = "" + }; + const capabilities = await core.agentService.getCapabilities(token); + if(!capabilities) throw new Error("User capability is empty.") + + const isAd4minCredential = core.agentService.isAdminCredential(token) + checkTokenAuthorized(core.agentService.getApps(), token, isAd4minCredential) + + return { capabilities, token }; + }, + checkCapability: async (suppliedCapabilities: Capabilities, expectedCapabilities: Capability) => { + await checkCapability(suppliedCapabilities, expectedCapabilities); + }, //@ts-ignore - agent: (parent, args, context, info) => { + agent: (context) => { checkCapability(context.capabilities, Auth.AGENT_READ_CAPABILITY) return core.agentService.agent }, //@ts-ignore - agentByDID: async (parent, args, context, info) => { + agentByDID: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_READ_CAPABILITY) const { did } = args; if (did != core.agentService.did) { @@ -61,23 +66,22 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { } }, //@ts-ignore - agentStatus: (parent, args, context, info) => { + agentStatus: (context) => { checkCapability(context.capabilities, Auth.AGENT_READ_CAPABILITY) return core.agentService.dump() }, //@ts-ignore - agentIsLocked: (parent, args, context, info) => { + agentIsLocked: () => { return !core.agentService.isUnlocked }, //@ts-ignore - agentGetApps: async (parent, args, context, info) => { + agentGetApps: async (context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) let apps = await core.agentService.getApps() return apps; - }, //@ts-ignore - expression: async (parent, args, context, info) => { + expression: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_READ_CAPABILITY) const url = args.url.toString(); const ref = parseExprUrl(url) @@ -86,11 +90,31 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { expression.ref = ref expression.url = url expression.data = JSON.stringify(expression.data) + + //Add the expression icon + expression.icon = { code: await core.languageController.getIcon(ref.language) } + + //Add the language information + let lang + + if(expression.ref.language.address === "literal") { + lang = { address: "literal", name: "literal" } + } else { + try { + lang = await core.languageController.languageForExpression(expression.ref) as any + } catch(e) { + console.error("While trying to get language for expression", expression, ":", e) + lang = {} + } + } + + lang.address = expression.ref.language.address + expression.language = lang } return expression }, //@ts-ignore - expressionMany: async (parent, args, context, info) => { + expressionMany: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_READ_CAPABILITY) const { urls } = args; const expressionPromises = []; @@ -99,39 +123,114 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }; const results = await Promise.all(expressionPromises); - return results.map((expression: Expression|null, index) => { + return await Promise.all(results.map(async (expression: Expression|null, index) => { if(expression) { expression.ref = parseExprUrl(urls[index]); expression.url = urls[index]; expression.data = JSON.stringify(expression.data); + + //Add the expression icon + expression.icon = { code: await core.languageController.getIcon(expression.ref.language) } + + //Add the language information + let lang + + if(expression.ref.language.address === "literal") { + return { address: "literal", name: "literal" } + } + + try { + lang = await core.languageController.languageForExpression(expression.ref) as any + } catch(e) { + console.error("While trying to get language for expression", expression, ":", e) + lang = {} + } + + lang.address = expression.ref.language.address + expression.language = lang } return expression - }) + })) }, //@ts-ignore - expressionRaw: async (parent, args, context, info) => { + expressionRaw: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_READ_CAPABILITY) const ref = parseExprUrl(args.url.toString()) const expression = await core.languageController.getExpression(ref) as any return JSON.stringify(expression) }, //@ts-ignore - expressionInteractions: async (parent, args, context, info) => { + expressionInteractions: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_READ_CAPABILITY) const { url } = args const result = await core.languageController.expressionInteractions(url) return result }, //@ts-ignore - language: async (parent, args, context, info) => { + language: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_READ_CAPABILITY) const { address } = args const lang = await core.languageController.languageByRef({address, name: ""} as LanguageRef) as any lang.address = address + + const constructorIcon = async (language: Language) => { + if (language.expressionUI) { + const code = language.expressionUI.constructorIcon(); + + if (code) { + return { code } + } else { + return { code: "" } + } + } + + return null + }; + + lang.constructorIcon = await constructorIcon(lang); + + const icon = async (language: Language) => { + if (language.expressionUI) { + const code = language.expressionUI.icon(); + + if (code) { + return { code } + } else { + return { code: "" } + } + } + + return null + }; + + lang.icon = await icon(lang); + + const settings = async (address: string) => { + return JSON.stringify(core.languageController.getSettings(address)) + }; + + lang.settings = await settings(address); + + const settingsIcon = async (language: Language) => { + if (language.settingsUI) { + const code = language.settingsUI.settingsIcon(); + + if (code) { + return { code } + } else { + return { code: "" } + } + } + + return null + } + + lang.settingsIcon = await settingsIcon(lang); + return lang }, //@ts-ignore - languageMeta: async (parent, args, context, info) => { + languageMeta: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_READ_CAPABILITY) const { address } = args const languageExpression = await core.languageController.getLanguageExpression(address) @@ -153,7 +252,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - languageSource: async (parent, args, context, info) => { + languageSource: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_READ_CAPABILITY) const { address } = args const languageSource = await core.languageController.getLanguageSource(address) @@ -164,7 +263,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - languages: (parent, args, context, info) => { + languages: (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_READ_CAPABILITY) let filter if(args.filter && args.filter !== '') filter = args.filter @@ -172,7 +271,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodOtherAgents: async (parent, args, context, info) => { + neighbourhoodOtherAgents: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -182,7 +281,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodHasTelepresenceAdapter: async (parent, args, context, info) => { + neighbourhoodHasTelepresenceAdapter: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_READ_CAPABILITY) const { perspectiveUUID } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -193,7 +292,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodOnlineAgents: async (parent, args, context, info) => { + neighbourhoodOnlineAgents: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_READ_CAPABILITY) const { perspectiveUUID } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -205,13 +304,18 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - perspective: (parent, args, context, info) => { + perspective: (args, context) => { const id = args.uuid checkCapability(context.capabilities, Auth.perspectiveQueryCapability([id])) - return core.perspectivesController.perspectiveID(id) + let perspective = core.perspectivesController.perspectiveID(id); + if (perspective == undefined) { + return null; + } else { + return perspective + } }, //@ts-ignore - perspectiveQueryLinks: async (parent, args, context, info) => { + perspectiveQueryLinks: async (args, context) => { const { uuid, query } = args checkCapability(context.capabilities, Auth.perspectiveQueryCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) @@ -219,49 +323,59 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return await perspective.getLinks(query) }, //@ts-ignore - perspectiveQueryProlog: async (parent, args, context, info) => { + perspectiveQueryProlog: async (args, context) => { const { uuid, query } = args checkCapability(context.capabilities, Auth.perspectiveQueryCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return JSON.stringify(await perspective.prologQuery(query)) }, //@ts-ignore - perspectiveSnapshot: async (parent, args, context, info) => { + perspectiveSnapshot: async (args, context) => { const id = args.uuid checkCapability(context.capabilities, Auth.perspectiveQueryCapability([id])) return await core.perspectivesController.perspectiveSnapshot(id) }, //@ts-ignore - perspectives: (parent, args, context, info) => { + perspectives: (context) => { checkCapability(context.capabilities, Auth.perspectiveQueryCapability(["*"])) return core.perspectivesController.allPerspectiveHandles() }, //@ts-ignore - getTrustedAgents: (parent, args, context, info) => { + agentGetEntanglementProofs: () => { + return core.entanglementProofController.getEntanglementProofs(); + }, + //@ts-ignore + getTrustedAgents: (context) => { checkCapability(context.capabilities, Auth.RUNTIME_TRUSTED_AGENTS_READ_CAPABILITY) return core.runtimeService.getTrustedAgents(); }, //@ts-ignore - runtimeKnownLinkLanguageTemplates: (parent, args, context, info) => { + runtimeKnownLinkLanguageTemplates: (context) => { checkCapability(context.capabilities, Auth.RUNTIME_KNOWN_LINK_LANGUAGES_READ_CAPABILITY) return core.runtimeService.knowLinkLanguageTemplates(); }, //@ts-ignore - runtimeFriends: (parent, args, context, info) => { + runtimeFriends: (context) => { checkCapability(context.capabilities, Auth.RUNTIME_FRIENDS_READ_CAPABILITY) return core.runtimeService.friends(); }, //@ts-ignore - runtimeHcAgentInfos: async (parent, args, context, info) => { + runtimeHcAgentInfos: async (context) => { checkCapability(context.capabilities, Auth.RUNTIME_HC_AGENT_INFO_READ_CAPABILITY) - return JSON.stringify(await core.holochainRequestAgentInfos()) + return JSON.stringify(await core.holochainRequestAgentInfos()); }, //@ts-ignore - runtimeFriendStatus: async (parent, args, context, info) => { + runtimeVerifyStringSignedByDid: async (args, context) => { + const { did, didSigningKeyId, data, signedData } = args; + return await core.signatureService.verifyStringSignedByDid(did, didSigningKeyId, data, signedData) + }, + + //@ts-ignore + runtimeFriendStatus: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_FRIEND_STATUS_READ_CAPABILITY) const { did } = args if(!core.runtimeService.friends().includes(did)) throw `${did} is not a friend` @@ -273,20 +387,20 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - runtimeMessageInbox: async (parent, args, context, info) => { + runtimeMessageInbox: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_MESSAGES_READ_CAPABILITY) const { filter } = args const dmLang = await core.myDirectMessageLanguage() return await dmLang.directMessageAdapter!.inbox(filter) }, //@ts-ignore - runtimeMessageOutbox: (parent, args, context, info) => { + runtimeMessageOutbox: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_MESSAGES_READ_CAPABILITY) const { filter } = args return core.runtimeService.getMessagesOutbox(filter) }, //@ts-ignore - runtimeInfo: (parent, args) => { + runtimeInfo: () => { const isInitialized = core.agentService.isInitialized(); const isUnlocked = core.agentService.isUnlocked(); return { @@ -298,7 +412,24 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, Mutation: { //@ts-ignore - agentRemoveApp: async (parent, args, context, info) => { + agentAddEntanglementProofs: (args, context) => { + const { proofs } = args; + core.entanglementProofController.addEntanglementProofs(proofs); + return core.entanglementProofController.getEntanglementProofs(); + }, + //@ts-ignore + agentDeleteEntanglementProofs: (args, context) => { + const { proofs } = args; + core.entanglementProofController.deleteEntanglementProofs(proofs); + return core.entanglementProofController.getEntanglementProofs(); + }, + //@ts-ignore + agentEntanglementProofPreFlight: (args, context) => { + const { deviceKey, deviceKeyType } = args; + return core.entanglementProofController.signDeviceKey(deviceKey, deviceKeyType); + }, + //@ts-ignore + agentRemoveApp: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { requestId } = args; await core.agentService.removeApp(requestId) @@ -306,42 +437,42 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - agentRevokeToken: async (parent, args, context, info) => { + agentRevokeToken: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { requestId } = args; await core.agentService.revokeAppToken(requestId) return await core.agentService.getApps(); }, //@ts-ignore - addTrustedAgents: (parent, args, context, info) => { + addTrustedAgents: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_TRUSTED_AGENTS_CREATE_CAPABILITY) const { agents } = args; core.runtimeService.addTrustedAgents(agents); return core.runtimeService.getTrustedAgents(); }, //@ts-ignore - deleteTrustedAgents: (parent, args, context, info) => { + deleteTrustedAgents: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_TRUSTED_AGENTS_DELETE_CAPABILITY) const { agents } = args; core.runtimeService.deleteTrustedAgents(agents); return core.runtimeService.getTrustedAgents(); }, //@ts-ignore - runtimeAddKnownLinkLanguageTemplates: (parent, args, context, info) => { + runtimeAddKnownLinkLanguageTemplates: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_KNOWN_LINK_LANGUAGES_CREATE_CAPABILITY) const { addresses } = args; core.runtimeService.addKnowLinkLanguageTemplates(addresses); return core.runtimeService.knowLinkLanguageTemplates(); }, //@ts-ignore - runtimeRemoveKnownLinkLanguageTemplates: (parent, args, context, info) => { + runtimeRemoveKnownLinkLanguageTemplates: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_KNOWN_LINK_LANGUAGES_DELETE_CAPABILITY) const { addresses } = args; core.runtimeService.removeKnownLinkLanguageTemplates(addresses); return core.runtimeService.knowLinkLanguageTemplates(); }, //@ts-ignore - runtimeAddFriends: async (parent, args, context, info) => { + runtimeAddFriends: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_FRIENDS_CREATE_CAPABILITY) const { dids } = args; core.runtimeService.addFriends(dids); @@ -350,28 +481,27 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return core.runtimeService.friends(); }, //@ts-ignore - runtimeRemoveFriends: (parent, args, context, info) => { + runtimeRemoveFriends: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_FRIENDS_DELETE_CAPABILITY) const { dids } = args; core.runtimeService.removeFriends(dids); return core.runtimeService.friends(); }, //@ts-ignore - agentGenerate: async (parent, args, context, info) => { + agentGenerate: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_CREATE_CAPABILITY) await core.agentService.createNewKeys() await core.agentService.save(args.passphrase) - const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap} = config; + const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, hcProxyUrl, hcBootstrapUrl} = config; - if (connectHolochain) { - await core.connectHolochain( {hcPortAdmin: hcPortAdmin!, hcPortApp: hcPortApp!} ); - } else { - await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase }); - } + await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase, hcProxyUrl, hcBootstrapUrl }); + console.log("Holochain init complete"); await core.waitForAgent(); + console.log("Wait for agent"); core.initControllers() await core.initLanguages() + console.log("Core languages init'd"); if (!config.languageLanguageOnly) { await core.initializeAgentsDirectMessageLanguage() @@ -379,27 +509,21 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { const agent = core.agentService.dump(); - pubsub.publish(PubSub.AGENT_STATUS_CHANGED, agent) + let pubSub = getPubSub(); + await pubSub.publish(PubSubDefinitions.AGENT_STATUS_CHANGED, agent) console.log("\x1b[32m", "AD4M init complete", "\x1b[0m"); return agent; }, //@ts-ignore - agentImport: async (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.AGENT_CREATE_CAPABILITY) - const { did, didDocument, keystore, passphrase } = args; - await core.agentService.initialize(did, didDocument, keystore, passphrase) - return core.agentService.dump() - }, - //@ts-ignore - agentLock: (parent, args, context, info) => { + agentLock: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_LOCK_CAPABILITY) - core.agentService.lock(args.passphrase) + await core.agentService.lock(args.passphrase) return core.agentService.dump() }, //@ts-ignore - agentUnlock: async (parent, args, context, info) => { + agentUnlock: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_UNLOCK_CAPABILITY) try { await core.agentService.unlock(args.passphrase) @@ -415,16 +539,12 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { await core.initLanguages(); } catch (e) { // @ts-ignore - const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap} = config; + const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, hcProxyUrl, hcBootstrapUrl} = config; - if (connectHolochain) { - await core.connectHolochain( {hcPortAdmin: hcPortAdmin!, hcPortApp: hcPortApp!} ); - } else { - await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase }); - await core.waitForAgent(); - core.initControllers() - await core.initLanguages() - } + await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase, hcProxyUrl, hcBootstrapUrl }); + await core.waitForAgent(); + core.initControllers() + await core.initLanguages() console.log("\x1b[32m", "AD4M init complete", "\x1b[0m"); } @@ -445,7 +565,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return dump }, //@ts-ignore - agentUpdateDirectMessageLanguage: async (parent, args, context, info) => { + agentUpdateDirectMessageLanguage: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_UPDATE_CAPABILITY) const { directMessageLanguage } = args; let currentAgent = core.agentService.agent; @@ -457,7 +577,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return currentAgent; }, //@ts-ignore - agentUpdatePublicPerspective: async (parent, args, context, info) => { + agentUpdatePublicPerspective: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_UPDATE_CAPABILITY) const {perspective} = args; let currentAgent = core.agentService.agent; @@ -479,42 +599,48 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return currentAgent; }, //@ts-ignore - agentRequestCapability: async (parent, args, context, info) => { + agentRequestCapability: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { authInfo } = args; - let token = core.agentService.requestCapability(authInfo); + let token = await core.agentService.requestCapability(authInfo); return token; }, //@ts-ignore - agentPermitCapability: (parent, args, context, info) => { + agentPermitCapability: (args, context) => { checkCapability(context.capabilities, Auth.AGENT_PERMIT_CAPABILITY) const { auth } = args; return core.agentService.permitCapability(auth, context.capabilities); }, //@ts-ignore - agentGenerateJwt: async (parent, args, context, info) => { + agentGenerateJwt: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { requestId, rand } = args; let jwt = await core.agentService.generateJwt(requestId, rand) return jwt; }, //@ts-ignore - agentSignMessage: async (parent, args, context, info) => { + agentSignMessage: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_SIGN_CAPABILITY) const { message } = args; let sig = await core.agentService.signMessage(message) return sig }, //@ts-ignore - expressionCreate: async (parent, args, context, info) => { + expressionCreate: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_CREATE_CAPABILITY) const { languageAddress, content } = args + + //@ts-ignore + function prepareExpressionData(value) { + return typeof value === 'object' && value !== null ? JSON.parse(JSON.stringify(value)) : value; + } + const langref = { address: languageAddress } as LanguageRef - const expref = await core.languageController.expressionCreate(langref, JSON.parse(content)) + const expref = await core.languageController.expressionCreate(langref, prepareExpressionData(content)) return exprRef2String(expref) }, //@ts-ignore - expressionInteract: async (parent, args, context, info) => { + expressionInteract: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_UPDATE_CAPABILITY) let { url, interactionCall } = args interactionCall = new InteractionCall(interactionCall.name, JSON.parse(interactionCall.parametersStringified)) @@ -522,13 +648,14 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return result }, //@ts-ignore - languageApplyTemplateAndPublish: async (parent, args, context, info) => { + languageApplyTemplateAndPublish: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_CREATE_CAPABILITY) + console.log("JS args", args); const { sourceLanguageHash, templateData } = args; return await core.languageApplyTemplateAndPublish(sourceLanguageHash, JSON.parse(templateData)); }, //@ts-ignore - languagePublish: async (parent, args, context, info) => { + languagePublish: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_CREATE_CAPABILITY) const { languagePath, languageMeta } = args; const expression = await core.languagePublish(languagePath, languageMeta); @@ -546,7 +673,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return meta }, //@ts-ignore - languageRemove: async (parent, args, context, info) => { + languageRemove: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_DELETE_CAPABILITY) const { address } = args try { @@ -558,14 +685,14 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return true }, //@ts-ignore - languageWriteSettings: async (parent, args, context, info) => { + languageWriteSettings: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_UPDATE_CAPABILITY) const { languageAddress, settings } = args await core.languageController.putSettings(languageAddress, JSON.parse(settings)) return true }, //@ts-ignore - neighbourhoodJoinFromUrl: async (parent, args, context, info) => { + neighbourhoodJoinFromUrl: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_READ_CAPABILITY) const { url } = args; try{ @@ -577,7 +704,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodPublishFromPerspective: async (parent, args, context, info) => { + neighbourhoodPublishFromPerspective: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_CREATE_CAPABILITY) const { linkLanguage, meta, perspectiveUUID } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -593,7 +720,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSetOnlineStatus: async (parent, args, context, info) => { + neighbourhoodSetOnlineStatus: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, status } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -607,7 +734,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSetOnlineStatusU: async (parent, args, context, info) => { + neighbourhoodSetOnlineStatusU: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, status } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -621,7 +748,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSendSignal: async (parent, args, context, info) => { + neighbourhoodSendSignal: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, remoteAgentDid, payload } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -635,7 +762,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSendSignalU: async (parent, args, context, info) => { + neighbourhoodSendSignalU: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, remoteAgentDid, payload } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -649,7 +776,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSendBroadcast: async (parent, args, context, info) => { + neighbourhoodSendBroadcast: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, payload } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -663,7 +790,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSendBroadcastU: async (parent, args, context, info) => { + neighbourhoodSendBroadcastU: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, payload } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -677,41 +804,47 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - perspectiveAdd: (parent, args, context, info) => { + perspectiveAdd: async (args, context) => { checkCapability(context.capabilities, Auth.PERSPECTIVE_CREATE_CAPABILITY) const { name } = args; - return core.perspectivesController.add(name) + return await core.perspectivesController.add(name) }, //@ts-ignore - perspectiveAddLink: async (parent, args, context, info) => { - const { uuid, link, status } = args + perspectiveAddLink: async (args, context) => { + let { uuid, link, status } = args + if (status == null) { + status = 'shared' + }; checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.addLink(link, status) }, //@ts-ignore - perspectiveAddLinks: async (parent, args, context, info) => { + perspectiveAddLinks: async (args, context, info) => { const { uuid, links, status } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.addLinks(links, status) }, //@ts-ignore - perspectiveAddLinkExpression: async (parent, args, context, info) => { - const { uuid, link, status } = args + perspectiveAddLinkExpression: async (args, context) => { + let { uuid, link, status } = args + if (status == null) { + status = 'shared' + }; checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.addLink(link, status) }, //@ts-ignore - perspectiveRemove: (parent, args, context, info) => { + perspectiveRemove: async (args, context) => { const { uuid } = args checkCapability(context.capabilities, Auth.perspectiveDeleteCapability([uuid])) - core.perspectivesController.remove(uuid) - return true + let removeStatus = await core.perspectivesController.remove(uuid) + return removeStatus }, //@ts-ignore - perspectiveRemoveLink: async (parent, args, context, info) => { + perspectiveRemoveLink: async (args, context) => { // console.log("GQL| removeLink:", args) const { uuid, link } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) @@ -720,58 +853,58 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return true }, //@ts-ignore - perspectiveRemoveLinks: async (parent, args, context, info) => { + perspectiveRemoveLinks: async (args, context) => { const { uuid, links } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.removeLinks(links) }, //@ts-ignore - perspectiveLinkMutations: async (parent, args, context, info) => { + perspectiveLinkMutations: async (args, context, info) => { const { uuid, mutations, status } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.linkMutations(mutations, status) }, //@ts-ignore - perspectiveUpdate: (parent, args, context, info) => { + perspectiveUpdate: async (args, context) => { const { uuid, name } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) - return core.perspectivesController.update(uuid, name); + return await core.perspectivesController.update(uuid, name); }, //@ts-ignore - perspectiveUpdateLink: async (parent, args, context, info) => { + perspectiveUpdateLink: async (args, context) => { const { uuid, oldLink, newLink } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.updateLink(oldLink, newLink) }, //@ts-ignore - runtimeOpenLink: (parent, args) => { + runtimeOpenLink: (args) => { const { url } = args console.log("openLinkExtern:", url) //shell.openExternal(url) return true }, //@ts-ignore - runtimeQuit: (parent, args, context, info) => { + runtimeQuit: (context) => { checkCapability(context.capabilities, Auth.RUNTIME_QUIT_CAPABILITY) process.exit(0) return true }, //@ts-ignore - runtimeHcAddAgentInfos: async (parent, args, context, info) => { + runtimeHcAddAgentInfos: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_HC_AGENT_INFO_CREATE_CAPABILITY) const { agentInfos } = args //@ts-ignore const parsed = JSON.parse(agentInfos).map(info => { return { //@ts-ignore - agent: Buffer.from(info.agent.data), + agent: Buffer.from(Object.values(info.agent)), //@ts-ignore - signature: Buffer.from(info.signature.data), + signature: Buffer.from(Object.values(info.signature)), //@ts-ignore - agent_info: Buffer.from(info.agent_info.data) + agent_info: Buffer.from(Object.values(info.agent_info)) } }) @@ -780,7 +913,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - runtimeSetStatus: async (parent, args, context, info) => { + runtimeSetStatus: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_MY_STATUS_UPDATE_CAPABILITY) const { status } = args const dmLang = await core.myDirectMessageLanguage() @@ -789,7 +922,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - runtimeFriendSendMessage: async (parent, args, context, info) => { + runtimeFriendSendMessage: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_MESSAGES_CREATE_CAPABILITY) const { did, message } = args if(!core.runtimeService.friends().includes(did)) throw `${did} is not a friend` @@ -819,224 +952,6 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, - Subscription: { - agentAppsChanged: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.AGENT_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.APPS_CHANGED) - }, - //@ts-ignore - resolve: payload => payload - }, - agentUpdated: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.AGENT_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.AGENT_UPDATED) - }, - //@ts-ignore - resolve: payload => payload - }, - agentStatusChanged: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - return pubsub.asyncIterator(PubSub.AGENT_STATUS_CHANGED) - }, - //@ts-ignore - resolve: payload => payload - }, - - neighbourhoodSignal: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC), - (payload, argsInner) => payload.perspective.uuid === argsInner.perspectiveUUID - )(undefined, args) - }, - resolve: async (payload: any) => { - await core.languageController?.tagExpressionSignatureStatus(payload?.signal) - if (payload?.signal?.data.links) { - for (const link of payload?.signal.data.links) { - await core.languageController?.tagExpressionSignatureStatus(link); - } - }; - return payload?.signal - } - }, - runtimeMessageReceived: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.RUNTIME_MESSAGES_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.DIRECT_MESSAGE_RECEIVED) - }, - //@ts-ignore - resolve: payload => payload - }, - perspectiveAdded: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.PERSPECTIVE_ADDED_TOPIC) - }, - //@ts-ignore - resolve: payload => payload?.perspective - }, - perspectiveLinkAdded: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.LINK_ADDED_TOPIC), - (payload, argsInner) => payload.perspective.uuid === argsInner.uuid - )(undefined, args) - }, - //@ts-ignore - resolve: payload => payload?.link - }, - perspectiveLinkRemoved: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.LINK_REMOVED_TOPIC), - (payload, variables) => payload.perspective.uuid === variables.uuid - )(undefined, args) - }, - //@ts-ignore - resolve: payload => payload?.link - }, - perspectiveLinkUpdated: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.LINK_UPDATED_TOPIC), - (payload, variables) => payload.perspective.uuid === variables.uuid - )(undefined, args) - }, - //@ts-ignore - resolve: payload => ({ oldLink: payload?.oldLink, newLink: payload.newLink }) - }, - perspectiveUpdated: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.PERSPECTIVE_UPDATED_TOPIC) - }, - //@ts-ignore - resolve: payload => payload?.perspective - }, - perspectiveRemoved: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.PERSPECTIVE_REMOVED_TOPIC) - }, - //@ts-ignore - resolve: payload => payload?.uuid - }, - exceptionOccurred: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.RUNTIME_EXCEPTION_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.EXCEPTION_OCCURRED_TOPIC) - }, - //@ts-ignore - resolve: payload => payload - }, - perspectiveSyncStateChange: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.PERSPECTIVE_SYNC_STATE_CHANGE), - (payload, variables) => payload.uuid === variables.uuid - )(undefined, args) - }, - //@ts-ignore - resolve: payload => payload.state - } - }, - - ExpressionRendered: { - //@ts-ignore - language: async (expression) => { - //console.log("GQL LANGUAGE", expression) - let lang - - if(expression.ref.language.address === "literal") { - return { address: "literal", name: "literal" } - } - - try { - lang = await core.languageController.languageForExpression(expression.ref) as any - } catch(e) { - console.error("While trying to get language for expression", expression, ":", e) - lang = {} - } - - lang.address = expression.ref.language.address - return lang - }, - - //@ts-ignore - icon: async (expression) => { - return { code: await core.languageController.getIcon(expression.ref.language) } - } - }, - - LanguageHandle: { - // @ts-ignore - constructorIcon: async (language) => { - if (language.expressionUI) { - const code = language.expressionUI.constructorIcon(); - - if (code) { - return { code } - } else { - return { code: "" } - } - } - - return null - }, - //@ts-ignore - icon: async (language) => { - if (language.expressionUI) { - const code = language.expressionUI.icon(); - - if (code) { - return { code } - } else { - return { code: "" } - } - } - - return null - }, - //@ts-ignore - settings: async (language) => { - return JSON.stringify(core.languageController.getSettings(language.address)) - }, - //@ts-ignore - settingsIcon: async (language) => { - if (language.settingsUI) { - const code = language.settingsUI.settingsIcon(); - - if (code) { - return { code } - } else { - return { code: "" } - } - } - - return null - } - }, - Agent: { //@ts-ignore directMessageLanguage: async (agent) => { @@ -1072,130 +987,6 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return null } } - }, - - DateTime: new GraphQLScalarType({ - name: 'Date', - description: 'Date custom scalar type', - parseValue(value) { - return new Date(value); // value from the client - }, - serialize(value) { - return value.toISOString(); // value sent to the client - } - }), - } -} - -export interface StartServerParams { - core: PerspectivismCore, - mocks: boolean, - port: number, - config: OuterConfig; -} - -export async function startServer(params: StartServerParams) { - const { core, mocks, port } = params - const app = express(); - const httpServer = createServer(app); - const resolvers = createResolvers(core, params.config) - const typeDefs = gql(typeDefsString) - const schema = makeExecutableSchema({ typeDefs, resolvers }); - const rootConfigPath = path.join(params.config.appDataPath, 'ad4m'); - - let serverCleanup: any; - const server = new ApolloServer({ - typeDefs, - resolvers, - context: async (context) => { - let headers = context.req?.headers; - let authToken = '' - - if(headers) { - // Get the request token from the authorization header. - authToken = headers.authorization || '' - } - const capabilities = await core.agentService.getCapabilities(authToken) - if(!capabilities) throw new AuthenticationError("User capability is empty.") - - const isAd4minCredential = core.agentService.isAdminCredential(authToken) - checkTokenAuthorized(core.agentService.getApps(), authToken, isAd4minCredential) - - return { capabilities, authToken }; - }, - plugins: [ - ApolloServerPluginDrainHttpServer({ httpServer }), - { - async serverWillStart() { - return { - async drainServer() { - await serverCleanup.dispose(); - }, - }; - }, - }, - ] - }); - - - const wsServer = new WebSocketServer({ - server: httpServer, - path: server.graphqlPath, - }); - - wsServer.on('error', (err) => { - console.error("WsServer got error: ", err); - wsServer.clients.clear(); - }); - - serverCleanup = useServer({ - schema, - context: async (context, msg, args) => { - let headers: any - - // Depending on the transport, the context is different - // For normal http queries, it's the connection context - if(context.connectionParams) { - headers = context.connectionParams!.headers; - //@ts-ignore - } else if(context.req) { - //@ts-ignore - headers = context.req.headers; - // For subscriptions via websocket, it's the request context in `extra` - } else if(context.extra && context.extra.request) { - if(context.extra.request.headers) { - headers = context.extra.request.headers; - } else if(context.extra.request.rawHeaders) { - headers = context.extra.request.rawHeaders; - } else { - console.error("Coulnd't find headers in context", context) - } - } - - let authToken = '' - - if(headers) { - // Get the request token from the authorization header. - authToken = headers.authorization || '' - } - const capabilities = await core.agentService.getCapabilities(authToken) - if(!capabilities) throw new AuthenticationError("User capability is empty.") - - const isAd4minCredential = core.agentService.isAdminCredential(authToken) - checkTokenAuthorized(core.agentService.getApps(), authToken, isAd4minCredential) - - return { capabilities, authToken }; } - }, wsServer); - - await server.start(); - - server.applyMiddleware({ app }); - - httpServer.listen({ port }); - - return { - url: `http://localhost:${port}/graphql`, - subscriptionsUrl: `ws://localhost:${port}/graphql` } } diff --git a/executor/src/core/graphQL-interface/PubSub.ts b/executor/src/core/graphQL-interface/SubscriptionDefinitions.ts similarity index 59% rename from executor/src/core/graphQL-interface/PubSub.ts rename to executor/src/core/graphQL-interface/SubscriptionDefinitions.ts index 3d2088426..3c6060991 100644 --- a/executor/src/core/graphQL-interface/PubSub.ts +++ b/executor/src/core/graphQL-interface/SubscriptionDefinitions.ts @@ -1,22 +1,14 @@ -import { PubSub } from 'graphql-subscriptions' - export const AGENT_UPDATED = 'agent-updated-topic' export const AGENT_STATUS_CHANGED = 'agent-status-changed-topic' -export const DIRECT_MESSAGE_RECEIVED = 'direct-message-received-topic' +export const RUNTIME_MESSAGED_RECEIVED_TOPIC = 'runtime-messaged-received-topic' export const PERSPECTIVE_ADDED_TOPIC = 'perspective-added-topic' export const PERSPECTIVE_UPDATED_TOPIC = 'perspective-updated-topic' export const PERSPECTIVE_REMOVED_TOPIC = 'perspective-removed-topic' -export const LINK_ADDED_TOPIC = 'link-added-topic' -export const LINK_REMOVED_TOPIC = 'link-removed-topic' -export const LINK_UPDATED_TOPIC = 'link-updated-topic' +export const LINK_ADDED_TOPIC = 'perspective-link-added-topic' +export const LINK_REMOVED_TOPIC = 'perspective-link-removed-topic' +export const LINK_UPDATED_TOPIC = 'perspective-link-updated-topic' export const SIGNAL = "signal" export const EXCEPTION_OCCURRED_TOPIC = "exception-occurred-topic" export const NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC = "neighbourhood-signal-received-topic" export const PERSPECTIVE_SYNC_STATE_CHANGE = "perspective-sync-state-change" -export const APPS_CHANGED = "apps-changed" - -const pubsub = new PubSub() - -export function get() { - return pubsub -} \ No newline at end of file +export const APPS_CHANGED = "apps-changed" \ No newline at end of file diff --git a/executor/src/core/storage-services/Holochain/HcExecution.ts b/executor/src/core/storage-services/Holochain/HcExecution.ts deleted file mode 100644 index 057d0f588..000000000 --- a/executor/src/core/storage-services/Holochain/HcExecution.ts +++ /dev/null @@ -1,168 +0,0 @@ -import child_process, { execSync } from "child_process"; -import fs from "fs"; -import path from "path"; -import { HolochainUnlockConfiguration } from "../../PerspectivismCore"; -import { kitsuneProxy } from "./HolochainService"; - -function escapeShellArg (arg: string) { - return arg.replace(" ", "\ "); -} - -export function stopProcesses(hcProcess: child_process.ChildProcess) { - hcProcess.kill("SIGTERM"); -} - -export function unpackDna(hcPath: string, dnaPath: string): string { - return child_process.execFileSync(`${escapeShellArg(hcPath)}`, ["dna", "unpack", `${escapeShellArg(dnaPath)}`]).toString(); -} - -export function packDna(hcPath: string, workdirPath: string): string { - return child_process.execFileSync(`${escapeShellArg(hcPath)}`, ["dna", "pack", `${escapeShellArg(workdirPath)}`]).toString(); -} - -export interface ConductorConfiguration { - proxyUrl: string; - environmentPath: string; - adminPort: number; - appPort: number; - useBootstrap: boolean, - bootstrapService: string; - conductorConfigPath: string; - useProxy: boolean, - useLocalProxy: boolean; - useMdns: boolean; - lairConnectionUrl: string; -} - -export function writeDefaultConductor(conductorConfig: ConductorConfiguration) { - console.log("HolochainService: Writing fresh conductor file...") - let proxyType; - if(conductorConfig.useLocalProxy) { - proxyType = "local_proxy_server" - } else { - proxyType = "remote_proxy_client" - } - let conductorStringConfig = ` ---- -environment_path: ${escapeShellArg(conductorConfig.environmentPath)} -keystore: - type: lair_server_in_proc -admin_interfaces: - - driver: - type: websocket - port: ${conductorConfig.adminPort} -network: - network_type: ${conductorConfig.useMdns? 'quic_mdns' : 'quic_bootstrap'} - ${conductorConfig.useBootstrap ? 'bootstrap_service: '+ conductorConfig.bootstrapService : ''} - transport_pool: - - type: ${conductorConfig.useProxy ? 'proxy' : 'quic'} - sub_transport: - type: quic - proxy_config: - type: remote_proxy_client - proxy_url: ${kitsuneProxy} - tuning_params: - gossip_strategy: sharded-gossip - gossip_loop_iteration_delay_ms: '1000' - gossip_outbound_target_mbps: '100' - gossip_inbound_target_mbps: '100' - gossip_historic_outbound_target_mbps: '100' - gossip_historic_inbound_target_mbps: '100' - gossip_burst_ratio: '100' - gossip_peer_on_success_next_gossip_delay_ms: '30000' - gossip_peer_on_error_next_gossip_delay_ms: '60000' - gossip_agent_info_update_interval_ms: '600000' - gossip_local_sync_delay_ms: '30000' - gossip_redundancy_target: '100' - gossip_max_batch_size: '1000000' - gossip_dynamic_arcs: 'true' - gossip_single_storage_arc_per_space: 'false' - default_rpc_single_timeout_ms: '30000' - default_rpc_multi_remote_agent_count: '3' - default_rpc_multi_remote_request_grace_ms: '3000' - agent_info_expires_after_ms: '1200000' - tls_in_mem_session_storage: '512' - proxy_keepalive_ms: '120000' - proxy_to_expire_ms: '600000' - concurrent_limit_per_thread: '4096' - tx2_quic_max_idle_timeout_ms: '30000' - tx2_pool_max_connection_count: '4096' - tx2_channel_count_per_connection: '2' - tx2_implicit_timeout_ms: '30000' - tx2_initial_connect_retry_delay_ms: '200' - danger_tls_keylog: no_keylog - danger_gossip_recent_threshold_secs: '900' - disable_publish: 'false' - disable_recent_gossip: 'false' - disable_historical_gossip: 'false' -chc_namespace: null -db_sync_strategy: Fast -` - fs.writeFileSync(conductorConfig.conductorConfigPath, conductorStringConfig); -} - -export async function runHolochain(resourcePath: string, conductorConfigPath: string, hcDataPath: string, config: HolochainUnlockConfiguration): Promise { - console.log("Starting holochain version: ", child_process.execFileSync(`${escapeShellArg(path.join(resourcePath, "holochain"))}`, ["--version"]).toString()); - - let hcProcess = child_process.spawn(`${escapeShellArg(path.join(resourcePath, "holochain"))}`, ["-c", escapeShellArg(conductorConfigPath), "-p"], - { - env: { - ...process.env, - RUST_LOG: process.env.RUST_LOG ? process.env.RUST_LOG : "wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error", - WASM_LOG: process.env.WASM_LOG ? process.env.WASM_LOG: "debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error" - }, - } - ); - - //Log holochain process stdout to out - hcProcess.stdout.on('data', (data) => { - console.log(`${data}`); - }); - // hcProcess.stdout.on('error', (err) => { - // if (err.code == "EPIPE") { - // process.exit(0); - // } - // }); - //Log holochain process stderr to out - hcProcess.stderr.on('data', (data) => { - console.log(`${data}`); - }); - - let isReady = new Promise((resolve, reject) => { - hcProcess.stdout.on('data', (data) => { - if (data.includes("Conductor ready")) { - resolve(null); - }; - }); - }); - - const echo = child_process.exec(`echo ${config.passphrase}`, (error, stdout, stderr) => { - if (error) { - console.log(`runHolochain.echo.exec: error: ${error.message}`); - return; - } - if (stderr) { - console.log(`runHolochain.echo.exec: stderr: ${stderr}`); - return; - } - if (stdout) { - hcProcess.stdin.write(stdout); - return; - } - }); - - echo.on('close', (code) => { - if (code !== 0) { - console.log(`echo process exited with code ${code}`); - } - hcProcess.stdin.end(); - }); - - process.on("SIGINT", function () { - hcProcess.kill("SIGINT"); - process.exit(); - }); - - await isReady; - return hcProcess; -} \ No newline at end of file diff --git a/executor/src/core/storage-services/Holochain/HolochainLanguageDelegate.ts b/executor/src/core/storage-services/Holochain/HolochainLanguageDelegate.ts index 0ef8710f7..3f67183b9 100644 --- a/executor/src/core/storage-services/Holochain/HolochainLanguageDelegate.ts +++ b/executor/src/core/storage-services/Holochain/HolochainLanguageDelegate.ts @@ -15,7 +15,8 @@ export default class HolochainLanguageDelegate { } async registerDNAs(dnas: Dna[], holochainSignalCallback?: AppSignalCb): Promise { - return await this.#holochainService.ensureInstallDNAforLanguage(this.#languageHash, dnas, holochainSignalCallback) + const _cells = await this.#holochainService.ensureInstallDNAforLanguage(this.#languageHash, dnas, holochainSignalCallback); + return; } async call(dnaNick: string, zomeName: string, fnName: string, params: object|string): Promise { diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 256a8305f..c38b9dbcb 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -1,23 +1,21 @@ -import { AdminWebsocket, AgentPubKey, AppSignalCb, AppWebsocket, encodeHashToBase64, AppSignal, CellId, CellType, setSigningCredentials, AgentInfoResponse, SigningCredentials, generateSigningKeyPair, GrantedFunctionsType, signZomeCall, getSigningCredentials } from '@holochain/client' -import low from 'lowdb' -import FileSync from 'lowdb/adapters/FileSync' +import { AppSignalCb, AppSignal, CellId, CellType, AgentInfoResponse, InstallAppRequest, EncodedAppSignal } from '@holochain/client' import path from 'path' import fs from 'fs' import HolochainLanguageDelegate from "./HolochainLanguageDelegate" -import {stopProcesses, unpackDna, packDna, writeDefaultConductor, runHolochain, ConductorConfiguration} from "./HcExecution" import type { Dna } from '@perspect3vism/ad4m' -import type { ChildProcess } from 'child_process' -import yaml from 'js-yaml'; import { AsyncQueue } from './Queue' -import { HolochainUnlockConfiguration } from '../../PerspectivismCore' +import { decode, encode } from "@msgpack/msgpack" -export const bootstrapUrl = "https://bootstrap.holo.host" -export const kitsuneProxy = "kitsune-proxy://f3gH2VMkJ4qvZJOXx0ccL_Zo5n-s_CnBjSzAsEHHDCA/kitsune-quic/h/137.184.142.208/p/5788/--" +import { HolochainUnlockConfiguration } from '../../Ad4mCore' +import EntanglementProofController from '../../EntanglementProof' +import AgentService from '../../agent/AgentService' export interface HolochainConfiguration { conductorPath?: string, dataPath: string, resourcePath: string + hcProxyUrl: string, + hcBootstrapUrl: string, adminPort?: number; appPort?: number; useBootstrap?: boolean, @@ -27,109 +25,68 @@ export interface HolochainConfiguration { } export default class HolochainService { - #db: any - #adminPort: number - #appPort: number - #adminWebsocket?: AdminWebsocket - #appWebsocket?: AppWebsocket - #dataPath: string #ready?: Promise - #hcProcess?: ChildProcess #resourcePath: string - #conductorPath?: string - #didResolveError: boolean - #conductorConfigPath?: string #signalCallbacks: [CellId, AppSignalCb, string][]; #queue: Map #languageDnaHashes: Map + #agentService: AgentService + #entanglementProofController?: EntanglementProofController + #dataPath: string - constructor(config: HolochainConfiguration) { + constructor(config: HolochainConfiguration, agentService: AgentService, entanglementProofController?: EntanglementProofController) { let { - conductorPath, - dataPath, resourcePath, - adminPort, - appPort, useBootstrap, useProxy, useLocalProxy, useMdns, + dataPath } = config; - this.#didResolveError = false; - - console.log("HolochainService: Creating low-db instance for holochain-serivce"); this.#dataPath = dataPath - this.#db = low(new FileSync(path.join(dataPath, 'holochain-service.json'))) - this.#db.defaults({pubKeys: [], signingCredentials: []}).write() + this.#agentService = agentService; + this.#entanglementProofController = entanglementProofController; + this.#signalCallbacks = []; - const holochainAppPort = appPort ? appPort : 1337; - const holochainAdminPort = adminPort ? adminPort : 2000; if(useMdns === undefined) useMdns = false if(useBootstrap === undefined) useBootstrap = true if(useProxy === undefined) useProxy = true if(useLocalProxy === undefined) useLocalProxy = false - this.#adminPort = holochainAdminPort; - this.#appPort = holochainAppPort; this.#resourcePath = resourcePath; this.#queue = new Map(); this.#languageDnaHashes = new Map(); - if (conductorPath) { - this.#conductorPath = conductorPath; - let conductorConfigPath = path.join(conductorPath, "conductor-config.yaml"); - this.#conductorConfigPath = conductorConfigPath; - if (!fs.existsSync(conductorConfigPath)) { - writeDefaultConductor({ - proxyUrl: kitsuneProxy, - environmentPath: conductorPath, - adminPort: holochainAdminPort, - appPort: holochainAppPort, - useBootstrap, - bootstrapService: bootstrapUrl, - conductorConfigPath: conductorConfigPath, - useProxy, - useLocalProxy, - useMdns, - lairConnectionUrl: '' - } as ConductorConfiguration); - } else { - const config = yaml.load(fs.readFileSync(conductorConfigPath, 'utf-8')) as any; - const adminPort = config.admin_interfaces[0].driver.port as number; - - if (adminPort !== this.#adminPort) { - console.debug(`HC PORT: ${this.#adminPort} supplied is different than the PORT: ${adminPort} set in config, updating conductor config`); - config.admin_interfaces[0].driver.port = this.#adminPort; - fs.writeFileSync(conductorConfigPath, yaml.dump(config, { - 'styles': { - '!!null': 'canonical' // dump null as ~ - } - })); - } - } - } - this.logDhtStatus(); } async logDhtStatus() { setInterval(async () => { if (this.#ready) { - for (const [language, hashes] of this.#languageDnaHashes) { - let dhtInfo = (await this.#appWebsocket!.networkInfo({dnas: hashes})); - console.log("HolochainStatus.logDhtStatus: ", language, " has gossip status: ", dhtInfo, "\n"); - } + await HOLOCHAIN_SERVICE.logDhtStatus(); } }, 60000); } - handleCallback(signal: AppSignal) { - // console.debug(new Date().toISOString(), "GOT CALLBACK FROM HC, checking against language callbacks", signal); - //console.debug("registered callbacks:", this.#signalCallbacks) + async handleCallback(signal: EncodedAppSignal) { + //console.log(new Date().toISOString(), "GOT CALLBACK FROM HC, checking against language callbacks"); + //console.dir(signal); + //@ts-ignore + let payload = decode(signal.signal); + var TypedArray = Object.getPrototypeOf(Uint8Array); + if (payload instanceof TypedArray) { + //@ts-ignore + payload = Buffer.from(payload); + }; + let appSignalDecoded = { + cell_id: signal.cell_id, + zome_name: signal.zome_name, + payload: payload + } as AppSignal; if (this.#signalCallbacks.length != 0) { - const signalDna = Buffer.from(signal.cell_id[0]).toString('hex') - const signalPubkey = Buffer.from(signal.cell_id[1]).toString('hex') + const signalDna = Buffer.from(appSignalDecoded.cell_id[0]).toString('hex') + const signalPubkey = Buffer.from(appSignalDecoded.cell_id[1]).toString('hex') //console.debug("Looking for:", signalDna, signalPubkey) let callbacks = this.#signalCallbacks.filter(e => { const dna = Buffer.from(e[0][0]).toString('hex') @@ -137,76 +94,45 @@ export default class HolochainService { //console.debug("Checking:", dna, pubkey) return ( dna === signalDna ) && (pubkey === signalPubkey) }) - callbacks.forEach(cb => { + for (const cb of callbacks) { if (cb && cb![1] != undefined) { - cb![1](signal); + await cb![1](appSignalDecoded); }; - }) + } }; - } - - async connect() { - let resolveReady: ((value: void | PromiseLike) => void) | undefined; - this.#ready = new Promise(resolve => resolveReady = resolve) - - console.log("Connecting to holochain process."); - - try { - if (this.#adminWebsocket == undefined) { - this.#adminWebsocket = await AdminWebsocket.connect(`ws://127.0.0.1:${this.#adminPort}`) - console.debug("HolochainService: Holochain admin interface connected on port", this.#adminPort); - try { - await this.#adminWebsocket!.attachAppInterface({ port: this.#appPort }); - } catch (e) { - console.warn("HolochainService: Could not attach app interface on port", this.#appPort, ", assuming already attached...", e); - } - }; - if (this.#appWebsocket == undefined) { - this.#appWebsocket = await AppWebsocket.connect(`ws://127.0.0.1:${this.#appPort}`, 15000); - this.#appWebsocket.on('signal', this.handleCallback.bind(this)) - console.debug("HolochainService: Holochain app interface connected on port", this.#appPort) - }; - resolveReady!() - this.#didResolveError = false; - } catch(e) { - console.error("HolochainService: connect Holochain process with error:", e) - this.#didResolveError = true; - resolveReady!() - } + return appSignalDecoded; } async run(config: HolochainUnlockConfiguration) { let resolveReady: ((value: void | PromiseLike) => void) | undefined; this.#ready = new Promise(resolve => resolveReady = resolve) - if (this.#conductorPath == undefined || this.#conductorConfigPath == undefined) { - console.error("HolochainService: Error intializing Holochain conductor, conductor path is invalid") - this.#didResolveError = true; - resolveReady!() - return - } - let hcProcesses = await runHolochain(this.#resourcePath, this.#conductorConfigPath, this.#conductorPath, config); - this.#hcProcess = hcProcesses; - console.log("HolochainService: Holochain running... Attempting connection\n\n\n"); - await this.connect(); + await HOLOCHAIN_SERVICE.startHolochainConductor({ + passphrase: config.passphrase, + conductorPath: config.conductorPath!, + dataPath: config.dataPath, + useBootstrap: config.useBootstrap!, + useProxy: config.useProxy!, + useLocalProxy: config.useLocalProxy!, + useMdns: config.useMdns!, + proxyUrl: config.hcProxyUrl, + bootstrapUrl: config.hcBootstrapUrl, + appPort: config.appPort! + } as ConductorConfig); + + console.log("Holochain run complete"); resolveReady!() - this.#didResolveError = false; } async stop() { await this.#ready console.log("HolochainService.stop(): Stopping holochain process"); - if (this.#didResolveError) { - console.error("HolochainService.stop: Warning attempting to close holochain processes when they did not start error free...") - } - if (this.#hcProcess) { - stopProcesses(this.#hcProcess) - } + await HOLOCHAIN_SERVICE.shutdown(); } - unpackDna(dnaPath: string): string { - let result = unpackDna(`${this.#resourcePath}/hc`, dnaPath); + async unpackDna(dnaPath: string): Promise { + let result = await HOLOCHAIN_SERVICE.unPackDna(dnaPath); let splitResult = result.split("Unpacked to directory "); if (splitResult.length == 2) { return splitResult[1] @@ -215,8 +141,8 @@ export default class HolochainService { } } - packDna(workdirPath: string): string { - let result = packDna(`${this.#resourcePath}/hc`, workdirPath); + async packDna(workdirPath: string): Promise { + let result = await HOLOCHAIN_SERVICE.packDna(workdirPath); let splitResult = result.split("Wrote bundle "); if (splitResult.length == 2) { return splitResult[1] @@ -225,67 +151,13 @@ export default class HolochainService { } } - async pubKeyForAllLanguages(): Promise { - const alreadyExisting = this.#db.get('pubKeys').find({lang: "global"}).value() - if(alreadyExisting) { - const pubKey = Buffer.from(alreadyExisting.pubKey) - console.debug("Found existing pubKey", pubKey.toString("base64"), "for all languages") - return pubKey - } else { - const pubKey = await this.#adminWebsocket!.generateAgentPubKey() - this.#db.get('pubKeys').push({lang: "global", pubKey}).write() - console.debug("Created new pubKey", Buffer.from(pubKey).toString("base64"), "for all languages") - return pubKey - } - } - - async pubKeyForLanguage(lang: string): Promise { - return this.pubKeyForAllLanguages() - - // TODO using the same key for all DNAs should only be a temporary thing. - const alreadyExisting = this.#db.get('pubKeys').find({lang}).value() - if(alreadyExisting) { - const pubKey = Buffer.from(alreadyExisting.pubKey) - console.debug("Found existing pubKey", pubKey.toString("base64"), "for language:", lang) - return pubKey - } else { - const pubKey = await this.#adminWebsocket!.generateAgentPubKey() - this.#db.get('pubKeys').push({lang, pubKey}).write() - console.debug("Created new pubKey", Buffer.from(pubKey).toString("base64"), "for language", lang) - return pubKey - } - } - - private cellIdToB64(cell: CellId): string { - return encodeHashToBase64(cell[0]).concat(encodeHashToBase64(cell[1])); - } - - private async generateSigningKeys(cell: CellId): Promise { - const cellIdB64 = this.cellIdToB64(cell); - - const [keyPair, signingKey] = generateSigningKeyPair(); - const capSecret = await this.#adminWebsocket!.grantSigningKey(cell, {[GrantedFunctionsType.All]: null}, signingKey); - const signingCredentials = { capSecret, keyPair, signingKey } as SigningCredentials; - //Set the signing credentials in holochain client map - setSigningCredentials(cell, signingCredentials); + async ensureInstallDNAforLanguage(lang: string, dnas: Dna[], callback: AppSignalCb | undefined): Promise { + await this.#ready + let cellIds = [] as CellId[]; - //Set the signing credentials in the database - this.#db.get("signingCredentials").push({cellId: cellIdB64, signingCredentials: signingCredentials}).write(); - return signingCredentials; - } + let appInfo = await HOLOCHAIN_SERVICE.getAppInfo(lang); - async ensureInstallDNAforLanguage(lang: string, dnas: Dna[], callback: AppSignalCb | undefined): Promise { - await this.#ready - if (this.#didResolveError) { - console.error("HolochainService.ensureInstallDNAForLanguage: Warning attempting to install holochain DNA when conductor did not start error free...") - } - const pubKey = await this.pubKeyForLanguage(lang); - - const activeApps = await this.#adminWebsocket!.listApps({}); - let languageApp = activeApps.find(app => app.installed_app_id === lang); - //console.warn("HolochainService: Found running apps:", activeApps); - - if(!languageApp) { + if (!appInfo) { // 1. install app try { console.debug("HolochainService: Installing DNAs for language", lang); @@ -302,10 +174,22 @@ export default class HolochainService { } } }); - //console.log("HolochainService: Installing DNA:", dna, "at data path:", this.#dataPath, "\n"); - //Install the app; with on the fly generated app bundle - const installAppResult = await this.#adminWebsocket!.installApp({ - installed_app_id: lang, agent_key: pubKey, membrane_proofs: {}, bundle: { + + const did = this.#agentService.did; + //Did should only ever be undefined when the system DNA's get init'd before agent create occurs + //These system DNA's do not currently need EP proof's + let membraneProof = {}; + const agentKey = await HOLOCHAIN_SERVICE.getAgentKey(); + if(did) { + const signedDid = await HOLOCHAIN_SERVICE.signString(did).toString(); + const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(agentKey.toString(), signedDid); + membraneProof = {"ad4mDidEntanglement": Buffer.from(JSON.stringify(didHolochainEntanglement))}; + } else { + membraneProof = {}; + } + + const installAppResult = await HOLOCHAIN_SERVICE.installApp({ + installed_app_id: lang, agent_key: agentKey, membrane_proofs: membraneProof, bundle: { manifest: { manifest_version: "1", name: lang, @@ -314,72 +198,50 @@ export default class HolochainService { }, resources: {} } - }) + } as InstallAppRequest) + + appInfo = installAppResult - //console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); + console.log("HolochainService: Installed DNA's:", roles) + console.log(" with result:"); + console.dir(installAppResult); } catch(e) { console.error("HolochainService: InstallApp, got error: ", e); - return; - } - - // 2. activate app - try { - const activateResult = await this.#adminWebsocket!.enableApp({installed_app_id: lang}) - languageApp = await this.#appWebsocket!.appInfo({installed_app_id: lang}); - //console.warn("HolochainService: Activated app:", lang, "with result:", activateResult); - } catch(e) { - console.error("HolochainService: ERROR activating app", lang, " - ", e) - } - } - - if (languageApp) { - if ("running" in languageApp.status) { - const activateResult = await this.#adminWebsocket!.enableApp({installed_app_id: lang}); - //console.warn("HolochainService: Activated app:", lang, "with result:", activateResult); + return []; } + } - const hashes: Uint8Array[] = []; - Object.keys(languageApp.cell_info).forEach(async roleName => { - const cellData = languageApp!.cell_info[roleName]; - - for (const cellInfo of cellData) { - const cellId = (CellType.Provisioned in cellInfo) ? cellInfo[CellType.Provisioned].cell_id : null - if (!cellId) { - throw new Error(`HolochainService: ERROR: Could not get cellId from cell_info: ${cellInfo}`); - } - - let hash = cellId[0]; - if (hash) hashes.push(hash); + const hashes: Uint8Array[] = []; + Object.keys(appInfo.cell_info).forEach(async roleName => { + const cellData = appInfo!.cell_info[roleName]; - const cellIdB64 = this.cellIdToB64(cellId); - const signingCredentials = await this.#db.get("signingKeys").find({cellId: cellIdB64}).value() as SigningCredentials | undefined; + for (const cellInfo of cellData) { + const cellId = (CellType.Provisioned in cellInfo) ? cellInfo[CellType.Provisioned].cell_id : null + if (!cellId) { + throw new Error(`HolochainService: ERROR: Could not get cellId from cell_info: ${cellInfo}`); + } + cellIds.push(cellId); - if (!signingCredentials) { - console.log("HolochainService: Did not find saved signingCredentials, generating new one..."); - await this.generateSigningKeys(cellId); - } + let hash = cellId[0]; + if (hash) hashes.push(hash); - //Register the callback to the cell internally - if (callback != undefined) { - //Check for apps matching this language address and register the signal callbacks - console.log("HolochainService: setting holochains signal callback for language", lang); - this.#signalCallbacks.push([cellId, callback, lang]); - } + //Register the callback to the cell internally + if (callback != undefined) { + //Check for apps matching this language address and register the signal callbacks + console.log("HolochainService: setting holochains signal callback for language", lang); + this.#signalCallbacks.push([cellId, callback, lang]); } - }) - - if (!this.#languageDnaHashes.has(lang)) { - this.#languageDnaHashes.set(lang, hashes); } + }); + + if (!this.#languageDnaHashes.has(lang)) { + this.#languageDnaHashes.set(lang, hashes); } + return cellIds; } async removeDnaForLang(lang: string) { - const activeApps = await (await this.#adminWebsocket!.listApps({})).map((app) => app.installed_app_id); - const apps = activeApps.filter(app => app === lang); - for (const app of apps) { - await this.#adminWebsocket!.uninstallApp({installed_app_id: app}); - } + await HOLOCHAIN_SERVICE.removeApp(lang); } getDelegateForLanguage(languageHash: string) { @@ -394,83 +256,22 @@ export default class HolochainService { return `${languageHash}-${dnaNick}` } - async callZomeFunction(lang: string, dnaNick: string, zomeName: string, fnName: string, payload: object|string): Promise { + async callZomeFunction(lang: string, dnaNick: string, zomeName: string, fnName: string, payload: any): Promise { await this.#ready - if (this.#didResolveError) { - console.error("HolochainService.callZomeFunction: Warning attempting to call zome function when conductor did not start error free...") - } const installed_app_id = lang - //1. Check for apps with installed_app_id matching this language address - let infoResult = await this.#appWebsocket!.appInfo({installed_app_id}) - - let tries = 1 - while(!infoResult && tries < 10) { - await sleep(500) - infoResult = await this.#appWebsocket!.appInfo({installed_app_id}) - tries++ - } - - if(!infoResult) { - console.error("HolochainService: no installed hApp found duringf callZomeFunction() for Language:", lang) - console.error("Did the Language forget to register a DNA?") - throw new Error("No DNA installed") - } - - //2. Check that this app has valid cells that we can call - // console.debug("HolochainService.callZomefunction: get info result:", infoResult) - if(Object.keys(infoResult.cell_info).length === 0) { - console.error("HolochainService: tried to call zome function without any installed cell for given app!") - return null - } - - //3. Get the cellId of the cells with matching lang and dna nick - let cellInfos = infoResult.cell_info[`${lang}-${dnaNick}`]; - if(!cellInfos) { - const e = new Error(`No cell role main found for installed app: ${installed_app_id}`) - console.error(e) - return e - } - const cellInfo = cellInfos[0]; - const cellId = (CellType.Provisioned in cellInfo) ? cellInfo[CellType.Provisioned].cell_id : null - - if (!cellId) { - throw new Error(`HolochainService: ERROR: Could not get cellId from cell_info: ${cellInfo}`); - }; - - const [_dnaHash, provenance] = cellId - //4. Call the zome function try { if (fnName != "sync" && fnName != "current_revision") { console.debug("\x1b[34m", new Date().toISOString(), "HolochainService calling zome function:", dnaNick, zomeName, fnName, payload, "\nFor language with address", lang, "\x1b[0m"); } - //Check that signZomeCall will be able to find the signing credentials - const signingKeyExists = getSigningCredentials(cellId); - - if (!signingKeyExists) { - const cellIdB64 = this.cellIdToB64(cellId); - //Check if we already have some in the database - let signingCredentials = await this.#db.get("signingKeys").find({cellId: cellIdB64}).value() as SigningCredentials | undefined; - if (!signingCredentials) { - console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "generating new ones..."); - await this.generateSigningKeys(cellId); - } else { - console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "but found them in the database, setting them...", signingCredentials); - //We have some but they are not present in the holochain client... set them - setSigningCredentials(cellId, signingCredentials); - } - } - - const signedZomeCall = await signZomeCall({ - cell_id: cellId, - zome_name: zomeName, - fn_name: fnName, - provenance, - payload - }); - const result = await this.#appWebsocket!.callZome(signedZomeCall); + let result = await HOLOCHAIN_SERVICE.callZomeFunction(installed_app_id, dnaNick, zomeName, fnName, encode(payload)); + if (result["Ok"]) { + result = decode(result["Ok"]) + } else { + result = decode(result["Err"]) + } if (fnName != "sync" && fnName != "current_revision") { if (typeof result === "string") { @@ -491,13 +292,10 @@ export default class HolochainService { } async requestAgentInfos(): Promise { - return await this.#adminWebsocket!.agentInfo({cell_id: null}) + return await HOLOCHAIN_SERVICE.agentInfos() } async addAgentInfos(agent_infos: AgentInfoResponse) { - await this.#adminWebsocket!.addAgentInfo({ agent_infos }) + await HOLOCHAIN_SERVICE.addAgentInfos(agent_infos) } } - -const sleep = (ms: number) => - new Promise((resolve) => setTimeout(() => resolve(), ms)); diff --git a/executor/src/core/storage-services/IPFS.ts b/executor/src/core/storage-services/IPFS.ts index 13a7357d0..3a8086d5b 100644 --- a/executor/src/core/storage-services/IPFS.ts +++ b/executor/src/core/storage-services/IPFS.ts @@ -1,3 +1,4 @@ +/* import * as IPFS from 'ipfs-core' const _appendBuffer = (buffer1: Uint8Array, buffer2: Uint8Array) => { @@ -43,4 +44,5 @@ export async function init (swarmPort?: number, repo?: string) { console.log('IPFS Version:', version.version) return node -} \ No newline at end of file +} +*/ \ No newline at end of file diff --git a/executor/src/core/utils.ts b/executor/src/core/utils.ts index fd43e5fab..73fcfa122 100644 --- a/executor/src/core/utils.ts +++ b/executor/src/core/utils.ts @@ -1,3 +1,16 @@ export function sleep(ms: number) { return new Promise(resolve => setTimeout(resolve, ms)); +} + +export function getPubSub(): PubSub { + //console.log("Getting pubsub"); + if (typeof PUBSUB !== 'undefined') { + return PUBSUB + } else { + return { + publish: (topic: String, data: any) => { + console.warn("Skipping pubsub since not defined... this should only show in unit tests"); + } + } + } } \ No newline at end of file diff --git a/executor/src/deno.ts b/executor/src/deno.ts new file mode 100644 index 000000000..f4c4dc20b --- /dev/null +++ b/executor/src/deno.ts @@ -0,0 +1,42 @@ +import "https://deno.land/std@0.177.0/node/util.ts"; +import "https://deno.land/std@0.177.0/node/global.ts"; + +const process = globalThis.process; +const Buffer = globalThis.Buffer; +const setImmediate = globalThis.setImmediate; +const clearImmediate = globalThis.clearImmediate; +const __dirname = new URL('.', import.meta.url).pathname; +const __filename = new URL('', import.meta.url).pathname; +globalThis.__dirname = __dirname; +globalThis.__filename = __filename; + +import { init as internalInit } from "./main.ts" +import * as internalPath from "https://deno.land/std@0.177.0/node/path.ts"; +import * as internalOs from "https://deno.land/std@0.177.0/node/os.ts" + +export const init = internalInit +export const path = internalPath +export const os = internalOs + +console.log = (...args) => { + UTILS.consoleLog(`${args.reduce((acc, cur) => acc += `${cur} `, "")}`) +}; + +console.debug = (...args) => { + UTILS.consoleDebug(`${args.reduce((acc, cur) => acc += `${cur} `, "")}`) +}; + +console.error = (...args) => { + UTILS.consoleError(`${args.reduce((acc, cur) => acc += `${cur} `, "")}`) +}; + +console.warn = (...args) => { + UTILS.consoleWarn(`${args.reduce((acc, cur) => acc += `${cur} `, "")}`) +}; + +import "https://deno.land/x/xhr@0.3.0/mod.ts"; + +import { HTMLElement } from "linkedom" + +// @ts-ignore +globalThis.HTMLElement = HTMLElement; \ No newline at end of file diff --git a/executor/src/holochain_service_extension.d.ts b/executor/src/holochain_service_extension.d.ts new file mode 100644 index 000000000..68cd429f4 --- /dev/null +++ b/executor/src/holochain_service_extension.d.ts @@ -0,0 +1,36 @@ +import { AgentInfoSigned, AgentPubKey, AppInfo, CallZomeResponse, InstallAppRequest, Signature } from "@holochain/client"; + +declare global { + interface ConductorConfig { + passphrase: String, + conductorPath: String, + dataPath: String, + useBootstrap: bool, + useProxy: bool, + useLocalProxy: bool, + useMdns: bool, + proxyUrl: String, + bootstrapUrl: String, + appPort: Number + } + + interface HolochainService { + async startHolochainConductor: (config: ConductorConfig) => void; + async logDhtStatus: () => void; + async installApp: (install_app_payload: InstallAppRequest) => AppInfo; + async getAppInfo: (app_id: String) => AppInfo | null; + async callZomeFunction: (app_id: String, cell_name: String, zome_name: String, fn_name: String, payload: any) => CallZomeResponse; + async agentInfos: () => AgentInfoSigned[]; + async addAgentInfos: (agent_infos: AgentInfoSigned[]) => void; + async removeApp: (app_id: String) => void; + async signString: (string: String) => Signature; + async shutdown: () => void; + async getAgentKey: () => AgentPubKey; + async packDna: (path: String) => String; + async unPackDna: (path: String) => String; + } + + const HOLOCHAIN_SERVICE: HolochainService; +} + +export {}; \ No newline at end of file diff --git a/executor/src/jwt_extension.d.ts b/executor/src/jwt_extension.d.ts new file mode 100644 index 000000000..3ff7b83e1 --- /dev/null +++ b/executor/src/jwt_extension.d.ts @@ -0,0 +1,11 @@ +declare global { + interface Jwt { + async publish: (topic: String, data: any) => void; + async generateJwt: (issuer, audience, expiration_time, capabililities) => string; + async verifyJwt: (token: String) => {iss: String, aud: String, exp: number, iat: number, capabilities: any} + } + + const JWT: Jwt; +} + +export {}; \ No newline at end of file diff --git a/executor/src/main.ts b/executor/src/main.ts index 67a7b15f1..0470bea96 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -1,5 +1,5 @@ -import PerspectivismCore from "./core/PerspectivismCore"; -import create from "./core/PerspectivismCore"; +import Ad4mCore from "./core/Ad4mCore"; +import create from "./core/Ad4mCore"; import { LanguageAlias, CoreConfig, BootstrapFixtures, languageLanguageAlias, agentLanguageAlias, neighbourhoodLanguageAlias, perspectiveLanguageAlias, ad4mExecutorVersion } from "./core/Config" // Patch Reflect to have missing getOwnPropertyDescriptor() // which should be there in any ES6 runtime but for some reason @@ -7,12 +7,11 @@ import { LanguageAlias, CoreConfig, BootstrapFixtures, languageLanguageAlias, ag import getOwnPropertyDescriptor from './shims/getOwnPropertyDescriptor' import getPort from 'get-port'; import fs from "fs"; +import { createResolvers } from "./core/graphQL-interface/GraphQL"; Reflect.getOwnPropertyDescriptor = getOwnPropertyDescriptor export interface OuterConfig { - //Path to resources used by ad4m-executor such as; hc, holochain, prolog - resourcePath: string //Path to be used for storing ad4m data appDataPath: string //Seed file used to load initial languages & agent configuration @@ -25,16 +24,16 @@ export interface OuterConfig { appLangAliases?: object, //Should the graphql server be started as mocking service mocks: boolean, + //Should we start a dApp UI server to allow connecting of crypto wallets + runDappServer: boolean, + //Optional port for the dApp UI server + dAppPort?: number, //Port for graphql server gqlPort?: number, //Port for holochain admin port hcPortAdmin?: number, //Port for holochain application port hcPortApp?: number, - //Port for IPFS swarm - ipfsSwarmPort?: number, - //Port for IPFS repo - ipfsRepoPath?: string //Should holochain use a local proxy hcUseLocalProxy?: boolean, //Should holochain use Mdns @@ -43,14 +42,12 @@ export interface OuterConfig { hcUseProxy?: boolean, //Should holochain use a bootstrap server hcUseBootstrap?: boolean, + hcProxyUrl: string, + hcBootstrapUrl: string, //Should ad4m-executor connect to an existing holochain instance, or spawn its own connectHolochain?: boolean, //The credential used by admin client to make request - reqCredential?: string, - //Path to swipl executable - swiplPath?: string, - //Path to swipl home directory - swiplHomePath?: string, + adminCredential?: string } export interface SeedFileSchema { @@ -81,15 +78,17 @@ export interface SeedFileSchema { } /// Main function which starts ad4m-executor -export async function init(config: OuterConfig): Promise { +export async function init(config: OuterConfig): Promise { let { - resourcePath, appDataPath, networkBootstrapSeed, appLangAliases, bootstrapFixtures, languageLanguageOnly, - mocks, gqlPort, ipfsSwarmPort, ipfsRepoPath, reqCredential, swiplPath, swiplHomePath + appDataPath, networkBootstrapSeed, appLangAliases, bootstrapFixtures, languageLanguageOnly, + mocks, gqlPort, adminCredential, runDappServer, + dAppPort } = config if(!gqlPort) gqlPort = 4000 // Check to see if PORT 2000 & 1337 are available if not returns a random PORT if(!config.hcPortAdmin) config.hcPortAdmin = await getPort({ port: 2000 }); if(!config.hcPortApp) config.hcPortApp = await getPort({ port: 1337 }); + if(!dAppPort) dAppPort = await getPort({port: 4200}) if(config.hcUseMdns === undefined) config.hcUseMdns = false if(config.hcUseProxy === undefined) config.hcUseProxy = true if(config.hcUseBootstrap === undefined) config.hcUseBootstrap = true @@ -151,22 +150,12 @@ export async function init(config: OuterConfig): Promise { preloadLanguages.push(address); }) } - - - console.log("\x1b[2m", - "AD4M executor starting with version: ", ad4mExecutorVersion, "\n", - "Starting ad4m core with path:", appDataPath, "\n", - "=> AD4M core language addresses: languageLanguage bundle (hidden) + ", systemLanguages.slice(1, systemLanguages.length), "\n", - "Languages to be preloaded, as supplied by appLangAliases", preloadLanguages, "\n", - "Language aliases:", languageAliases, "\n", - "Bootstrap fixtures:", bootstrapFixtures, "\n", - "Resource path:", resourcePath, "\n", - "\x1b[0m" - ); + + console.log("AD4M executor starting with config:"); + console.dir(config); const core = new create({ appDataPath, - appResourcePath: resourcePath, systemLanguages, preloadLanguages, languageLanguageBundle: networkBootstrapSeedData.languageLanguageBundle, @@ -181,24 +170,15 @@ export async function init(config: OuterConfig): Promise { languageAliases, bootstrapFixtures, languageLanguageOnly, - reqCredential, - swiplPath, - swiplHomePath + adminCredential } as CoreConfig); - console.log("\x1b[34m", "Init services...", "\x1b[0m"); - await core.initIPFS({ ipfsSwarmPort, ipfsRepoPath }); - - console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); - - await core.startGraphQLServer(gqlPort, mocks, config); - - console.log("\x1b[31m", "GraphQL server started, Unlock the agent to start holohchain", "\x1b[0m"); + core.resolvers = createResolvers(core, config) return core } export default { init, - PerspectivismCore + Ad4mCore } \ No newline at end of file diff --git a/executor/src/prolog_service_extension.d.ts b/executor/src/prolog_service_extension.d.ts new file mode 100644 index 000000000..bd45bcdce --- /dev/null +++ b/executor/src/prolog_service_extension.d.ts @@ -0,0 +1,11 @@ +declare global { + interface PrologService { + async spawnEngine: (name: String) => void; + async runQuery: (name: Strin, query: String) => String; + async loadModuleString: (name: String, module_name: String, program: String) => void; + } + + const PROLOG: PrologService; +} + +export {}; \ No newline at end of file diff --git a/executor/src/pubsub_extension.d.ts b/executor/src/pubsub_extension.d.ts new file mode 100644 index 000000000..4e85db799 --- /dev/null +++ b/executor/src/pubsub_extension.d.ts @@ -0,0 +1,9 @@ +declare global { + interface PubSub { + async publish: (topic: String, data: any) => void; + } + + const PUBSUB: PubSub; +} + +export {}; \ No newline at end of file diff --git a/executor/src/tests/bootstrapSeed.json b/executor/src/tests/bootstrapSeed.json deleted file mode 100644 index 019b2a207..000000000 --- a/executor/src/tests/bootstrapSeed.json +++ /dev/null @@ -1 +0,0 @@ -{"trustedAgents":["did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n"],"knownLinkLanguages":["QmSqbdE8jTubbGeZRR7U4vZjMmHuFWV4Aoh563cRAaP1di"],"directMessageLanguage":"QmeHE28cVfSBkSrgwauTpmrb3jhchammCv658oQrP41FT9","agentLanguage":"QmZ16K5HG2RgE6Q8xCC5784HG2KGyKPKtkNmGiDb9YQKZg","perspectiveLanguage":"QmUTkvPcyaUGntqfzi3iR1xomADm5yYC2j8hcPdhMHpTem","neighbourhoodLanguage":"QmT4rtTuguhfiz88Ljxt6MDuKcn1TZBpfeWb5fXGqBwMdK","languageLanguageBundle":""} \ No newline at end of file diff --git a/executor/src/tests/integration.test.ts b/executor/src/tests/integration.test.ts deleted file mode 100644 index bcde8f4d8..000000000 --- a/executor/src/tests/integration.test.ts +++ /dev/null @@ -1,215 +0,0 @@ -import { ApolloClient, InMemoryCache } from "@apollo/client/core"; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; -import Websocket from "ws"; -import PerspectivismCore from '../core/PerspectivismCore' -import main from "../main"; -import fs from 'fs-extra' -import path from 'path' -import { isProcessRunning } from "./utils"; -import { Ad4mClient } from "@perspect3vism/ad4m"; -import { fileURLToPath } from 'url'; -import { expect } from "chai"; - -// Patch Reflect to have missing getOwnPropertyDescriptor() -// which should be there in any ES6 runtime but for some reason -// is missing on some machines... -import getOwnPropertyDescriptor from '../shims/getOwnPropertyDescriptor' -import perspectiveTests from "./perspective"; -import agentTests from "./agent"; -import languageTests from "./language"; -import expressionTests from "./expression"; -import neighbourhoodTests from "./neighbourhood"; -import runtimeTests from "./runtime"; -import { Crypto } from "@peculiar/webcrypto" -import directMessageTests from "./direct-messages"; -import agentLanguageTests from "./agent-language"; -import socialDNATests from "./social-dna-flow"; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -//@ts-ignore -global.crypto = new Crypto(); -Reflect.getOwnPropertyDescriptor = getOwnPropertyDescriptor - -const TEST_DIR = `${__dirname}/../tst-tmp` - -let core: PerspectivismCore | null = null - -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: token - } - } - }, - })); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); -} - - -export class TestContext { - //#ad4mClient: Ad4mClient | undefined - #alice: Ad4mClient | undefined - #bob: Ad4mClient | undefined - - #aliceCore: PerspectivismCore | undefined - #bobCore: PerspectivismCore | undefined - - get ad4mClient(): Ad4mClient { - return this.#alice! - } - - get alice(): Ad4mClient { - return this.#alice! - } - - get bob(): Ad4mClient { - return this.#bob! - } - - set alice(client: Ad4mClient) { - this.#alice = client - } - - set bob(client: Ad4mClient) { - this.#bob = client - } - - set aliceCore(aliceCore: PerspectivismCore) { - this.#aliceCore = aliceCore - } - - set bobCore(bobCore: PerspectivismCore) { - this.#bobCore = bobCore - } - - async makeAllNodesKnown() { - const aliceAgentInfo = await this.#aliceCore!.holochainRequestAgentInfos() - const bobAgentInfo = await this.#bobCore!.holochainRequestAgentInfos() - await this.#aliceCore!.holochainAddAgentInfos(bobAgentInfo) - await this.#bobCore!.holochainAddAgentInfos(aliceAgentInfo) - } -} -let testContext: TestContext = new TestContext() - -describe("Integration tests", function () { - //@ts-ignore - this.timeout(200000) - const appDataPath = path.join(TEST_DIR, 'agents', 'alice') - const ipfsRepoPath = path.join(appDataPath) - - before(async () => { - if(!fs.existsSync(TEST_DIR)) { - throw Error("Please ensure that prepare-test is run before running tests!"); - } - if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - fs.mkdirSync(path.join(TEST_DIR, 'agents')) - if(!fs.existsSync(appDataPath)) - fs.mkdirSync(appDataPath) - core = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: "./src/tests/bootstrapSeed.json", - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true - }) - - testContext.alice = new Ad4mClient(apolloClient(4000)) - testContext.aliceCore = core - }) - - after(async () => { - expect(await isProcessRunning("holochain")).to.be.true; - expect(fs.existsSync(path.join(ipfsRepoPath, "repo.lock"))).to.be.true; - - await core!.exit(); - await new Promise((resolve)=>setTimeout(resolve, 500)) - - expect(await isProcessRunning("holochain")).to.be.false; - expect(fs.existsSync(path.join(ipfsRepoPath, "repo.lock"))).to.be.false; - }) - - describe('Agent / Agent-Setup', agentTests(testContext)) - describe('Runtime', runtimeTests(testContext)) - describe('Expression', expressionTests(testContext)) - describe('Perspective', perspectiveTests(testContext)) - describe('Social DNA', socialDNATests(testContext)) - - describe('with Alice and Bob', () => { - let bob: PerspectivismCore | null = null - before(async () => { - const appDataPath = path.join(TEST_DIR, 'agents', 'bob') - const ipfsRepoPath = path.join(appDataPath) - if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - fs.mkdirSync(path.join(TEST_DIR, 'agents')) - if(!fs.existsSync(appDataPath)) - fs.mkdirSync(appDataPath) - - bob = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: "./src/tests/bootstrapSeed.json", - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - gqlPort: 14000, - hcPortAdmin: 12000, - hcPortApp: 11337, - ipfsSwarmPort: 14002, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true - }) - - testContext.bob = new Ad4mClient(apolloClient(14000)) - testContext.bobCore = bob - await testContext.bob.agent.generate("passphrase") - - const status = await testContext.bob.agent.status() - - expect(status.isInitialized).to.be.true; - expect(status.isUnlocked).to.be.true; - await testContext.makeAllNodesKnown() - }) - - after(async () => { - await bob!.exit(); - await new Promise((resolve)=>setTimeout(resolve, 500)) - }) - - describe('Agent Language', agentLanguageTests(testContext)) - describe('Direct Messages', directMessageTests(testContext)) - describe('Language', languageTests(testContext)) - describe('Neighbourhood', neighbourhoodTests(testContext)) - }) -}) \ No newline at end of file diff --git a/executor/src/tests/publishBootstrapSeed.json b/executor/src/tests/publishBootstrapSeed.json deleted file mode 100644 index e95599027..000000000 --- a/executor/src/tests/publishBootstrapSeed.json +++ /dev/null @@ -1 +0,0 @@ -{"trustedAgents":[],"knownLinkLanguages":[],"directMessageLanguage":"QmX7S7jqTsV4aZbsdu7s8xbU3522MiqY8TEBNydvZ8JGBP","agentLanguage":"QmUk7mtF3cNgzusjnY7Kc8C1HA1b77NqdHK1pqkiS8PMWS","perspectiveLanguage":"","neighbourhoodLanguage":"QmXvBUaLJc1zNMfrDdfwxyZv4PdbSD4Ztmg3oucYZKifkF","languageLanguageBundle":""} \ No newline at end of file diff --git a/executor/src/tests/sleep.ts b/executor/src/tests/sleep.ts deleted file mode 100644 index f4c0b38b3..000000000 --- a/executor/src/tests/sleep.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function sleep(ms: number) { - return new Promise(resolve => setTimeout(resolve, ms)); -} diff --git a/executor/src/tests/test-language/package.json b/executor/src/tests/test-language/package.json deleted file mode 100644 index e660b5d9d..000000000 --- a/executor/src/tests/test-language/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "test-language", - "version": "0.0.1", - "description": "An AD4M Language for testing AD4M-executor", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "build": "tsc && rollup -c", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" - }, - "author": "", - "license": "ISC", - "devDependencies": { - "@perspect3vism/ad4m": "0.1.27", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", - "@tsconfig/svelte": "^1.0.0", - "node-sass": "^7.0.1", - "rollup": "^2.3.4", - "rollup-plugin-postcss": "^3.1.8", - "rollup-plugin-string": "^3.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", - "svelte": "^3.0.0", - "svelte-check": "^1.0.0", - "svelte-preprocess": "^4.0.0", - "tslib": "^2.0.0", - "typescript": "^4.6.2", - "uint8arrays": "^3.0.0" - } -} diff --git a/executor/src/tests/test-language/rollup.config.js b/executor/src/tests/test-language/rollup.config.js deleted file mode 100644 index e84be2ac2..000000000 --- a/executor/src/tests/test-language/rollup.config.js +++ /dev/null @@ -1,60 +0,0 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; -import postcss from "rollup-plugin-postcss"; -import { string } from 'rollup-plugin-string' - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: 'index.js', - output: { - sourcemap: true, - format: 'es', - name: 'NoteIpfs', - file: 'build/bundle.js' - }, - plugins: [ - string({ - include: 'build/*.js' - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - ], - watch: { - clearScreen: false - } -} \ No newline at end of file diff --git a/executor/src/tests/test-language/yarn.lock b/executor/src/tests/test-language/yarn.lock deleted file mode 100644 index 36c7778da..000000000 --- a/executor/src/tests/test-language/yarn.lock +++ /dev/null @@ -1,3970 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@apollo/client@3.3.20": - version "3.3.20" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.20.tgz#8f0935fa991857e9cf2e73c9bd378ad7ec97caf8" - integrity sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw== - dependencies: - "@graphql-typed-document-node/core" "^3.0.0" - "@types/zen-observable" "^0.8.0" - "@wry/context" "^0.6.0" - "@wry/equality" "^0.5.0" - fast-json-stable-stringify "^2.0.0" - graphql-tag "^2.12.0" - hoist-non-react-statics "^3.3.2" - optimism "^0.16.0" - prop-types "^15.7.2" - symbol-observable "^4.0.0" - ts-invariant "^0.7.0" - tslib "^1.10.0" - zen-observable "^0.8.14" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/helper-validator-identifier@^7.18.6": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - -"@graphql-typed-document-node/core@^3.0.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" - integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== - -"@holochain/client@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.3.2.tgz#0cc5bb7fbb2b9b76f3e02ddb420caf9b3ced5259" - integrity sha512-tBmfgRMcHn/yujiQ4ugolAEbE4WMznIGRt+F8gpPNNAzC263xt+CLa6G3KslcfUc4tKD+XCr5c9z3wkZP/MMzw== - dependencies: - "@msgpack/msgpack" "^2.7.1" - cross-fetch "^3.1.4" - isomorphic-ws "^4.0.1" - -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@msgpack/msgpack@^2.7.1": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" - integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== - -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@perspect3vism/ad4m@0.1.27": - version "0.1.27" - resolved "https://registry.yarnpkg.com/@perspect3vism/ad4m/-/ad4m-0.1.27.tgz#114c1747cb911bdfa8f176ad8dfe29d4dd2d79df" - integrity sha512-aGRpYTYOlqhVdn/QHMbmsDXhU4cWVhX1RyLOAaafhT3xgtaEnAwyOKHF4ow3GUSq3Y31XGsNrkNsrTaBQAAzBg== - dependencies: - "@apollo/client" "3.3.20" - "@holochain/client" "0.3.2" - "@types/jest" "^27.0.1" - class-validator "^0.13.1" - graphql "^15.5.0" - react "^17.0.2" - reflect-metadata "^0.1.13" - type-graphql "^1.1.1" - -"@rollup/plugin-commonjs@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" - integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - -"@rollup/plugin-node-resolve@^8.0.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - -"@rollup/plugin-typescript@^4.0.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-4.1.2.tgz#6f910430276ae3e53a47a12ad65820627e7b6ad9" - integrity sha512-+7UlGat/99e2JbmGNnIauxwEhYLwrL7adO/tSJxUN57xrrS3Ps+ZzYpLCDGPZJ57j+ZJTZLLN89KXW9JMEB+jg== - dependencies: - "@rollup/pluginutils" "^3.0.1" - resolve "^1.14.1" - -"@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@tsconfig/svelte@^1.0.0": - version "1.0.13" - resolved "https://registry.yarnpkg.com/@tsconfig/svelte/-/svelte-1.0.13.tgz#2fa34376627192c0d643ce54964915e2bd3a58e4" - integrity sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA== - -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/glob@^7.1.3": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/jest@^27.0.1": - version "27.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c" - integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== - dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/node@*": - version "18.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.6.tgz#4f91b0b30d405fdf76e0029b11ef5df6a0da4261" - integrity sha512-j3CEDa2vd96K0AXF8Wur7UucACvnjkk8hYyQAHhUNciabZLDl9nfAEVUSwmh245OOZV15bRA3Y590Gi5jUcDJg== - -"@types/node@^14.11.2": - version "14.18.32" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.32.tgz#8074f7106731f1a12ba993fe8bad86ee73905014" - integrity sha512-Y6S38pFr04yb13qqHf8uk1nHE3lXgQ30WZbv1mLliV9pt0NjvqdWttLcrOYLnXbOafknVYRHZGoMSpR9UwfYow== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/pug@^2.0.4": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6" - integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== - -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/sass@^1.16.0": - version "1.43.1" - resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.43.1.tgz#86bb0168e9e881d7dade6eba16c9ed6d25dc2f68" - integrity sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== - dependencies: - "@types/node" "*" - -"@types/semver@^7.3.3": - version "7.3.12" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" - integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== - -"@types/zen-observable@^0.8.0": - version "0.8.3" - resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" - integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== - -"@wry/context@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.1.tgz#c3c29c0ad622adb00f6a53303c4f965ee06ebeb2" - integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== - dependencies: - tslib "^2.3.0" - -"@wry/equality@^0.5.0": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" - integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== - dependencies: - tslib "^2.3.0" - -"@wry/trie@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" - integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== - dependencies: - tslib "^2.3.0" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -acorn@^8.5.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== - -agent-base@6, agent-base@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agentkeepalive@^4.1.3: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -are-we-there-yet@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" - integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array.prototype.reduce@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" - integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.0.0: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -buffer-crc32@^0.2.5: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -builtin-modules@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - -cacache@^15.2.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== - dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400: - version "1.0.30001425" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz#52917791a453eb3265143d2cd08d80629e82c735" - integrity sha512-/pzFv0OmNG6W0ym80P3NtapU0QEiDS3VuYAZMGoLLqiC7f6FJFe1MjpQDREGApeenD9wloeytmVDj+JLXPC6qw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^3.4.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - 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" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -class-validator@^0.13.1: - version "0.13.2" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.13.2.tgz#64b031e9f3f81a1e1dcd04a5d604734608b24143" - integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== - dependencies: - libphonenumber-js "^1.9.43" - validator "^13.7.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -color-convert@^1.9.0, color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color-support@^1.1.2, color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-with-sourcemaps@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" - integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== - dependencies: - source-map "^0.6.1" - -console-control-strings@^1.0.0, console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-modules-loader-core@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" - integrity sha512-XWOBwgy5nwBn76aA+6ybUGL/3JBnCtBX9Ay9/OWIpzKYWlVHMazvJ+WtHumfi+xxdPF440cWK7JCYtt8xDifew== - dependencies: - icss-replace-symbols "1.1.0" - postcss "6.0.1" - postcss-modules-extract-imports "1.1.0" - postcss-modules-local-by-default "1.2.0" - postcss-modules-scope "1.1.0" - postcss-modules-values "1.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-selector-tokenizer@^0.7.0: - version "0.7.3" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" - integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -debug@4, debug@^4.1.0, debug@^4.3.3: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -depd@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encoding@^0.1.12: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1: - version "1.20.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" - integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.2" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-promise@^3.1.2: - version "3.3.1" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" - integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -eventemitter3@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^3.0.7" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" - integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== - dependencies: - loader-utils "^1.1.0" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - 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" - -glob@~7.1.1: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globule@^1.0.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.4.tgz#7c11c43056055a75a6e68294453c17f2796170fb" - integrity sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg== - dependencies: - glob "~7.1.1" - lodash "^4.17.21" - minimatch "~3.0.2" - -graceful-fs@^4.1.3, graceful-fs@^4.2.6: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graphql-query-complexity@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" - integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== - dependencies: - lodash.get "^4.4.2" - -graphql-subscriptions@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" - integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== - dependencies: - iterall "^1.3.0" - -graphql-tag@^2.12.0: - version "2.12.6" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" - integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== - dependencies: - tslib "^2.1.0" - -graphql@^15.5.0: - version "15.8.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" - integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== - -http-cache-semantics@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== - dependencies: - import-from "^2.1.0" - -import-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" - integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== - dependencies: - import-from "^3.0.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== - dependencies: - resolve-from "^3.0.0" - -import-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" - integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== - dependencies: - resolve-from "^5.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== - -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-reference@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -iterall@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== - -jest-matcher-utils@^27.0.0: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-worker@^26.2.1: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -js-base64@^2.4.9: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -libphonenumber-js@^1.9.43: - version "1.10.14" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.14.tgz#e29da7f539751f724ac54017a098e3c7ca23de94" - integrity sha512-McGS7GV/WjJ2KjfOGhJU1oJn29RYeo7Q+RpANRbUNMQ9gj5XArpbjurSuyYPTejFwbaUojstQ4XyWCrAzGOUXw== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -loader-utils@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@^0.25.2, magic-string@^0.25.7: - version "0.25.9" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" - integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== - dependencies: - sourcemap-codec "^1.4.8" - -make-fetch-happen@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" - integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== - dependencies: - agentkeepalive "^4.1.3" - cacache "^15.2.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" - minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.2" - promise-retry "^2.0.1" - socks-proxy-agent "^6.0.0" - ssri "^8.0.0" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -meow@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" - integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize "^1.2.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@~3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" - integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-fetch@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" - integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== - dependencies: - minipass "^3.1.0" - minipass-sized "^1.0.3" - minizlib "^2.0.0" - optionalDependencies: - encoding "^0.1.12" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== - dependencies: - yallist "^4.0.0" - -minizlib@^2.0.0, minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^0.5.1, mkdirp@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.0.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multiformats@^9.4.2: - version "9.9.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" - integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== - -nan@^2.13.2: - version "2.17.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== - -negotiator@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-gyp@^8.4.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" - integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^9.1.0" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - -node-sass@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-7.0.3.tgz#7620bcd5559c2bf125c4fbb9087ba75cd2df2ab2" - integrity sha512-8MIlsY/4dXUkJDYht9pIWBhMil3uHmE8b/AdJPjmFn1nBx9X9BASzfzmsCy0uCCb8eqI3SYYzVPDswWqSx7gjw== - dependencies: - async-foreach "^0.1.3" - chalk "^4.1.2" - cross-spawn "^7.0.3" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - lodash "^4.17.15" - meow "^9.0.0" - nan "^2.13.2" - node-gyp "^8.4.1" - npmlog "^5.0.0" - request "^2.88.0" - sass-graph "^4.0.1" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npmlog@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -npmlog@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== - dependencies: - are-we-there-yet "^3.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.3" - set-blocking "^2.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" - integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== - dependencies: - array.prototype.reduce "^1.0.4" - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.1" - -object.values@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optimism@^0.16.0: - version "0.16.1" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.1.tgz#7c8efc1f3179f18307b887e18c15c5b7133f6e7d" - integrity sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg== - dependencies: - "@wry/context" "^0.6.0" - "@wry/trie" "^0.3.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-queue@^6.3.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" - integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== - dependencies: - eventemitter3 "^4.0.4" - p-timeout "^3.2.0" - -p-timeout@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - 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" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-load-config@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" - integrity sha512-zF9+UIEvtpeqMGxhpeT9XaIevQSrBBCz9fi7SwfkmjVacsSj8DY5eFVgn+wY8I9vvdDDwK5xC8Myq4UkoLFIkA== - dependencies: - postcss "^6.0.1" - -postcss-modules-local-by-default@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA== - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw== - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-values@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA== - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-2.0.0.tgz#473d0d7326651d8408585c2a154115d5cb36cce0" - integrity sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw== - dependencies: - css-modules-loader-core "^1.1.0" - generic-names "^2.0.1" - lodash.camelcase "^4.3.0" - postcss "^7.0.1" - string-hash "^1.1.1" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.2: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" - integrity sha512-VbGX1LQgQbf9l3cZ3qbUuC3hGqIEOGQFHAEHQ/Diaeo0yLgpgK5Rb8J+OcamIfQ9PbAU/fzBjVtQX3AhJHUvZw== - dependencies: - chalk "^1.1.3" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.1: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -pretty-format@^27.0.0, pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -promise.series@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" - integrity sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ== - -prop-types@^15.7.2: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -react-is@^16.13.1, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@^2.0.1: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - 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" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.1, resolve@^1.16.1, resolve@^1.17.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== - -rimraf@^2.5.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rollup-plugin-postcss@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz#d1bcaf8eb0fcb0936e3684c22dd8628d13a82fd1" - integrity sha512-JHnGfW8quNc6ePxEkZ05HEZ1YiRxDgY9RKEetMfsrwxR2kh/d90OVScTc6b1c2Q17Cs/5TRYL+1uddG21lQe3w== - dependencies: - chalk "^4.0.0" - concat-with-sourcemaps "^1.1.0" - cssnano "^4.1.10" - import-cwd "^3.0.0" - p-queue "^6.3.0" - pify "^5.0.0" - postcss "^7.0.27" - postcss-load-config "^2.1.0" - postcss-modules "^2.0.0" - promise.series "^0.2.0" - resolve "^1.16.1" - rollup-pluginutils "^2.8.2" - safe-identifier "^0.4.1" - style-inject "^0.3.0" - -rollup-plugin-string@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-string/-/rollup-plugin-string-3.0.0.tgz#fed2d6301fae1e59eb610957df757ef13fada3f0" - integrity sha512-vqyzgn9QefAgeKi+Y4A7jETeIAU1zQmS6VotH6bzm/zmUQEnYkpIGRaOBPY41oiWYV4JyBoGAaBjYMYuv+6wVw== - dependencies: - rollup-pluginutils "^2.4.1" - -rollup-plugin-svelte@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz#66362cf0500fb7a848283ebcf19d289a60ef0871" - integrity sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow== - dependencies: - require-relative "^0.8.7" - rollup-pluginutils "^2.8.2" - sourcemap-codec "^1.4.8" - -rollup-plugin-terser@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" - integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== - dependencies: - "@babel/code-frame" "^7.10.4" - jest-worker "^26.2.1" - serialize-javascript "^4.0.0" - terser "^5.0.0" - -rollup-pluginutils@^2.4.1, rollup-pluginutils@^2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@^2.3.4: - version "2.79.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" - integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== - optionalDependencies: - fsevents "~2.3.2" - -sade@^1.7.4: - version "1.8.1" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" - integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - dependencies: - mri "^1.1.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-identifier@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" - integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sander@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" - integrity sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA== - dependencies: - es6-promise "^3.1.2" - graceful-fs "^4.1.3" - mkdirp "^0.5.1" - rimraf "^2.5.2" - -sass-graph@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-4.0.1.tgz#2ff8ca477224d694055bf4093f414cf6cfad1d2e" - integrity sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA== - dependencies: - glob "^7.0.0" - lodash "^4.17.11" - scss-tokenizer "^0.4.3" - yargs "^17.2.1" - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scss-tokenizer@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz#1058400ee7d814d71049c29923d2b25e61dc026c" - integrity sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw== - dependencies: - js-base64 "^2.4.9" - source-map "^0.7.3" - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks-proxy-agent@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" - integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - -socks@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - -sorcery@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" - integrity sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g== - dependencies: - buffer-crc32 "^0.2.5" - minimist "^1.2.0" - sander "^0.5.0" - sourcemap-codec "^1.3.0" - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^8.0.0, ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== - dependencies: - readable-stream "^2.0.1" - -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - 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" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -style-inject@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" - integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svelte-check@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-1.6.0.tgz#fcc7b28252a89be0e4cd369c58bbf8e76e81295f" - integrity sha512-nQTlbFJWhwoeLY5rkhgbjzGQSwk5F1pRdEXait0EFaQSrE/iJF+PIjrQlk0BjL/ogk9HaR9ZI0DQSYrl7jl3IQ== - dependencies: - chalk "^4.0.0" - chokidar "^3.4.1" - glob "^7.1.6" - import-fresh "^3.2.1" - minimist "^1.2.5" - sade "^1.7.4" - source-map "^0.7.3" - svelte-preprocess "^4.0.0" - typescript "*" - -svelte-preprocess@^4.0.0: - version "4.10.7" - resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz#3626de472f51ffe20c9bc71eff5a3da66797c362" - integrity sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw== - dependencies: - "@types/pug" "^2.0.4" - "@types/sass" "^1.16.0" - detect-indent "^6.0.0" - magic-string "^0.25.7" - sorcery "^0.10.0" - strip-indent "^3.0.0" - -svelte@^3.0.0: - version "3.52.0" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.52.0.tgz#08259eff20904c63882b66a5d409a55e8c6743b8" - integrity sha512-FxcnEUOAVfr10vDU5dVgJN19IvqeHQCS1zfe8vayTfis9A2t5Fhx+JDe5uv/C3j//bB1umpLJ6quhgs9xyUbCQ== - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-observable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" - integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== - -tar@^6.0.2, tar@^6.1.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -terser@^5.0.0: - version "5.15.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" - integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - dependencies: - glob "^7.1.2" - -ts-invariant@^0.7.0: - version "0.7.5" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.7.5.tgz#f9658719f9a7737b117d09820d952aacf6263f9c" - integrity sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg== - dependencies: - tslib "^2.1.0" - -tslib@^1.10.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-graphql@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" - integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== - dependencies: - "@types/glob" "^7.1.3" - "@types/node" "^14.11.2" - "@types/semver" "^7.3.3" - glob "^7.1.6" - graphql-query-complexity "^0.7.0" - graphql-subscriptions "^1.1.0" - semver "^7.3.2" - tslib "^2.0.1" - -typescript@*, typescript@^4.6.2: - version "4.8.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" - integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== - -uint8arrays@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" - integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== - dependencies: - multiformats "^9.4.2" - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== - -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validator@^13.7.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - 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" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.2, wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.0.0: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.2.1: - version "17.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" - integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== - 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.0.0" - -zen-observable@^0.8.14: - version "0.8.15" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/executor/src/tests/utils.ts b/executor/src/tests/utils.ts deleted file mode 100644 index 0edc353a0..000000000 --- a/executor/src/tests/utils.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {exec, ExecException} from "node:child_process"; - -export async function isProcessRunning(processName: string): Promise { - const cmd = (() => { - switch (process.platform) { - case 'win32': return `tasklist` - case 'darwin': return `ps -ax | grep ${processName}` - case 'linux': return `ps -A` - default: return false - } - })() - - if (!cmd) throw new Error("Invalid OS"); - - return new Promise((resolve, reject) => { - //@ts-ignore - exec(cmd, (err: ExecException, stdout: string, stderr: string) => { - if (err) reject(err) - - resolve(stdout.toLowerCase().indexOf(processName.toLowerCase()) > -1) - }) - }) - } \ No newline at end of file diff --git a/executor/src/types.d.ts b/executor/src/types.d.ts deleted file mode 100644 index 51f6c7874..000000000 --- a/executor/src/types.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -import("./core/PerspectivismCore"); // Don't delete this line. -import { PerspectivismCore } from "./core/PerspectivismCore"; - -//Module types -export interface OuterConfig { - //Path to resources used by ad4m-executor such as; hc, holochain, prolog - resourcePath: string - //Path to be used for storing ad4m data - appDataPath: string - //Seed file used to load initial languages & agent configuration - networkBootstrapSeed: string - //Languages & perspectives to be bootstrapped into ad4m-executor without requirment for using language language - bootstrapFixtures?: BootstrapFixtures, - //Aliases used by application running ad4m-executor; should be in form {"alias": "language-address"} - appLangAliases?: object, - //Should the graphql server be started as mocking service - mocks: boolean, - //Port for graphql server - gqlPort?: number, - //Port for holochain admin port - hcPortAdmin?: number, - //Port for holochain application port - hcPortApp?: number, - //Port for IPFS swarm - ipfsSwarmPort?: number, - //Port for IPFS repo - ipfsRepoPath?: string - //Should holochain use a local proxy - hcUseLocalProxy?: boolean, - //Should holochain use Mdns - hcUseMdns?: boolean, - //Should holochain use a proxy - hcUseProxy?: boolean, - //Should holochain use a bootstrap server - hcUseBootstrap?: boolean, - //Should ad4m-executor connect to an existing holochain instance, or spawn its own - connectHolochain?: boolean, - //The credential used by admin client to make request - reqCredential?: string, -} - -export interface Config { - appDataPath: string - appResourcePath: string - languageLanguageBundle: string - systemLanguages: string[] - preloadLanguages: string[] - directMessageLanguage: string - languageAliases?: LanguageAlias - bootstrapFixtures?: BootstrapFixtures -} - -export function init(config: OuterConfig): Promise; - -export {PerspectivismCore}; \ No newline at end of file diff --git a/executor/src/utils_extension.d.ts b/executor/src/utils_extension.d.ts new file mode 100644 index 000000000..ef5e79dfd --- /dev/null +++ b/executor/src/utils_extension.d.ts @@ -0,0 +1,15 @@ +declare global { + interface Utils { + getSigningDNA: () => Uint8Array; + hash: (data: string | buffer) => string; + consoleLog: (...args) => void; + consoleDebug: (...args) => void; + consoleError: (...args) => void; + consoleWarn: (...args) => void; + async loadModule: (path: String) => string; + } + + const UTILS: Utils; +} + +export {}; \ No newline at end of file diff --git a/executor/src/wallet_extension.d.ts b/executor/src/wallet_extension.d.ts new file mode 100644 index 000000000..f62148516 --- /dev/null +++ b/executor/src/wallet_extension.d.ts @@ -0,0 +1,77 @@ +export interface Key { + publicKey: string; + privateKey: string; + encoding: string; +} + +export interface Document { + "@context": string; + id: string; + assertionMethod?: string[]; + authentication?: string[]; + capabilityDelegation?: string[]; + capabilityInvocation?: string[]; + keyAgreement?: string[]; + verificationMethod: VerificationMethod[]; +} + +interface VerificationMethod { + id: string; + type: string; + controller: string; + publicKeyBase58?: string; + publicKeyMultibase?: Uint8Array; + publicKeyJwk?: KeyFormat; + privateKeyBase58?: string; + privateKeyMultibase?: Uint8Array; + privateKeyJwk?: KeyFormat; +} + +type KeyFormat = Base58 | Multibase | JWK; + +interface Base58 { + type: "Base58"; + value: string; +} + +interface Multibase { + type: "Multibase"; + value: Uint8Array; +} + +interface JWK { + kid?: string; + kty: string; + crv: string; + x?: string; + y?: string; + d?: string; +} + +interface JWSHeader { + alg: string; + kid?: string; +} + +interface JWS { + header: JWSHeader; + payload: Uint8Array; + signature: Uint8Array; +} + +declare global { + interface RustWallet { + getMainKey: () => Key; + getMainKeyDocument: () => Document; + createMainKey: () => void; + isUnlocked: () => boolean; + unlock: (password: String) => void; + lock: (password: String) => void; + export: () => String; + load: (data: String) => void; + sign: (payload: Uint8Array) => Uint8Array; + verify: (did: String, message: Uint8Array, signature: Uint8Array) => boolean; + } + + const WALLET: RustWallet; +} \ No newline at end of file diff --git a/host/.editorconfig b/host/.editorconfig deleted file mode 100644 index 303d02980..000000000 --- a/host/.editorconfig +++ /dev/null @@ -1,10 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true - -[*.{ts,js,json,yml}] -charset = utf-8 -indent_style = space -indent_size = 2 diff --git a/host/.gitignore b/host/.gitignore deleted file mode 100644 index a6ab670b1..000000000 --- a/host/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -temp -.DS_Store -dist -build -default.nix -swipl-* \ No newline at end of file diff --git a/host/README.md b/host/README.md deleted file mode 100644 index 8c66eb009..000000000 --- a/host/README.md +++ /dev/null @@ -1,247 +0,0 @@ -# Ad4m Host - -This is command-line program to host ad4m service and request to the service with build-in commands. - -## Usage - -Dowload the latest program on the [Release page](https://github.com/fluxsocial/ad4m-host/releases), here take Mac os as example, - -```shell -wget -O ad4m https://github.com/fluxsocial/ad4m-host/releases/download/v0.0.2/ad4m-macos-x64 -chmod +x ./ad4m -``` - -Get help inforamtion for available commands, - -```shell -./ad4m -h -./ad4m serve -h -./ad4m agent -h -``` - -Initialize the dependencies by coping the holochain binaries (**Required**), - -```shell -# Initializes the ad4m-host with default config -./ad4m init - -# Initalize ad4m-host with different environment using dataPath flag -./ad4m init --dataPath ad4m-host --networkBootstrapSeed ./custom_seed.json - -# To override the environment you can use overrideConfig flag -./ad4m init --dataPath ad4m-host --networkBootstrapSeed ./custom_seed.json --overrideConfig -``` - -Run ad4m service with or without connecting to an existing running holochain process, - -```shell - # connect with existing running holochain process -./ad4m serve --connectHolochain - -# start its own holochain process (will use the default environment i.e ad4m) -./ad4m serve - -# will start holochain process for this environment -./ad4m serve --dataPath environment_name - -# Start server with only languageLanguage and ignore other languages -./ad4m serve --languageLanguageOnly - -# Pass custom bootstrap languages & perspective -./ad4m serve --bootstrapLanguage ./bootstrap_language.json --bootstrapPerspective ./bootstrap_perspective.json -``` - -When running the AD4M executor for the very first time, we need to generate an agent (i.e. DID and keys) with: - -```shell -./ad4m agent generate -``` - -After restart the ad4m service, it's usually necessary to check agent status and unlock the agent with passphrase, - -```shell -./ad4m agent status -./ad4m agent unlock -``` - -**Create an expression,** - -```shell -# show all the downloaded languages -./ad4m languages get --all - -# install the note-ipfs language with its address -./ad4m languages get --address QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL - -# if got "not a trustedAgent error", try add a trusted agent with the language creator's did -./ad4m runtime addTrustedAgent --did "did:key:zQ3shfhvaHzE81hZqLorVNDmq971EpGPXq3nhyLF1JRP18LM3" - -# create an expression with note-ipfs language, return the url of the expression -./ad4m expression create --content "This is a test note" --address QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL - -# get the expression with its url -./ad4m expression get --url "QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL://QmSsCCtXMDAZXMpyiNLzwjGEU4hLmhG7fphidhEEodQ4Wy" -``` - -**Publish a language,** - -```shell -# publish a template langauge by replacing the path and meta params. -# you can also omit the path and meta params, and input them interactively. -# it should give the address of the language. -./ad4m languages publish --path "/Users/kaichaosun/github/holo/ad4m-languages/release/shortform/bundle.js" --meta '{"name":"shortform-expression","description":"Shortform expression for flux application","possibleTemplateParams":["uid","name"],"sourceCodeLink":"https://github.com/juntofoundation/ad4m-languages"}' - -# check the metadata of the template language -./ad4m languages meta --address QmWN1LBR3Zzx3yE7mncf93BPna8RbwtkSrYxTETktfpUyJ - -# publish a language by appling template data to a template language -# it should give the address of the templated language -./ad4m languages applyTemplateAndPublish --address QmWN1LBR3Zzx3yE7mncf93BPna8RbwtkSrYxTETktfpUyJ --templateData '{"uid":"123","name":"test-shortform-expression"}' - -# check the metadata of the templated language -./ad4m languages meta --address QmX2e2MaN9ayWaoA4MRhjjVw72RqgxUh7v7SWNbU5Kebpq -``` - -**Create a perspective, and turns it into a neighbourhood** - -```shell -# shall all perspectives -./ad4m perspective get --all - -# add a new perspective -# it should give a random unique ID that is used to reference it -./ad4m perspective add --name "A new perspective" - -# get a specific perspective -./ad4m perspective get --uuid "22bdcd2b-44c4-416b-a9b8-8db089a361b0" - -# add link to a perspective -# link contains a source, target and optional predicate -# in this example, the source is root, target is the note-ipfs expression we just created -./ad4m perspective addLink --uuid "22bdcd2b-44c4-416b-a9b8-8db089a361b0" --link '{"source":"root","target":"QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL://QmSsCCtXMDAZXMpyiNLzwjGEU4hLmhG7fphidhEEodQ4Wy"}' - -# a perspective can be shared by publish it, aka turning it into a neighbourhood. -# we need a language to store links, here we use social-context link language by templating it. -# it should give the address of our link language. -./ad4m languages applyTemplateAndPublish --address QmbCKYo6fWgEP7PiqoYH1jKiJHWFCnGUmwxDfUUEjXQvXB --templateData '{"uid":"123","name":"test-social-context"}' - -# check the metadata of our link language -./ad4m languages meta --address QmYHx1LzwWevEH2dkyEzF3c5ALCHc1PcyBHwukVUdBLFBU - -# publish perspective into neighbourhood with perspective id and link language address -# it should give the url of the neighbourhood, and further used to join the neighbourhood by other users -./ad4m neighbourhood publishFromPerspective --uuid "22bdcd2b-44c4-416b-a9b8-8db089a361b0" --address "QmYHx1LzwWevEH2dkyEzF3c5ALCHc1PcyBHwukVUdBLFBU" --meta '{"links":[]}' - -# another user can join a neighbourhood -# it should give the id of a new perspective -./ad4m neighbourhood joinFromUrl --url 'neighbourhood://QmQggyZvTNkPJQM8m3439kCse5ZRRDAdD7NDR64xv5gTjm' - -# the link added to a neighbourhood will be synced to another user and available to query -# it should give the links which usually contains the expression url in target -./ad4m perspective queryLinks --uuid "ac9e5301-fbf0-4049-abf6-c26f0959d93e" --query "{}" - -# query the expression via url -./ad4m expression get --url "QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL://QmSsCCtXMDAZXMpyiNLzwjGEU4hLmhG7fphidhEEodQ4Wy" -``` - -## Development - -Install dependencies, - -```shell -npm install -``` - -Prepare holochain binaries and bootstrap languages, - -```shell -npm run download-binaries-macos/windows/linux (choose your correct OS) -``` - -Local development without installing any binary, - -```shell -npm run dev # start ad4m service -``` - -To build the binary package, - -```shell -npm run package-macos/windows/linux (choose your correct OS) -``` - -## Operate with GraphQL - -A handly online GraphQL client, https://hoppscotch.io/graphql. You can also save the querys and import/export the collections. - -You can also use this pre-exported [collection](docs/hoppscotch-ad4m-graphql-operations.json). - -### Examples - -**query agent status**, - -```graphql -query agentStatus { - agentStatus { - did - didDocument - error - isInitialized - isUnlocked - } -} -``` - -**unlock agent**, - -```graphql -mutation agentUnlock($passphrase: String!) { - agentUnlock(passphrase: $passphrase) { - isInitialized - isUnlocked - did - error - } -} -``` - -variables, - -```json -{ "passphrase": "yourpassword" } -``` - -**publish a language**, - -```graphql -mutation languagePublish( - $languageMeta: LanguageMetaInput! - $languagePath: String! -) { - languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) { - name - address - author - description - possibleTemplateParams - sourceCodeLink - templateAppliedParams - templateSourceLanguageAddress - templated - } -} -``` - -variables, - -```json -{ - "languageMeta": { - "name": "shortform-expression", - "description": "Shortform expression for flux application", - "possibleTemplateParams": ["uid", "name"], - "sourceCodeLink": "https://github.com/juntofoundation/ad4m-languages" - }, - "languagePath": "your-language-path" -} -``` diff --git a/host/docs/hoppscotch-ad4m-graphql-operations.json b/host/docs/hoppscotch-ad4m-graphql-operations.json deleted file mode 100644 index f0fa0b002..000000000 --- a/host/docs/hoppscotch-ad4m-graphql-operations.json +++ /dev/null @@ -1,135 +0,0 @@ -[ - { - "name": "ad4m", - "v": 1, - "requests": [ - { - "v": 1, - "headers": [ - { - "active": true, - "value": "", - "key": "" - } - ], - "variables": "{ \"id\": \"1\" }", - "url": "http://127.0.0.1:4000/graphql", - "query": "query agentStatus {\n agentStatus {\n did\n didDocument\n error\n isInitialized\n isUnlocked\n }\n}\n", - "name": "ad4m agent status" - }, - { - "url": "http://127.0.0.1:4000/graphql", - "name": "ad4m agent unlock", - "headers": [ - { - "value": "", - "key": "", - "active": true - } - ], - "v": 1, - "query": "mutation agentUnlock($passphrase: String!) {\n agentUnlock(passphrase: $passphrase) {\n isInitialized\n isUnlocked\n did\n error\n }\n}\n", - "variables": "{ \"passphrase\": \"123456\" }" - }, - { - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "variables": "{ \n \"languageMeta\": {\n \"name\": \"shortform-expression\",\n \"description\": \"Shortform expression for flux application\",\n \"possibleTemplateParams\": [\"uid\", \"name\"],\n \"sourceCodeLink\": \"https://github.com/juntofoundation/ad4m-languages\"\n },\n \"languagePath\": \"/Users/kaichaosun/github/holo/ad4m-languages/release/shortform/bundle.js\"\n}", - "headers": [ - { - "active": true, - "key": "", - "value": "" - } - ], - "v": 1, - "url": "http://127.0.0.1:4000/graphql", - "name": "ad4m publish shortform language" - }, - { - "url": "http://127.0.0.1:4000/graphql", - "headers": [ - { - "value": "", - "key": "", - "active": true - } - ], - "v": 1, - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "variables": "{ \n \"languageMeta\": {\n \"name\": \"social-context\",\n \"description\": \"Link sharing for ad4m neighbourhoods\",\n \"possibleTemplateParams\": [\"uid\", \"name\"],\n \"sourceCodeLink\": \"https://github.com/juntofoundation/Social-Context\"\n },\n \"languagePath\": \"/Users/kaichaosun/Downloads/bundle.js\"\n}", - "name": "ad4m publish social context" - }, - { - "v": 1, - "name": "ad4m language meta", - "variables": "{ \n \"address\": \"QmeG3xVQEqdXwjR4ceYuVEaL7x51RdUUY8A4hbNpbaVmxY\"\n}", - "headers": [ - { - "active": true, - "key": "", - "value": "" - } - ], - "url": "http://127.0.0.1:4000/graphql", - "query": "query languageMeta($address: String!) {\n languageMeta(address: $address) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n" - }, - { - "variables": "{ \n \"languageMeta\": {\n \"name\": \"group-expression\",\n \"description\": \"Group expression for flux application\",\n \"possibleTemplateParams\": [\"uid\", \"name\"],\n \"sourceCodeLink\": \"https://github.com/juntofoundation/ad4m-languages\"\n },\n \"languagePath\": \"/Users/kaichaosun/github/holo/ad4m-languages/release/group/bundle.js\"\n}", - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "url": "http://127.0.0.1:4000/graphql", - "name": "ad4m publish group language", - "headers": [ - { - "value": "", - "key": "", - "active": true - } - ], - "v": 1 - }, - { - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "url": "http://127.0.0.1:4000/graphql", - "name": "ad4m publish profile expression", - "v": 1, - "headers": [ - { - "active": true, - "key": "", - "value": "" - } - ], - "variables": "{ \n \"languageMeta\": {\n \"name\": \"profile-expression\",\n \"description\": \"Profile expression for flux application\",\n \"possibleTemplateParams\": [\"uid\", \"name\"],\n \"sourceCodeLink\": \"https://github.com/jdeepee/profiles\"\n },\n \"languagePath\": \"/Users/kaichaosun/github/holo/josh/profiles/build/bundle.js\"\n}" - }, - { - "name": "ad4m publish note ipfs expression", - "v": 1, - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "headers": [ - { - "value": "", - "active": true, - "key": "" - } - ], - "url": "http://127.0.0.1:4000/graphql", - "variables": "{ \n \"languageMeta\": {\n \"name\": \"note-ipfs\",\n \"description\": \"Language for storing data in ipfs\",\n \"possibleTemplateParams\": [],\n \"sourceCodeLink\": \"https://github.com/perspect3vism/lang-note-ipfs\"\n },\n \"languagePath\": \"/Users/kaichaosun/Downloads/QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL\"\n}" - }, - { - "v": 1, - "variables": "{ \n \"languageMeta\": {\n \"name\": \"ui-bundle-expression\",\n \"description\": \"UI bundle expression for flux application\",\n \"possibleTemplateParams\": [],\n \"sourceCodeLink\": \"https://github.com/juntofoundation/file-store-languages\"\n },\n \"languagePath\": \"/Users/kaichaosun/github/holo/file-store-languages/release/ui-bundle-store.js\"\n}", - "url": "http://127.0.0.1:4000/graphql", - "headers": [ - { - "active": true, - "value": "", - "key": "" - } - ], - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "name": "ad4m publish ui bundle language" - } - ], - "folders": [] - } -] \ No newline at end of file diff --git a/host/mainnet_seed.json b/host/mainnet_seed.json deleted file mode 100644 index b851c4a80..000000000 --- a/host/mainnet_seed.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "trustedAgents": [ - "did:key:zQ3shh5eZoXQAbHwUwyypdEd4knEpsaUnLwrjSxjNmHMVPBqQ", - "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" - ], - "knownLinkLanguages": [ - "QmdTbh2uSJj62XFmDzRHTRr65bk6p8aHBQFQ6ZDpQfxFpc" - ], - "directMessageLanguage": "QmXR4MZqxqdPmSnCNF24f82EkvahwgXW3FKzGWPZrdC8qb", - "agentLanguage": "QmVYQxroapbRebjjbZnjKSTQBsqvk5sEBCcyiEKyBRXKLo", - "perspectiveLanguage": "QmYRCZkyZJ7axzPcNCizgEqkjXwvC2nu2UR1M31geggx4W", - "neighbourhoodLanguage": "QmNLtgDrjri7DzqDohmQUKJzr5fXVAN95K4VhMr9GhM9ia", - "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar http = require('http');\nvar https = require('https');\nvar url = require('url');\nvar stream = require('stream');\nvar assert = require('assert');\nvar tty = require('tty');\nvar util = require('util');\nvar fs = require('fs');\nvar net = require('net');\nvar zlib = require('zlib');\nvar os = require('os');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar http__default = /*#__PURE__*/_interopDefaultLegacy(http);\nvar https__default = /*#__PURE__*/_interopDefaultLegacy(https);\nvar url__default = /*#__PURE__*/_interopDefaultLegacy(url);\nvar stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);\nvar assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);\nvar tty__default = /*#__PURE__*/_interopDefaultLegacy(tty);\nvar util__default = /*#__PURE__*/_interopDefaultLegacy(util);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\nvar net__default = /*#__PURE__*/_interopDefaultLegacy(net);\nvar zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);\nvar os__default = /*#__PURE__*/_interopDefaultLegacy(os);\n\nvar bind = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer$1(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString$1(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction$1(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction$1(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nvar utils = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer$1,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString$1,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction$1,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nvar buildURL = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nvar InterceptorManager_1 = InterceptorManager;\n\nvar normalizeHeaderName = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nvar enhanceError = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n\nvar transitional = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nvar createError = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nvar settle = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\nvar cookies = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nvar isAbsoluteURL = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nvar combineURLs = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nvar buildFullPath = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\nvar isURLSameOrigin = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nvar Cancel_1 = Cancel;\n\nvar xhr = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional$1 = config.transitional || transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nvar ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\nvar debug$1 = createCommonjsModule(function (module, exports) {\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = ms;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n});\n\nvar browser = createCommonjsModule(function (module, exports) {\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n});\n\nvar node = createCommonjsModule(function (module, exports) {\n/**\n * Module dependencies.\n */\n\n\n\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util__default[\"default\"].deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')();\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty__default[\"default\"].isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util__default[\"default\"].format.apply(util__default[\"default\"], arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty__default[\"default\"].WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = fs__default[\"default\"];\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = net__default[\"default\"];\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n});\n\nvar src = createCommonjsModule(function (module) {\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = browser;\n} else {\n module.exports = node;\n}\n});\n\nvar debug;\n\nvar debug_1 = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = src(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n\nvar URL = url__default[\"default\"].URL;\n\n\nvar Writable = stream__default[\"default\"].Writable;\n\n\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url__default[\"default\"].format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url__default[\"default\"].parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url__default[\"default\"].format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url__default[\"default\"].resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug_1(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url__default[\"default\"].parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = url__default[\"default\"].parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert__default[\"default\"].equal(options.protocol, protocol, \"protocol mismatch\");\n debug_1(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert__default[\"default\"](isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nvar followRedirects = wrap({ http: http__default[\"default\"], https: https__default[\"default\"] });\nvar wrap_1 = wrap;\nfollowRedirects.wrap = wrap_1;\n\nvar data = {\n \"version\": \"0.26.1\"\n};\n\nvar httpFollow = followRedirects.http;\nvar httpsFollow = followRedirects.https;\n\n\nvar VERSION$1 = data.version;\n\n\n\n\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nvar http_1 = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION$1;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url__default[\"default\"].parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url__default[\"default\"].parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https__default[\"default\"] : http__default[\"default\"];\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib__default[\"default\"].createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional$1 = config.transitional || transitional;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = xhr;\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = http_1;\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitional,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults_1 = defaults;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nvar transformData = function transformData(data, headers, fns) {\n var context = this || defaults_1;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n\nvar isCancel = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel_1('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nvar dispatchRequest = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults_1.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nvar mergeConfig = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n\nvar VERSION = data.version;\n\nvar validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nvar validator = {\n assertOptions: assertOptions,\n validators: validators$1\n};\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_1(),\n response: new InterceptorManager_1()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nvar Axios_1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel_1(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nvar CancelToken_1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nvar spread = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nvar isAxiosError = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios_1(defaultConfig);\n var instance = bind(Axios_1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios_1.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios$1 = createInstance(defaults_1);\n\n// Expose Axios class to allow class inheritance\naxios$1.Axios = Axios_1;\n\n// Expose Cancel & CancelToken\naxios$1.Cancel = Cancel_1;\naxios$1.CancelToken = CancelToken_1;\naxios$1.isCancel = isCancel;\naxios$1.VERSION = data.version;\n\n// Expose all/spread\naxios$1.all = function all(promises) {\n return Promise.all(promises);\n};\naxios$1.spread = spread;\n\n// Expose isAxiosError\naxios$1.isAxiosError = isAxiosError;\n\nvar axios_1 = axios$1;\n\n// Allow use of default import syntax in TypeScript\nvar _default = axios$1;\naxios_1.default = _default;\n\nvar axios = axios_1;\n\ncreateCommonjsModule(function (module) {\n// Generated by CoffeeScript 2.5.1\n(function() {\n // This file's name is set up in such a way that it will always show up first in\n // the list of files given to coffee --join, so that the other files can assume\n // that XMLHttpRequestEventTarget was already defined.\n\n // The DOM EventTarget subclass used by XMLHttpRequest.\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n var InvalidStateError, NetworkError, ProgressEvent, SecurityError, SyntaxError, XMLHttpRequest, XMLHttpRequestEventTarget, XMLHttpRequestUpload, http, https, os, url;\n\n XMLHttpRequestEventTarget = (function() {\n class XMLHttpRequestEventTarget {\n // @private\n // This is an abstract class and should not be instantiated directly.\n constructor() {\n this.onloadstart = null;\n this.onprogress = null;\n this.onabort = null;\n this.onerror = null;\n this.onload = null;\n this.ontimeout = null;\n this.onloadend = null;\n this._listeners = {};\n }\n\n // Adds a new-style listener for one of the XHR events.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#events\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener function that will be called when\n // the event fires\n // @return {undefined} undefined\n addEventListener(eventType, listener) {\n var base;\n eventType = eventType.toLowerCase();\n (base = this._listeners)[eventType] || (base[eventType] = []);\n this._listeners[eventType].push(listener);\n return void 0;\n }\n\n // Removes an event listener added by calling addEventListener.\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener the value passed in a previous\n // call to addEventListener.\n // @return {undefined} undefined\n removeEventListener(eventType, listener) {\n var index;\n eventType = eventType.toLowerCase();\n if (this._listeners[eventType]) {\n index = this._listeners[eventType].indexOf(listener);\n if (index !== -1) {\n this._listeners[eventType].splice(index, 1);\n }\n }\n return void 0;\n }\n\n // Calls all the listeners for an event.\n\n // @param {ProgressEvent} event the event to be dispatched\n // @return {undefined} undefined\n dispatchEvent(event) {\n var eventType, j, len, listener, listeners;\n event.currentTarget = event.target = this;\n eventType = event.type;\n if (listeners = this._listeners[eventType]) {\n for (j = 0, len = listeners.length; j < len; j++) {\n listener = listeners[j];\n listener.call(this, event);\n }\n }\n if (listener = this[`on${eventType}`]) {\n listener.call(this, event);\n }\n return void 0;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadstart' event\n XMLHttpRequestEventTarget.prototype.onloadstart = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'progress' event\n XMLHttpRequestEventTarget.prototype.onprogress = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'abort' event\n XMLHttpRequestEventTarget.prototype.onabort = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'error' event\n XMLHttpRequestEventTarget.prototype.onerror = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'load' event\n XMLHttpRequestEventTarget.prototype.onload = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'timeout' event\n XMLHttpRequestEventTarget.prototype.ontimeout = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadend' event\n XMLHttpRequestEventTarget.prototype.onloadend = null;\n\n return XMLHttpRequestEventTarget;\n\n }).call(this);\n\n // This file's name is set up in such a way that it will always show up second\n // in the list of files given to coffee --join, so it can use the\n // XMLHttpRequestEventTarget definition and so that the other files can assume\n // that XMLHttpRequest was already defined.\n http = http__default[\"default\"];\n\n https = https__default[\"default\"];\n\n os = os__default[\"default\"];\n\n url = url__default[\"default\"];\n\n XMLHttpRequest = (function() {\n // The ECMAScript HTTP API.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#introduction\n class XMLHttpRequest extends XMLHttpRequestEventTarget {\n // Creates a new request.\n\n // @param {Object} options one or more of the options below\n // @option options {Boolean} anon if true, the request's anonymous flag\n // will be set\n // @see http://www.w3.org/TR/XMLHttpRequest/#constructors\n // @see http://www.w3.org/TR/XMLHttpRequest/#anonymous-flag\n constructor(options) {\n super();\n this.onreadystatechange = null;\n this._anonymous = options && options.anon;\n this.readyState = XMLHttpRequest.UNSENT;\n this.response = null;\n this.responseText = '';\n this.responseType = '';\n this.responseURL = '';\n this.status = 0;\n this.statusText = '';\n this.timeout = 0;\n this.upload = new XMLHttpRequestUpload(this);\n this._method = null; // String\n this._url = null; // Return value of url.parse()\n this._sync = false;\n this._headers = null; // Object\n this._loweredHeaders = null; // Object\n this._mimeOverride = null;\n this._request = null; // http.ClientRequest\n this._response = null; // http.ClientResponse\n this._responseParts = null; // Array\n this._responseHeaders = null; // Object\n this._aborting = null;\n this._error = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n }\n\n // Sets the XHR's method, URL, synchronous flag, and authentication params.\n\n // @param {String} method the HTTP method to be used\n // @param {String} url the URL that the request will be made to\n // @param {?Boolean} async if false, the XHR should be processed\n // synchronously; true by default\n // @param {?String} user the user credential to be used in HTTP basic\n // authentication\n // @param {?String} password the password credential to be used in HTTP basic\n // authentication\n // @return {undefined} undefined\n // @throw {SecurityError} method is not one of the allowed methods\n // @throw {SyntaxError} urlString is not a valid URL\n // @throw {Error} the URL contains an unsupported protocol; the supported\n // protocols are file, http and https\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n open(method, url, async, user, password) {\n var xhrUrl;\n method = method.toUpperCase();\n if (method in this._restrictedMethods) {\n throw new SecurityError(`HTTP method ${method} is not allowed in XHR`);\n }\n xhrUrl = this._parseUrl(url);\n if (async === void 0) {\n async = true;\n }\n switch (this.readyState) {\n case XMLHttpRequest.UNSENT:\n case XMLHttpRequest.OPENED:\n case XMLHttpRequest.DONE:\n break;\n case XMLHttpRequest.HEADERS_RECEIVED:\n case XMLHttpRequest.LOADING:\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n return void 0;\n }\n\n // Appends a header to the list of author request headers.\n\n // @param {String} name the HTTP header name\n // @param {String} value the HTTP header value\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @throw {SyntaxError} name is not a valid HTTP header name or value is not\n // a valid HTTP header value\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n setRequestHeader(name, value) {\n var loweredName;\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec\\-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(`Refused to set unsafe header \\\"${name}\\\"`);\n return void 0;\n }\n value = value.toString();\n if (loweredName in this._loweredHeaders) {\n // Combine value with the existing header value.\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + ', ' + value;\n } else {\n // New header.\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n return void 0;\n }\n\n // Initiates the request.\n\n // @param {?String, ?ArrayBufferView} data the data to be sent; ignored for\n // GET and HEAD requests\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n send(data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n if (this._request) {\n throw new InvalidStateError(\"send() already called\");\n }\n switch (this._url.protocol) {\n case 'file:':\n this._sendFile(data);\n break;\n case 'http:':\n case 'https:':\n this._sendHttp(data);\n break;\n default:\n throw new NetworkError(`Unsupported protocol ${this._url.protocol}`);\n }\n return void 0;\n }\n\n // Cancels the network activity performed by this request.\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method\n abort() {\n if (!this._request) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n return void 0;\n }\n\n // Returns a header value in the HTTP response for this XHR.\n\n // @param {String} name case-insensitive HTTP header name\n // @return {?String} value the value of the header whose name matches the\n // given name, or null if there is no such header\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n getResponseHeader(name) {\n var loweredName;\n if (!this._responseHeaders) {\n return null;\n }\n loweredName = name.toLowerCase();\n if (loweredName in this._responseHeaders) {\n return this._responseHeaders[loweredName];\n } else {\n return null;\n }\n }\n\n // Returns all the HTTP headers in this XHR's response.\n\n // @return {String} header lines separated by CR LF, where each header line\n // has the name and value separated by a \": \" (colon, space); the empty\n // string is returned if the headers are not available\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n getAllResponseHeaders() {\n var lines, name, value;\n if (!this._responseHeaders) {\n return '';\n }\n lines = (function() {\n var ref, results;\n ref = this._responseHeaders;\n results = [];\n for (name in ref) {\n value = ref[name];\n results.push(`${name}: ${value}`);\n }\n return results;\n }).call(this);\n return lines.join(\"\\r\\n\");\n }\n\n // Overrides the Content-Type\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-overridemimetype()-method\n overrideMimeType(newMimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new InvalidStateError(\"overrideMimeType() not allowed in LOADING or DONE\");\n }\n this._mimeOverride = newMimeType.toLowerCase();\n return void 0;\n }\n\n // Network configuration not exposed in the XHR API.\n\n // Although the XMLHttpRequest specification calls itself \"ECMAScript HTTP\",\n // it assumes that requests are always performed in the context of a browser\n // application, where some network parameters are set by the browser user and\n // should not be modified by Web applications. This API provides access to\n // these network parameters.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the value for the nodejsHttpAgent\n // property (the agent used for HTTP requests)\n // @option options {?https.Agent} httpsAgent the value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n nodejsSet(options) {\n var baseUrl, parsedUrl;\n if ('httpAgent' in options) {\n this.nodejsHttpAgent = options.httpAgent;\n }\n if ('httpsAgent' in options) {\n this.nodejsHttpsAgent = options.httpsAgent;\n }\n if ('baseUrl' in options) {\n baseUrl = options.baseUrl;\n if (baseUrl !== null) {\n parsedUrl = url.parse(baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = baseUrl;\n }\n return void 0;\n }\n\n // Default settings for the network configuration not exposed in the XHR API.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the default value for the\n // nodejsHttpAgent property (the agent used for HTTP requests)\n // @option options {https.Agent} httpsAgent the default value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n // @see XMLHttpRequest.nodejsSet\n static nodejsSet(options) {\n // \"this\" will be set to XMLHttpRequest.prototype, so the instance nodejsSet\n // operates on default property values.\n XMLHttpRequest.prototype.nodejsSet(options);\n return void 0;\n }\n\n // Sets the readyState property and fires the readystatechange event.\n\n // @private\n // @param {Number} newReadyState the new value of readyState\n // @return {undefined} undefined\n _setReadyState(newReadyState) {\n var event;\n this.readyState = newReadyState;\n event = new ProgressEvent('readystatechange');\n this.dispatchEvent(event);\n return void 0;\n }\n\n // XMLHttpRequest#send() implementation for the file: protocol.\n\n // @private\n _sendFile() {\n if (this._url.method !== 'GET') {\n throw new NetworkError('The file protocol only supports GET');\n }\n throw new Error(\"Protocol file: not implemented\");\n }\n\n // XMLHttpRequest#send() implementation for the http: and https: protocols.\n\n // @private\n // This method sets the instance variables and calls _sendHxxpRequest(), which\n // is responsible for building a node.js request and firing it off. The code\n // in _sendHxxpRequest() is separated off so it can be reused when handling\n // redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHttp(data) {\n if (this._sync) {\n throw new Error(\"Synchronous XHR processing not implemented\");\n }\n if ((data != null) && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(`Discarding entity body for ${this._method} requests`);\n data = null;\n } else {\n // Send Content-Length: 0\n data || (data = '');\n }\n // NOTE: this is called before finalizeHeaders so that the uploader can\n // figure out Content-Length and Content-Type.\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return void 0;\n }\n\n // Sets up and fires off a HTTP/HTTPS request using the node.js API.\n\n // @private\n // This method contains the bulk of the XMLHttpRequest#send() implementation,\n // and is also used to issue new HTTP requests when handling HTTP redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHxxpRequest() {\n var agent, hxxp, request;\n if (this._url.protocol === 'http:') {\n hxxp = http;\n agent = this.nodejsHttpAgent;\n } else {\n hxxp = https;\n agent = this.nodejsHttpsAgent;\n }\n request = hxxp.request({\n hostname: this._url.hostname,\n port: this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, () => {\n return this._onHttpTimeout(request);\n });\n }\n request.on('response', (response) => {\n return this._onHttpResponse(request, response);\n });\n request.on('error', (error) => {\n return this._onHttpRequestError(request, error);\n });\n this.upload._startUpload(request);\n if (this._request === request) { // An http error might have already fired.\n this._dispatchProgress('loadstart');\n }\n return void 0;\n }\n\n // Fills in the restricted HTTP headers with default values.\n\n // This is called right before the HTTP request is sent off.\n\n // @private\n // @return {undefined} undefined\n _finalizeHeaders() {\n var base;\n this._headers['Connection'] = 'keep-alive';\n this._headers['Host'] = this._url.host;\n if (this._anonymous) {\n this._headers['Referer'] = 'about:blank';\n }\n (base = this._headers)['User-Agent'] || (base['User-Agent'] = this._userAgent);\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n return void 0;\n }\n\n // Called when the headers of an HTTP response have been received.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // produced this response\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // passed to\n _onHttpResponse(request, response) {\n var lengthString;\n if (this._request !== request) {\n return;\n }\n // Transparent redirection handling.\n switch (response.statusCode) {\n case 301:\n case 302:\n case 303:\n case 307:\n case 308:\n this._url = this._parseUrl(response.headers['location']);\n this._method = 'GET';\n if ('content-type' in this._loweredHeaders) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n // XMLHttpRequestUpload#_finalizeHeaders() sets Content-Type directly.\n if ('Content-Type' in this._headers) {\n delete this._headers['Content-Type'];\n }\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', (data) => {\n return this._onHttpResponseData(response, data);\n });\n this._response.on('end', () => {\n return this._onHttpResponseEnd(response);\n });\n this._response.on('close', () => {\n return this._onHttpResponseClose(response);\n });\n this.responseURL = this._url.href.split('#')[0];\n this.status = this._response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n if (lengthString = this._responseHeaders['content-length']) {\n this._totalBytes = parseInt(lengthString);\n this._lengthComputable = true;\n } else {\n this._lengthComputable = false;\n }\n return this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n }\n\n // Called when some data has been received on a HTTP connection.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n // @param {String, Buffer} data the data that has been received\n _onHttpResponseData(response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(data);\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n return this._dispatchProgress('progress');\n }\n\n // Called when the HTTP request finished processing.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseEnd(response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the underlying HTTP connection was closed prematurely.\n\n // If this method is called, it will be called after or instead of\n // onHttpResponseEnd.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseClose(response) {\n var request;\n if (this._response !== response) {\n return;\n }\n request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the timeout set on the HTTP socket expires.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n _onHttpTimeout(request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n return this._dispatchProgress('loadend');\n }\n\n // Called when something wrong happens on the HTTP socket\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n // @param {Error} error emitted exception\n _onHttpRequestError(request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Fires an XHR progress event.\n\n // @private\n // @param {String} eventType one of the XHR progress event types, such as\n // 'load' and 'progress'\n _dispatchProgress(eventType) {\n var event;\n event = new ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n return void 0;\n }\n\n // Sets up the XHR to reflect the fact that an error has occurred.\n\n // The possible errors are a network error, a timeout, or an abort.\n\n // @private\n _setError() {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n return void 0;\n }\n\n // Parses a request URL string.\n\n // @private\n // This method is a thin wrapper around url.parse() that normalizes HTTP\n // user/password credentials. It is used to parse the URL string passed to\n // XMLHttpRequest#open() and the URLs in the Location headers of HTTP redirect\n // responses.\n\n // @param {String} urlString the URL to be parsed\n // @return {Object} parsed URL\n _parseUrl(urlString) {\n var absoluteUrlString, index, password, user, xhrUrl;\n if (this.nodejsBaseUrl === null) {\n absoluteUrlString = urlString;\n } else {\n absoluteUrlString = url.resolve(this.nodejsBaseUrl, urlString);\n }\n xhrUrl = url.parse(absoluteUrlString, false, true);\n xhrUrl.hash = null;\n if (xhrUrl.auth && ((typeof user !== \"undefined\" && user !== null) || (typeof password !== \"undefined\" && password !== null))) {\n index = xhrUrl.auth.indexOf(':');\n if (index === -1) {\n if (!user) {\n user = xhrUrl.auth;\n }\n } else {\n if (!user) {\n user = xhrUrl.substring(0, index);\n }\n if (!password) {\n password = xhrUrl.substring(index + 1);\n }\n }\n }\n if (user || password) {\n xhrUrl.auth = `${user}:${password}`;\n }\n return xhrUrl;\n }\n\n // Reads the headers from a node.js ClientResponse instance.\n\n // @private\n // @param {http.ClientResponse} response the response whose headers will be\n // imported into this XMLHttpRequest's state\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n _parseResponseHeaders(response) {\n var loweredName, name, ref, value;\n this._responseHeaders = {};\n ref = response.headers;\n for (name in ref) {\n value = ref[name];\n loweredName = name.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n if (this._mimeOverride !== null && loweredName === 'content-type') {\n value = this._mimeOverride;\n }\n this._responseHeaders[loweredName] = value;\n }\n if (this._mimeOverride !== null && !('content-type' in this._responseHeaders)) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n return void 0;\n }\n\n // Sets the response and responseText properties when an XHR completes.\n\n // @private\n // @return {undefined} undefined\n _parseResponse() {\n var arrayBuffer, buffer, i, j, ref, view;\n if (Buffer.concat) {\n buffer = Buffer.concat(this._responseParts);\n } else {\n // node 0.6\n buffer = this._concatBuffers(this._responseParts);\n }\n this._responseParts = null;\n switch (this.responseType) {\n case 'text':\n this._parseTextResponse(buffer);\n break;\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n } catch (error1) {\n this.response = null;\n }\n break;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n break;\n case 'arraybuffer':\n this.responseText = null;\n arrayBuffer = new ArrayBuffer(buffer.length);\n view = new Uint8Array(arrayBuffer);\n for (i = j = 0, ref = buffer.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n break;\n default:\n // TODO(pwnall): content-base detection\n this._parseTextResponse(buffer);\n }\n return void 0;\n }\n\n // Sets response and responseText for a 'text' response type.\n\n // @private\n // @param {Buffer} buffer the node.js Buffer containing the binary response\n // @return {undefined} undefined\n _parseTextResponse(buffer) {\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n } catch (error1) {\n // Unknown encoding.\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n return void 0;\n }\n\n // Figures out the string encoding of the XHR's response.\n\n // This is called to determine the encoding when responseText is set.\n\n // @private\n // @return {String} a string encoding, e.g. 'utf-8'\n _parseResponseEncoding() {\n var contentType, match;\n if (contentType = this._responseHeaders['content-type']) {\n if (match = /\\;\\s*charset\\=(.*)$/.exec(contentType)) {\n return match[1];\n }\n }\n return 'utf-8';\n }\n\n // Buffer.concat implementation for node 0.6.\n\n // @private\n // @param {Array} buffers the buffers whose contents will be merged\n // @return {Buffer} same as Buffer.concat(buffers) in node 0.8 and above\n _concatBuffers(buffers) {\n var buffer, j, k, len, len1, length, target;\n if (buffers.length === 0) {\n return Buffer.alloc(0);\n }\n if (buffers.length === 1) {\n return buffers[0];\n }\n length = 0;\n for (j = 0, len = buffers.length; j < len; j++) {\n buffer = buffers[j];\n length += buffer.length;\n }\n target = Buffer.alloc(length);\n length = 0;\n for (k = 0, len1 = buffers.length; k < len1; k++) {\n buffer = buffers[k];\n buffer.copy(target, length);\n length += buffer.length;\n }\n return target;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler for the\n // 'readystatechange' event\n XMLHttpRequest.prototype.onreadystatechange = null;\n\n // @property {Number} the current state of the XHR object\n // @see http://www.w3.org/TR/XMLHttpRequest/#states\n XMLHttpRequest.prototype.readyState = null;\n\n // @property {String, ArrayBuffer, Buffer, Object} processed XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-response-attribute\n XMLHttpRequest.prototype.response = null;\n\n // @property {String} response string, if responseType is '' or 'text'\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute\n XMLHttpRequest.prototype.responseText = null;\n\n // @property {String} sets the parsing method for the XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetype-attribute\n XMLHttpRequest.prototype.responseType = null;\n\n // @property {Number} the HTTP\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute\n XMLHttpRequest.prototype.status = null;\n\n // @property {Number} milliseconds to wait for the request to complete\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute\n XMLHttpRequest.prototype.timeout = null;\n\n // @property {XMLHttpRequestUpload} the associated upload information\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute\n XMLHttpRequest.prototype.upload = null;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.prototype.UNSENT = 0;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.UNSENT = 0;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.prototype.OPENED = 1;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.OPENED = 1;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.prototype.HEADERS_RECEIVED = 2;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.prototype.LOADING = 3;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.LOADING = 3;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.prototype.DONE = 4;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.DONE = 4;\n\n // @property {http.Agent} the agent option passed to HTTP requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\n\n // @property {https.Agent} the agent option passed to HTTPS requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpsAgent = https.globalAgent;\n\n // @property {String} the base URL that relative URLs get resolved to\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // Its browser equivalent is the base URL of the document associated with the\n // Window object. It is a stable node-xhr2 API provided for libraries such as\n // Angular Universal.\n XMLHttpRequest.prototype.nodejsBaseUrl = null;\n\n // HTTP methods that are disallowed in the XHR spec.\n\n // @private\n // @see Step 6 in http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n XMLHttpRequest.prototype._restrictedMethods = {\n CONNECT: true,\n TRACE: true,\n TRACK: true\n };\n\n // HTTP request headers that are disallowed in the XHR spec.\n\n // @private\n // @see Step 5 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n XMLHttpRequest.prototype._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true\n };\n\n // HTTP response headers that should not be exposed according to the XHR spec.\n\n // @private\n // @see Step 3 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n XMLHttpRequest.prototype._privateHeaders = {\n 'set-cookie': true,\n 'set-cookie2': true\n };\n\n // The default value of the User-Agent header.\n XMLHttpRequest.prototype._userAgent = `Mozilla/5.0 (${os.type()} ${os.arch()}) ` + `node.js/${process.versions.node} v8/${process.versions.v8}`;\n\n return XMLHttpRequest;\n\n }).call(this);\n\n // XMLHttpRequest is the result of require('node-xhr2').\n module.exports = XMLHttpRequest;\n\n // Make node-xhr2 work as a drop-in replacement for libraries that promote the\n // following usage pattern:\n // var XMLHttpRequest = require('xhr-library-name').XMLHttpRequest\n XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;\n\n // This file defines the custom errors used in the XMLHttpRequest specification.\n\n // Thrown if the XHR security policy is violated.\n SecurityError = class SecurityError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if the XHR security policy is violated.\n XMLHttpRequest.SecurityError = SecurityError;\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {};\n\n XMLHttpRequest.InvalidStateError = InvalidStateError;\n\n // Thrown if there is a problem with the URL passed to the XHR.\n NetworkError = class NetworkError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if parsing URLs errors out.\n XMLHttpRequest.SyntaxError = SyntaxError;\n\n SyntaxError = class SyntaxError extends Error {\n // @private:\n constructor() {\n super();\n }\n\n };\n\n ProgressEvent = (function() {\n // http://xhr.spec.whatwg.org/#interface-progressevent\n class ProgressEvent {\n // Creates a new event.\n\n // @param {String} type the event type, e.g. 'readystatechange'; must be\n // lowercased\n constructor(type) {\n this.type = type;\n this.target = null;\n this.currentTarget = null;\n this.lengthComputable = false;\n this.loaded = 0;\n this.total = 0;\n }\n\n }\n // Getting the time from the OS is expensive, skip on that for now.\n // @timeStamp = Date.now()\n\n // @property {Boolean} for compatibility with DOM events\n ProgressEvent.prototype.bubbles = false;\n\n // @property {Boolean} for fompatibility with DOM events\n ProgressEvent.prototype.cancelable = false;\n\n // @property {XMLHttpRequest} the request that caused this event\n ProgressEvent.prototype.target = null;\n\n // @property {Number} number of bytes that have already been downloaded or\n // uploaded\n ProgressEvent.prototype.loaded = null;\n\n // @property {Boolean} true if the Content-Length response header is available\n // and the value of the event's total property is meaningful\n ProgressEvent.prototype.lengthComputable = null;\n\n // @property {Number} number of bytes that will be downloaded or uploaded by\n // the request that fired the event\n ProgressEvent.prototype.total = null;\n\n return ProgressEvent;\n\n }).call(this);\n\n // The XHR spec exports the ProgressEvent constructor.\n XMLHttpRequest.ProgressEvent = ProgressEvent;\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n XMLHttpRequestUpload = class XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n // @private\n // @param {XMLHttpRequest} the XMLHttpRequest that this upload object is\n // associated with\n constructor(request) {\n super();\n this._request = request;\n this._reset();\n }\n\n // Sets up this Upload to handle a new request.\n\n // @private\n // @return {undefined} undefined\n _reset() {\n this._contentType = null;\n this._body = null;\n return void 0;\n }\n\n // Implements the upload-related part of the send() XHR specification.\n\n // @private\n // @param {?String, ?Buffer, ?ArrayBufferView} data the argument passed to\n // XMLHttpRequest#send()\n // @return {undefined} undefined\n // @see step 4 of http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n _setData(data) {\n var body, i, j, k, offset, ref, ref1, view;\n if (typeof data === 'undefined' || data === null) {\n return;\n }\n if (typeof data === 'string') {\n // DOMString\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = Buffer.from(data, 'utf8');\n } else if (Buffer.isBuffer(data)) {\n // node.js Buffer\n this._body = data;\n } else if (data instanceof ArrayBuffer) {\n // ArrayBuffer arguments were supported in an old revision of the spec.\n body = Buffer.alloc(data.byteLength);\n view = new Uint8Array(data);\n for (i = j = 0, ref = data.byteLength; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n body[i] = view[i];\n }\n this._body = body;\n } else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n // ArrayBufferView\n body = Buffer.alloc(data.byteLength);\n offset = data.byteOffset;\n view = new Uint8Array(data.buffer);\n for (i = k = 0, ref1 = data.byteLength; (0 <= ref1 ? k < ref1 : k > ref1); i = 0 <= ref1 ? ++k : --k) {\n body[i] = view[i + offset];\n }\n this._body = body;\n } else {\n // NOTE: diverging from the XHR specification of coercing everything else\n // to Strings via toString() because that behavior masks bugs and is\n // rarely useful\n throw new Error(`Unsupported send() data ${data}`);\n }\n return void 0;\n }\n\n // Updates the HTTP headers right before the request is sent.\n\n // This is used to set data-dependent headers such as Content-Length and\n // Content-Type.\n\n // @private\n // @param {Object} headers the HTTP headers to be sent\n // @param {Object} loweredHeaders maps lowercased HTTP header\n // names (e.g., 'content-type') to the actual names used in the headers\n // parameter (e.g., 'Content-Type')\n // @return {undefined} undefined\n _finalizeHeaders(headers, loweredHeaders) {\n if (this._contentType) {\n if (!('content-type' in loweredHeaders)) {\n headers['Content-Type'] = this._contentType;\n }\n }\n if (this._body) {\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n headers['Content-Length'] = this._body.length.toString();\n }\n return void 0;\n }\n\n // Starts sending the HTTP request data.\n\n // @private\n // @param {http.ClientRequest} request the HTTP request\n // @return {undefined} undefined\n _startUpload(request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n return void 0;\n }\n\n };\n\n // Export the XMLHttpRequestUpload constructor.\n XMLHttpRequest.XMLHttpRequestUpload = XMLHttpRequestUpload;\n\n}).call(commonjsGlobal);\n});\n\nclass LangAdapter {\n constructor(context) {\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw (e);\n }\n let languageSource;\n try {\n const getLanguageSource = await axios.get(presignedUrl);\n languageSource = getLanguageSource.data;\n }\n catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw (e);\n }\n return languageSource;\n }\n}\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CloudflarePutAdapter_agent, _CloudflarePutAdapter_IPFS;\nclass CloudflarePutAdapter {\n constructor(context) {\n _CloudflarePutAdapter_agent.set(this, void 0);\n _CloudflarePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet(this, _CloudflarePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet(this, _CloudflarePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet(this, _CloudflarePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet(this, _CloudflarePutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n //Build the key value object for the meta object\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n // Content of the new object.\n value: JSON.stringify(expression),\n };\n //Save the meta information to the KV store\n const httpsAgent = new https__default[\"default\"].Agent({\n rejectUnauthorized: false\n });\n try {\n const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent });\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n //Build the key value object for the language bundle\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString(),\n };\n //Save the language bundle to the KV store\n const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent });\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n}\n_CloudflarePutAdapter_agent = new WeakMap(), _CloudflarePutAdapter_IPFS = new WeakMap();\n\nclass Adapter {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axios.get(presignedUrl);\n metaObject = getMetaObject.data;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\n\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports.PROXY_URL = PROXY_URL;\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" -} \ No newline at end of file diff --git a/host/oldestSupportedVersion.js b/host/oldestSupportedVersion.js deleted file mode 100644 index d0b9926ec..000000000 --- a/host/oldestSupportedVersion.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function oldestSupportedVersion() { - return {"version": "0.3.4", "shouldClearState": true} -} diff --git a/host/package.json b/host/package.json deleted file mode 100644 index 2ff048532..000000000 --- a/host/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "ad4m-host", - "version": "0.5.1", - "description": "Self hosting ad4m service", - "private": true, - "bin": { - "ad4m": "build/cli.cjs" - }, - "type": "module", - "scripts": { - "build": "tsc && yarn run build-commonjs", - "build-commonjs": "node scripts/esbuild.js", - "dev": "yarn run build && node --experimental-specifier-resolution=node build/cli.js", - "serve": "yarn run build && node --experimental-specifier-resolution=node build/cli.js serve", - "prepare": "yarn run build && node --experimental-specifier-resolution=node build/cli.js prepare", - "postinstall": "node scripts/postinstall.js", - "download-binaries-macos": "./scripts/download-binaries-macos.sh", - "download-binaries-linux": "./scripts/download-binaries-linux.sh", - "download-binaries-windows": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command scripts\\download-binaries-windows.ps1", - "copy-swipl:windows": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command scripts\\copy-swipl.ps1", - "package-windows": "yarn run download-binaries-windows && yarn run copy-swipl:windows && pkg . -o dist/ad4m-windows-x64 -t node16-windows-x64 --public-packages \"*\"", - "package-linux": "yarn run download-binaries-linux && pkg . -o dist/ad4m-linux-x64 -t node16-linux-x64 --public-packages \"*\"", - "package-macos": "yarn run download-binaries-macos && pkg . -o dist/ad4m-macos-x64 -t node16-macos-x64 --public-packages \"*\"" - }, - "pkg": { - "scripts": "build/cli.cjs", - "assets": [ - "temp/**/*", - "temp/binary/hc.exe", - "temp/binary/holochain.exe", - "mainnet_seed.json", - "package.json", - "node_modules/leveldown/**/*", - "../node_modules/classic-level/**/*", - "node_modules/ts-invariant/**/*", - "node_modules/@apollo/client/node_modules/ts-invariant/**/*" - ], - "outputPath": "dist", - "patches": { - "node_modules/leveldown/binding.js": [] - } - }, - "repository": { - "type": "git", - "url": "git+https://github.com/perspect3vism/ad4m.git" - }, - "keywords": [ - "Holochain" - ], - "author": "Kaichao Sun", - "license": "CAL-1.0", - "bugs": { - "url": "https://github.com/perspect3vism/ad4m/issues" - }, - "homepage": "https://github.com/perspect3vism/ad4m#readme", - "dependencies": { - "@apollo/client": "3.7.10", - "@perspect3vism/ad4m": "*", - "@perspect3vism/ad4m-executor": "*", - "appdata-path": "perspect3vism/appdata-path", - "esm": "^3.2.25", - "fs-extra": "^9.1.0", - "get-port": "5.1.1", - "graphql-ws": "5.12.0", - "node-fetch": "^2.5.11", - "readline-sync": "^1.4.10", - "semver": "^7.3.8", - "unzipper": "^0.10.11", - "wget-improved": "^3.3.1", - "ws": "8.13.0", - "yargs": "^17.3.1" - }, - "devDependencies": { - "@types/node": "^18.0.0", - "@types/yargs": "^17.0.8", - "@vercel/ncc": "^0.33.1", - "esbuild": "^0.15.5", - "patch-package": "^6.5.0", - "pkg": "^5.8.0", - "typescript": "^4.6.2" - } -} diff --git a/host/scripts/copy-swipl.ps1 b/host/scripts/copy-swipl.ps1 deleted file mode 100644 index fa72f1af9..000000000 --- a/host/scripts/copy-swipl.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -choco install swi-prolog -Copy-Item -Recurse -Path "C:\Program Files\swipl" -Destination temp/ -Copy-Item -Path ../node_modules/swipl-stdio/top.pl -Destination temp/swipl \ No newline at end of file diff --git a/host/scripts/download-binaries-linux.sh b/host/scripts/download-binaries-linux.sh deleted file mode 100755 index 13ecc6954..000000000 --- a/host/scripts/download-binaries-linux.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" - -if [ ! -f "./temp/binary/hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 - mv hc-linux-0.1.0 temp/binary/hc - chmod +x temp/binary/hc -fi - -if [ ! -f "./temp/binary/holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 - mv holochain-linux-0.1.0 temp/binary/holochain - chmod +x temp/binary/holochain -fi - -if [ ! -f "./temp/swipl/bin/swipl" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/swipl-linux-x86.zip - unzip swipl-linux-x86.zip -d temp - rm -rf swipl-linux-x64.zip -fi \ No newline at end of file diff --git a/host/scripts/download-binaries-macos.sh b/host/scripts/download-binaries-macos.sh deleted file mode 100755 index bd3ccab6f..000000000 --- a/host/scripts/download-binaries-macos.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" - -if [ ! -f "./temp/binary/hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-darwin-0.1.0 - mv hc-darwin-0.1.0 temp/binary/hc - chmod +x temp/binary/hc -fi - -if [ ! -f "./temp/binary/holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-darwin-0.1.0 - mv holochain-darwin-0.1.0 temp/binary/holochain - chmod +x temp/binary/holochain -fi - -if [ ! -f "./temp/swipl/bin/swipl" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/swipl-darwin-x86.zip - unzip swipl-darwin-x86.zip -d temp - rm -rf temp/__MACOSX - rm -rf swipl-linux-x64.zip -fi \ No newline at end of file diff --git a/host/scripts/download-binaries-windows.ps1 b/host/scripts/download-binaries-windows.ps1 deleted file mode 100644 index 0d1a06623..000000000 --- a/host/scripts/download-binaries-windows.ps1 +++ /dev/null @@ -1,7 +0,0 @@ -choco install wget --no-progress - -mkdir temp/binary - -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./temp/binary/hc.exe - -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-windows-0.1.0.exe -O ./temp/binary/holochain.exe diff --git a/host/scripts/esbuild.js b/host/scripts/esbuild.js deleted file mode 100644 index bcb82b8cc..000000000 --- a/host/scripts/esbuild.js +++ /dev/null @@ -1,16 +0,0 @@ -import { build } from 'esbuild' -build({ - entryPoints: ["./src/cli.ts"], - platform: 'node', - bundle: true, - format: "cjs", - minify: false, - sourcemap: false, - outfile: "build/cli.cjs", - external: ['classic-level', 'default-gateway'], - watch: process.env.NODE_ENV === "dev" ? true : false, - }) - .catch((er) => { - console.log('errr', er) - process.exit(1) - }); \ No newline at end of file diff --git a/host/scripts/postinstall.js b/host/scripts/postinstall.js deleted file mode 100644 index 49f4fcb9e..000000000 --- a/host/scripts/postinstall.js +++ /dev/null @@ -1,11 +0,0 @@ -import { execSync } from 'child_process'; - -var isWin = process.platform === "win32"; - -execSync("rm -rf node_modules/ipfs-core-types/src"); - -execSync("cd ../ && yarn run patchpackage"); - -if (!isWin) { - execSync("ln -sf node_modules/@perspect3vism/ad4m-executor/default.nix default.nix") -} \ No newline at end of file diff --git a/host/src/ad4mDataDirectory.ts b/host/src/ad4mDataDirectory.ts deleted file mode 100644 index e041d7993..000000000 --- a/host/src/ad4mDataDirectory.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { homedir } from 'os' -import path from 'path' - -export function ad4mDataDirectory(override?: string) { - if(override) - return path.resolve(override) - else - return path.join(homedir(), '.ad4m') -} \ No newline at end of file diff --git a/host/src/cli.ts b/host/src/cli.ts deleted file mode 100644 index b2e0a285e..000000000 --- a/host/src/cli.ts +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env node - -import yargs from 'yargs'; -import { hideBin } from 'yargs/helpers'; -import { - command as serveCommand, desc as serveDesc, - builder as serveBuilder, handler as serveHandler, -} from './commands/serve'; -import { - command as agentCommand, desc as agentDesc, - builder as agentBuilder, handler as agentHandler, -} from './commands/client/agent'; -import { - command as languagesCommand, desc as languagesDesc, - builder as languagesBuilder, handler as languagesHandler, -} from './commands/client/languages'; -import { - command as expressionCommand, desc as expressionDesc, - builder as expressionBuilder, handler as expressionHandler, -} from './commands/client/expression'; -import { - command as perspectiveCommand, desc as perspectiveDesc, - builder as perspectiveBuilder, handler as perspectiveHandler, -} from './commands/client/perspective'; -import { - command as neighbourhoodCommand, desc as neighbourhoodDesc, - builder as neighbourhoodBuilder, handler as neighbourhoodHandler, -} from './commands/client/neighbourhood'; -import { - command as runtimeCommand, desc as runtimeDesc, - builder as runtimeBuilder, handler as runtimeHandler, -} from './commands/client/runtime'; -import { - command as initCommand, desc as initDesc, - builder as initBuilder, handler as initHandler, -} from './commands/init'; -import { - command as prepareCommand, desc as prepareDesc, - builder as prepareBuilder, handler as prepareHandler, -} from './commands/prepare'; - -yargs(hideBin(process.argv)) - .command(prepareCommand, prepareDesc, prepareBuilder, prepareHandler) - .command(initCommand, initDesc, initBuilder, initHandler) - .command(serveCommand, serveDesc, serveBuilder, serveHandler) - .command(agentCommand, agentDesc, agentBuilder, agentHandler) - .command(languagesCommand, languagesDesc, languagesBuilder, languagesHandler) - .command(expressionCommand, expressionDesc, expressionBuilder, expressionHandler) - .command(perspectiveCommand, perspectiveDesc, perspectiveBuilder, perspectiveHandler) - .command(neighbourhoodCommand, neighbourhoodDesc, neighbourhoodBuilder, neighbourhoodHandler) - .command(runtimeCommand, runtimeDesc, runtimeBuilder, runtimeHandler) - .options({ - server: { - type: 'string', - describe: 'Connect to this endpoint when request to ad4m service', - default: 'ws://localhost:4000/graphql', - alias: 's', - }, - verbose: { type: "boolean", default: false, alias: 'v' }, - }) - // Enable strict mode. - .strict() - // Useful aliases. - .alias({ h: 'help' }) - .fail((msg, err) => { - console.error('Running command with error: ', msg, err); - process.exit(1); - }) - .argv; diff --git a/host/src/commands/client/agent.ts b/host/src/commands/client/agent.ts deleted file mode 100644 index 2522f2006..000000000 --- a/host/src/commands/client/agent.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Ad4mClient } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, readPassphrase, prettify, CommonOptions } from './util'; - -export const command: string = 'agent [action]'; -export const desc: string = 'Agent related action'; - -type Options = CommonOptions & { - passphrase?: string; -}; -; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the agent', - choices: ['generate', 'lock', 'unlock', 'status', 'me', 'getApps'], - default: 'status', - }).options({ - passphrase: {type: 'string', describe: 'Password for the agent'} - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, verbose, action, passphrase } = argv; - if (verbose) { - console.info(`Attempting to connect to ${server}`); - } - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'generate': await generate(ad4mClient, passphrase); break; - case 'lock': await lock(ad4mClient); break; - case 'unlock': await unlock(ad4mClient, passphrase); break; - case 'status': await status(ad4mClient); break; - case 'me': await me(ad4mClient); break; - case 'getApps': await getApps(ad4mClient); break; - - default: - console.info(`Action "${argv.action}" is not defined on agent.`) - break; - } - - process.exit(); -}; - -async function generate(ad4mClient: Ad4mClient, password: string) { - const passphrase = password || readPassphrase(); - const agentStatus = await ad4mClient.agent.generate(passphrase); - prettify(agentStatus); -} - -async function lock(ad4mClient: Ad4mClient) { - // Passphrase not needed - const agentStatus = await ad4mClient.agent.lock(""); - prettify(agentStatus); -} - -async function unlock(ad4mClient: Ad4mClient, password: string) { - const passphrase = password || readPassphrase(); - const agentStatus = await ad4mClient.agent.unlock(passphrase); - prettify(agentStatus); -} - -async function status(ad4mClient: Ad4mClient) { - const agentStatus = await ad4mClient.agent.status(); - prettify(agentStatus); -} - -async function me(ad4mClient: Ad4mClient) { - const agent = await ad4mClient.agent.me(); - prettify(agent); -} - -async function getApps(ad4mClient: Ad4mClient) { - const apps = await ad4mClient.agent.getApps(); - prettify(apps); -} diff --git a/host/src/commands/client/expression.ts b/host/src/commands/client/expression.ts deleted file mode 100644 index 4900710b9..000000000 --- a/host/src/commands/client/expression.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Ad4mClient } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; - -export const command: string = 'expression [action]'; -export const desc: string = 'Expression related action'; - -type Options = CommonOptions & { - url?: string; - raw?: boolean; - content?: string; - address?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the expression', - choices: ['get', 'create'], - }) - .options({ - url: { type: "string", describe: 'url of the expression' }, - raw: { type: "boolean", describe: 'Flag to request raw data of the expression' }, - content: { type: "string", describe: 'Content when create the expression'}, - address: { type: "string", describe: 'Address of language used to create the expression' }, - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, url, raw, content, address, action } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'get': await get(ad4mClient, url, raw); break; - case 'create': await create(ad4mClient, content, address); break; - - default: - console.info(`Action "${argv.action}" is not defined on expression.`) - break; - } - - process.exit(); -}; - -async function get(ad4mClient: Ad4mClient, url: string, raw: boolean) { - if (raw && url) { - const expression = await ad4mClient.expression.getRaw(url); - prettify(expression) - return; - } - - if (url) { - const expression = await ad4mClient.expression.get(url); - prettify(expression) - return; - } - - console.info('Expression get action is missiong param '); -} - -async function create(ad4mClient: Ad4mClient, content: string, address: string) { - var parsedContent; - try { - parsedContent = JSON.parse(content); - } catch (e) { - parsedContent = content; - } - - if (content && address) { - const expression = await ad4mClient.expression.create(parsedContent, address); - prettify(expression) - return; - } - - console.info('Expression create action is missiong param
'); -} - diff --git a/host/src/commands/client/languages.ts b/host/src/commands/client/languages.ts deleted file mode 100644 index 1c2d64236..000000000 --- a/host/src/commands/client/languages.ts +++ /dev/null @@ -1,146 +0,0 @@ -import { Ad4mClient, LanguageMetaInput } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; -import ReadlineSync from 'readline-sync'; - -export const command: string = 'languages [action]'; -export const desc: string = 'Languages related action'; - -type Options = CommonOptions & { - address?: string; - filter?: string; - all?: boolean; - settings?: string; - templateData?: string; - path?: string; - meta?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the languages', - choices: ['get', 'writeSettings', 'applyTemplateAndPublish', 'publish', 'meta', 'source'], - }) - .options({ - address: { type: "string", describe: 'Address of the language' }, - filter: { type: "string", describe: 'Filter the languages when query' }, - all: { type: "boolean", describe: 'Flag to request all the languages' }, - settings: { type: "string", describe: 'Settings of the language to write' }, - templateData: { type: "string", describe: 'Apply template data when publish templated language' }, - path: { type: "string", describe: 'Refer to the language under this path' }, - meta: { type: "string", describe: 'metadata of the language' } - }); - -export const handler = async (argv: Arguments): Promise => { - const { - server, address, filter, all, settings, - templateData, path, meta, action - } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'get': await get(ad4mClient, address, filter, all); break; - case 'writeSettings': await writeSettings(ad4mClient, address, settings); break; - case 'applyTemplateAndPublish': await applyTemplateAndPublish(ad4mClient, address, templateData); break; - case 'publish': await publish(ad4mClient, path, meta); break - case 'meta': await getMeta(ad4mClient, address); break; - case 'source': await source(ad4mClient, address); break; - - default: - console.info(`Action "${argv.action}" is not defined on languages.`) - break; - } - - process.exit(); -}; - -async function get(ad4mClient: Ad4mClient, address: string, filter: string, all: boolean) { - if (address) { - const language = await ad4mClient.languages.byAddress(address); - prettify(language) - return; - } - if (filter) { - const languages = await ad4mClient.languages.byFilter(filter); - prettify(languages) - return; - } - if (all) { - const languages = (await ad4mClient.languages.all()).map(l => { - return { name: l.name, address: l.address }; - }) - prettify(languages) - return; - } - console.info('Language get action is missing param
//'); -} - -async function writeSettings(ad4mClient: Ad4mClient, address?: string, settings?: string) { - if (address == undefined || settings == undefined) { - console.info('Language writeSettings action is missing params
and '); - return; - } - const result = await ad4mClient.languages.writeSettings(address!, settings!); - prettify(result); -} - -async function applyTemplateAndPublish(ad4mClient: Ad4mClient, address?: string, templateData?: string) { - if (address == undefined || templateData == undefined) { - console.info('Language applyTemplateAndPublish action is missing params
and '); - return; - } - const result = await ad4mClient.languages.applyTemplateAndPublish(address, templateData); - prettify(result); -} - -async function publish(ad4mClient: Ad4mClient, path?: string, meta?: string) { - let languageMetaInput: LanguageMetaInput; - if (path == undefined) { - path = ReadlineSync.question("Path of the bundled file: "); - } - if (meta == undefined) { - const name = ReadlineSync.question("Name (must match name in source code): "); - const description = ReadlineSync.question("Description: "); - const templateParams = ReadlineSync.question("In case of a templateable Language, list of template parameters (comma separated): "); - const sourceLink = ReadlineSync.question("Link to source code / Github repo: "); - - languageMetaInput = new LanguageMetaInput(name, description); - - if(sourceLink.trim().length > 0) { - languageMetaInput.sourceCodeLink = sourceLink.trim() - } - - const params = templateParams.split(',').map(e => e.trim()) - if(params.length > 0) { - languageMetaInput.possibleTemplateParams = params - } - } else { - let languageMetaObj = JSON.parse(meta); - languageMetaInput = new LanguageMetaInput(languageMetaObj.name, languageMetaObj.description); - languageMetaInput.sourceCodeLink = languageMetaObj.sourceCodeLink.trim(); - languageMetaInput.possibleTemplateParams = languageMetaObj.possibleTemplateParams; - } - - const result = await ad4mClient.languages.publish(path, languageMetaInput); - prettify(result); -} - -async function getMeta(ad4mClient: Ad4mClient, address?: string) { - if (address) { - const result = await ad4mClient.languages.meta(address); - prettify(result); - return; - } - console.info('Language meta action is missing param
'); -} - -async function source(ad4mClient: Ad4mClient, address?: string) { - if (address) { - const result = await ad4mClient.languages.source(address); - console.log(result); - return; - } - console.info('Language source action is missing param
'); -} diff --git a/host/src/commands/client/neighbourhood.ts b/host/src/commands/client/neighbourhood.ts deleted file mode 100644 index 5c93233ea..000000000 --- a/host/src/commands/client/neighbourhood.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Ad4mClient, Link, LinkQuery } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; - -export const command: string = 'neighbourhood [action]'; -export const desc: string = 'Neighbourhood related action'; - -type Options = CommonOptions & { - uuid?: string; - address?: string; - meta?: string; - url?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the neighbourhood', - choices: ['publishFromPerspective', 'joinFromUrl'], - }) - .options({ - uuid: { type: "string", describe: 'Identifier of the perspective' }, - address: { type: "string", describe: 'Address of the link language used for the neighbourhood' }, - meta: { type: "string", describe: 'Metadata of the neighbourhood' }, - url: { type: "string", describe: 'URL of the neighbourhood'}, - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, uuid, address, meta, url, action } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'publishFromPerspective': await publishFromPerspective(ad4mClient, uuid, address, meta); break; - case 'joinFromUrl': await joinFromUrl(ad4mClient, url); break; - - default: - console.info(`Action "${argv.action}" is not defined on neighbourhood.`) - break; - } - - process.exit(); -}; - -async function publishFromPerspective(ad4mClient: Ad4mClient, uuid: string, address: string, meta: string) { - if (uuid && address && meta) { - const result = await ad4mClient.neighbourhood.publishFromPerspective(uuid, address, JSON.parse(meta)); - prettify(result) - return; - } - - console.info('Neighbourhood publishFromPerspective action is missiong param
'); -} - -async function joinFromUrl(ad4mClient: Ad4mClient, url: string) { - if (url) { - const result = await ad4mClient.neighbourhood.joinFromUrl(url); - prettify(result) - return; - } - - console.info('Neighbourhood joinFromUrl action is missiong param '); -} diff --git a/host/src/commands/client/perspective.ts b/host/src/commands/client/perspective.ts deleted file mode 100644 index d6a0197ee..000000000 --- a/host/src/commands/client/perspective.ts +++ /dev/null @@ -1,165 +0,0 @@ -import { Ad4mClient, Link, LinkQuery } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; - -export const command: string = 'perspective [action]'; -export const desc: string = 'Perspective related action'; - -type Options = CommonOptions & { - uuid?: string; - snapshot?: boolean; - all?: boolean; - query?: string; - name?: string; - link?: string; - newLink?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the perspective', - choices: ['get', 'add', 'update', 'remove', 'queryLinks', 'addLink', 'updateLink', 'removeLink', 'queryProlog'], - }) - .options({ - uuid: { type: "string", describe: 'Identifier of the perspective' }, - snapshot: { type: "boolean", describe: 'Flag to request the snapshot of the perspective' }, - all: { type: "boolean", describe: 'Flag to request all the perspectives' }, - query: { type: "string", describe: 'Conditions used when query links or prolog' }, - name: { type: "string", describe: 'Name of the perspective when adding a new one' }, - link: { type: "string", describe: 'Add, update or remove a link in the perspective' }, - newLink: { type: "string", describe: 'Use this new link to update an existing link' }, - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, uuid, snapshot, all, query, name, link, newLink, action } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'get': await get(ad4mClient, uuid, snapshot, all); break; - case 'add': await add(ad4mClient, name); break; - case 'update': await update(ad4mClient, uuid, name); break; - case 'remove': await remove(ad4mClient, uuid); break; - case 'queryLinks': await queryLinks(ad4mClient, uuid, query); break; - case 'addLink': await addLink(ad4mClient, uuid, link); break; - case 'updateLink': await updateLink(ad4mClient, uuid, link, newLink); break; - case 'removeLink': await removeLink(ad4mClient, uuid, link); break; - case 'queryProlog': await queryProlog(ad4mClient, uuid, query); break; - - default: - console.info(`Action "${argv.action}" is not defined on perspective.`) - break; - } - - process.exit(); -}; - -async function get(ad4mClient: Ad4mClient, uuid: string, snapshot: boolean, all: boolean) { - if (snapshot && uuid) { - const result = await ad4mClient.perspective.snapshotByUUID(uuid); - prettify(result) - return; - } - - if (uuid) { - const result = await ad4mClient.perspective.byUUID(uuid); - prettify({ name: result.name, uuid: result.uuid, sharedUrl: result.sharedUrl }) - return; - } - - if (all) { - const results = await ad4mClient.perspective.all(); - const formatted = results.map(proxy => { - return { - name: proxy.name, - uuid: proxy.uuid, - sharedUrl: proxy.sharedUrl - } - }); - prettify(formatted); - return; - } - - console.info('Perspective get action is missiong param '); -} - -async function add(ad4mClient: Ad4mClient, name: string) { - if (name) { - const result = await ad4mClient.perspective.add(name); - prettify({ name: result.name, uuid: result.uuid, sharedUrl: result.sharedUrl }) - return; - } - - console.info('Perspective add action is missiong param '); -} - -async function update(ad4mClient: Ad4mClient, uuid: string, name: string) { - if (uuid && name) { - const result = await ad4mClient.perspective.update(uuid, name); - prettify({ name: result.name, uuid: result.uuid, sharedUrl: result.sharedUrl }) - return; - } - - console.info('Perspective update action is missiong param '); -} - -async function remove(ad4mClient: Ad4mClient, uuid: string) { - if (uuid) { - const result = await ad4mClient.perspective.remove(uuid); - prettify(result) - return; - } - - console.info('Perspective remove action is missiong param '); -} - -async function queryLinks(ad4mClient: Ad4mClient, uuid: string, query: string) { - if (uuid && query) { - const links = await ad4mClient.perspective.queryLinks(uuid, new LinkQuery(JSON.parse(query))); - prettify(links) - return; - } - - console.info('Perspective queryLinks action is missiong param '); -} - -async function addLink(ad4mClient: Ad4mClient, uuid: string, link: string) { - if (uuid && link) { - const result = await ad4mClient.perspective.addLink(uuid, new Link(JSON.parse(link))); - prettify(result) - return; - } - - console.info('Perspective addLink action is missiong param '); -} - -async function updateLink(ad4mClient: Ad4mClient, uuid: string, link: string, newLink: string) { - if (uuid && link && newLink) { - const result = await ad4mClient.perspective.updateLink(uuid, JSON.parse(link), JSON.parse(newLink)); - prettify(result) - return; - } - - console.info('Perspective updateLink action is missiong param '); -} - -async function removeLink(ad4mClient: Ad4mClient, uuid: string, link: string) { - if (uuid && link) { - const result = await ad4mClient.perspective.removeLink(uuid, JSON.parse(link)); - prettify(result) - return; - } - - console.info('Perspective removeLink action is missiong param '); -} - -async function queryProlog(ad4mClient: Ad4mClient, uuid: string, query: string) { - if (uuid && query) { - const result = await ad4mClient.perspective.queryProlog(uuid, query); - prettify(result) - return; - } - - console.info('Perspective queryProlog action is missiong param '); -} diff --git a/host/src/commands/client/runtime.ts b/host/src/commands/client/runtime.ts deleted file mode 100644 index 0df07980b..000000000 --- a/host/src/commands/client/runtime.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { Ad4mClient, Link, LinkQuery } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; -import fs from 'fs'; - -export const command: string = 'runtime [action]'; -export const desc: string = 'Runtime related action'; - -type Options = CommonOptions & { - address?: string; - did?: string; - raw?: boolean; - path?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the runtime', - choices: [ - 'getTrustedAgents', 'addTrustedAgent', 'deleteTrustedAgent', - 'knownLinkLanguageTemplates', 'addKnownLinkLanguageTemplate', 'removeKnownLinkLanguageTemplate', - 'friends', 'addFriend', 'removeFriend', - 'hcAgentInfos', 'hcAddAgentInfos', - ], - }) - .options({ - address: { type: 'string', describe: 'Address of the known link language' }, - did: { type: 'string', describe: 'The did of one agent' }, - raw: { type: 'boolean', describe: 'Flag to request raw agent infos' }, - path: { type: 'string', describe: 'Resolve agent infos under this path' }, - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, address, did, raw, path, action } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'getTrustedAgents': await getTrustedAgents(ad4mClient); break; - case 'addTrustedAgent': await addTrustedAgent(ad4mClient, did); break; - case 'deleteTrustedAgent': await deleteTrustedAgent(ad4mClient, did); break; - - case 'knownLinkLanguageTemplates': await knownLinkLanguageTemplates(ad4mClient); break; - case 'addKnownLinkLanguageTemplate': await addKnownLinkLanguageTemplate(ad4mClient, address); break; - case 'removeKnownLinkLanguageTemplate': await removeKnownLinkLanguageTemplate(ad4mClient, address); break; - - case 'friends': await friends(ad4mClient); break; - case 'addFriend': await addFriend(ad4mClient, did); break; - case 'removeFriend': await removeFriend(ad4mClient, did); break; - - case 'hcAgentInfos': await hcAgentInfos(ad4mClient, raw); break; - case 'hcAddAgentInfos': await hcAddAgentInfos(ad4mClient, path); break; - - default: - console.info(`Action "${argv.action}" is not defined on runtime.`) - break; - } - - process.exit(); -}; - -async function getTrustedAgents(ad4mClient: Ad4mClient) { - const result = await ad4mClient.runtime.getTrustedAgents(); - prettify(result); -} - -async function addTrustedAgent(ad4mClient: Ad4mClient, did: string) { - if (did) { - const result = await ad4mClient.runtime.addTrustedAgents([did]); - prettify(result); - return; - } - - console.info('Runtime addTrustedAgent action is missiong param '); -} - -async function deleteTrustedAgent(ad4mClient: Ad4mClient, did: string) { - if (did) { - const result = await ad4mClient.runtime.deleteTrustedAgents([did]); - prettify(result); - return; - } - - console.info('Runtime deleteTrustedAgent action is missiong param '); -} - -async function knownLinkLanguageTemplates(ad4mClient: Ad4mClient) { - const result = await ad4mClient.runtime.knownLinkLanguageTemplates(); - prettify(result); -} - -async function addKnownLinkLanguageTemplate(ad4mClient: Ad4mClient, address: string) { - if (address) { - const result = await ad4mClient.runtime.addKnownLinkLanguageTemplates([address]); - prettify(result); - return; - } - - console.info('Runtime addKnownLinkLanguageTemplate action is missiong param
'); -} - -async function removeKnownLinkLanguageTemplate(ad4mClient: Ad4mClient, address: string) { - if (address) { - const result = await ad4mClient.runtime.removeKnownLinkLanguageTemplates([address]); - prettify(result); - return; - } - - console.info('Runtime removeKnownLinkLanguageTemplate action is missiong param
'); -} - -async function friends(ad4mClient: Ad4mClient) { - const result = await ad4mClient.runtime.friends(); - prettify(result); -} - -async function addFriend(ad4mClient: Ad4mClient, did: string) { - if (did) { - const result = await ad4mClient.runtime.addFriends([did]); - prettify(result); - return; - } - - console.info('Runtime addFriend action is missiong param '); -} - -async function removeFriend(ad4mClient: Ad4mClient, did: string) { - if (did) { - const result = await ad4mClient.runtime.removeFriends([did]); - prettify(result); - return; - } - - console.info('Runtime removeFriend action is missiong param '); -} - -async function hcAgentInfos(ad4mClient: Ad4mClient, raw: boolean) { - const agentInfos = await ad4mClient.runtime.hcAgentInfos(); - - if (raw) { - prettify(agentInfos); - return; - } - - //@ts-ignore - const agentInfosFormatted = JSON.parse(agentInfos).map(info => { - return { - agent: Buffer.from(info.agent.data), - signature: Buffer.from(info.signature.data), - agent_info: Buffer.from(info.agent_info.data) - } - }) - agentInfosFormatted.forEach(info => console.log("\n", info.agent_info.toString(), "\n")) -} - -async function hcAddAgentInfos(ad4mClient: Ad4mClient, path: string) { - if (path) { - const agentInfos = fs.readFileSync(path).toString(); - const result = await ad4mClient.runtime.hcAddAgentInfos(agentInfos); - prettify(result); - return; - } - - console.info('Runtime hcAddAgentInfos action is missiong param '); -} diff --git a/host/src/commands/client/util.ts b/host/src/commands/client/util.ts deleted file mode 100644 index 9b6cde474..000000000 --- a/host/src/commands/client/util.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Ad4mClient } from '@perspect3vism/ad4m'; -import { ApolloClient, InMemoryCache } from '@apollo/client/core'; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; -import Websocket from "ws"; -import ReadlineSync from 'readline-sync'; -import util from 'util'; - -export type CommonOptions = { - server?: string; - verbose?: boolean; -} - -export function buildAd4mClient(server: string): Ad4mClient { - const wsLink = new GraphQLWsLink(createClient({ - url: server, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: "" - } - } - }, - })); - const apolloClient = new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); - - return new Ad4mClient(apolloClient); -} - -export function readPassphrase(): string { - const password = ReadlineSync.question("Password: ", { hideEchoBack: true }); - return password; -} - -export function prettify(obj) { - console.info("=>\n", util.inspect(obj, {showHidden: false, depth: null})); -} diff --git a/host/src/commands/init.ts b/host/src/commands/init.ts deleted file mode 100644 index dd04963f6..000000000 --- a/host/src/commands/init.ts +++ /dev/null @@ -1,171 +0,0 @@ -/** - * Copy binaries from pkg to os file system, https://github.com/vercel/pkg/issues/342 - */ - -import type { Arguments, Argv } from 'yargs'; -import path from 'path'; -import fs from 'fs-extra'; -// @ts-ignore -import utils from 'util'; -import { CONFIG, getConfig, getAd4mHostVersion } from '../utils/config'; -import ReadlineSync from 'readline-sync'; -import os from 'os' -import { ad4mDataDirectory } from '../ad4mDataDirectory'; - -const copyFile = utils.promisify(fs.copyFile); -const copyDir = utils.promisify(fs.copy) -const chmod = utils.promisify(fs.chmod); - -async function copy(source, target) { - //@ts-ignore - if (process.pkg) { - // use stream pipe to reduce memory usage - // when loading a large file into memory. - return new Promise((resolve, reject) => { - let readStream = fs.createReadStream(source); - let writeStream = fs.createWriteStream(target); - readStream.pipe(writeStream); - readStream.on('error', reject); - writeStream.on('finish', resolve); - writeStream.on('error', reject); - }); - } else { - await copyFile(source, target); - } -} - -type Options = { - hcOnly?: boolean; - dataPath?: string; - networkBootstrapSeed?: string; - overrideConfig?: boolean; -}; - -export const command: string = 'init'; -export const desc: string = 'Init ad4m service with prebuild binary.'; - -export const builder = (yargs: Argv) => - yargs - .options({ - hcOnly: { type: "boolean" }, - dataPath: { - type: 'string', - describe: 'Name of directory to store ad4m data in the systems app data path', - alias: 'rp' - }, - networkBootstrapSeed: { - type: 'string', - describe: 'Path to the seed file', - alias: 'nbf' - }, - overrideConfig: { - type: 'boolean', - describe: 'Override the existing config file', - }, - }); - -export const handler = async (argv: Arguments): Promise => { - const { hcOnly, dataPath = '', networkBootstrapSeed, overrideConfig } = argv; - const appDataPath = ad4mDataDirectory(dataPath) - - //Check the ad4m data directory exists - if (!fs.existsSync(appDataPath)) { - //Create the data path - fs.mkdirSync(appDataPath, { recursive: true }) - - //Create the last-seen-version file - const currentVersion = getAd4mHostVersion(); - const lastSeenFile = path.join(appDataPath, 'last-seen-version'); - fs.writeFileSync(lastSeenFile, currentVersion); - } - - const binaryPath = path.join(appDataPath, 'binary') - - if(!fs.existsSync(binaryPath)) { - fs.mkdirSync(binaryPath, { recursive: true }) - } - - const platform = os.platform(); - const holochain = platform === 'win32' ? 'holochain.exe' : 'holochain'; - const hc = platform === 'win32' ? 'hc.exe' : 'hc'; - - if(!hcOnly) { - const holochainSource = path.join(__dirname, `../temp/binary/${holochain}`); - const holochaintarget = path.join(binaryPath, holochain); - await copy(holochainSource, holochaintarget); - await chmod(holochaintarget, '755'); - } - - const hcSource = path.join(__dirname, `../temp/binary/${hc}`); - const hcTarget = path.join(binaryPath, hc); - await copy(hcSource, hcTarget); - await chmod(hcTarget, '755'); - - await getSeedConfig(dataPath, networkBootstrapSeed, overrideConfig); - - const swiplSource = path.join(__dirname, `../temp/swipl`); - const swiplTarget = path.join(appDataPath, 'swipl') - await copyDir(swiplSource, swiplTarget) - - process.exit(); -}; - -async function getSeedFilePath(dataPath?: string, networkBootstrapSeed?: string) { - const appDataPath = ad4mDataDirectory(dataPath) - - if (!networkBootstrapSeed) { - console.log("No bootstrap seed supplied... using the one found in local files"); - const targetSeedPath = path.join(appDataPath, 'mainnet_seed.seed'); - await copy(path.join(__dirname, `../mainnet_seed.json`), targetSeedPath); - return targetSeedPath; - } else { - return path.isAbsolute(networkBootstrapSeed) ? networkBootstrapSeed: path.join(__dirname, networkBootstrapSeed); - } -} - -async function getSeedConfig(dataPath?: string, networkBootstrapSeed?: string, override?: boolean) { - let seedPath; - let configDataPath; - let globalConfig; - - try { - globalConfig = getConfig(dataPath); - - if (networkBootstrapSeed) { - let decision; - - if (override === undefined) { - decision = ReadlineSync.question("There is a already a config present, do you want to override it? (Y|N): "); - } - - if (decision === 'Y' || decision === 'y' || override) { - configDataPath = dataPath; - seedPath = await getSeedFilePath(dataPath, networkBootstrapSeed); - } - } else { - if (!globalConfig[dataPath]) { - configDataPath = dataPath; - seedPath = await getSeedFilePath(dataPath, networkBootstrapSeed) - } else { - seedPath = globalConfig[dataPath].seedPath; - configDataPath = globalConfig[dataPath].dataPath; - } - } - - } catch (e) { - console.log(e) - configDataPath = dataPath; - seedPath = getSeedFilePath(dataPath, networkBootstrapSeed) - } - - const config = { - dataPath: configDataPath, - seedPath - } - - const dest = path.join(ad4mDataDirectory(dataPath), CONFIG); - - globalConfig[configDataPath] = config; - - fs.writeFileSync(dest, JSON.stringify(globalConfig)) -} \ No newline at end of file diff --git a/host/src/commands/prepare.ts b/host/src/commands/prepare.ts deleted file mode 100644 index 8531ea757..000000000 --- a/host/src/commands/prepare.ts +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Copy binaries from pkg to os file system, https://github.com/vercel/pkg/issues/342 - */ - -import type { Arguments, Argv } from 'yargs'; -import path from 'path'; -import fs from 'fs-extra'; -import { getAd4mHostVersion } from '../utils/config'; -import oldestSupportedVersion from '../../oldestSupportedVersion'; -import { ad4mDataDirectory } from '../ad4mDataDirectory'; -import semver from "semver"; - -type Options = { - dataPath?: string; -}; - -export const command: string = 'prepare'; -export const desc: string = 'Check the AD4M data directory and remove any old data from previous versions if required'; - -export const builder = (yargs: Argv) => - yargs - .options({ - dataPath: { - type: 'string', - describe: 'Name of directory to store ad4m data in the systems app data path', - alias: 'rp' - }, - }); - -function cleanAd4mData(dataPath: string, shouldClearState: boolean) { - const appDataPath = ad4mDataDirectory(dataPath); - if (fs.existsSync(appDataPath)) { - // Path to our binaries - const binaryPath = path.join(appDataPath, 'binary'); - // Path to our config - const configPath = path.join(appDataPath, 'ad4m-host-config.json'); - // Path to bootstrap seed - const bootstrapSeedPath = path.join(appDataPath, 'mainnet_seed.json'); - // Path to holochain data - const holochainDataPath = path.join(appDataPath, 'ad4m', 'h'); - // Path to languages - const languagesPath = path.join(appDataPath, 'ad4m', 'languages'); - - //Delete all the data which may conflict with the new version - fs.removeSync(binaryPath); - fs.removeSync(configPath); - fs.removeSync(bootstrapSeedPath); - fs.removeSync(holochainDataPath); - fs.removeSync(languagesPath); - - if (shouldClearState) { - const dbPath = path.join(appDataPath, 'ad4m', 'data', 'db.json'); - fs.removeSync(dbPath); - const languagesPath = path.join(appDataPath, 'ad4m', 'languages'); - fs.removeSync(languagesPath); - const perspectivePath = path.join(appDataPath, 'ad4m', 'perspectives.json'); - fs.removeSync(perspectivePath); - } - } -} - -export const handler = (argv: Arguments): void => { - const {dataPath = ''} = argv; - const appDataPath = ad4mDataDirectory(dataPath); - - if (!fs.existsSync(appDataPath)) { - console.log("No ad4m data directory found, skipping prepare command"); - // The ad4mDataDirectory is not created yet, dont create here, but instead have it be created in init.ts - return; - } - - const lastSeenFile = path.join(appDataPath, 'last-seen-version'); - if (!fs.existsSync(lastSeenFile)) { - // No last seen version file, lets clean their state. Note we are assuming the first time this added to a release - // we wish to clear the stat eof an agent - console.log("Not last seen version file, lets clean their state"); - cleanAd4mData(dataPath, true); - fs.writeFileSync(lastSeenFile, getAd4mHostVersion()); - return; - } - - const lastSeenVersion = fs.readFileSync(lastSeenFile, { encoding: 'utf-8' }); - console.log("Current last seen version is", lastSeenVersion); - const migratonInfo = oldestSupportedVersion(); - if (!semver.gte(lastSeenVersion, migratonInfo.version)) { - // Agents old ad4m version is too old, lets clean their state - console.log("Agents old ad4m version is too old, lets clean their state"); - cleanAd4mData(dataPath, migratonInfo.shouldClearState); - fs.writeFileSync(lastSeenFile, getAd4mHostVersion()); - return; - } - - process.exit(); -}; \ No newline at end of file diff --git a/host/src/commands/serve.ts b/host/src/commands/serve.ts deleted file mode 100644 index 96fda00b0..000000000 --- a/host/src/commands/serve.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { Arguments, Argv } from 'yargs'; -// @ts-ignore -import { init } from "@perspect3vism/ad4m-executor"; -import path from 'path'; -import fs from 'fs'; -// @ts-ignore -import getPort from 'get-port'; -import { getConfig } from '../utils/config'; -import { ad4mDataDirectory } from '../ad4mDataDirectory'; -import { homedir } from 'os'; - - -type Options = { - port?: number; - ipfsPort?: number; - hcAdminPort?: number; - hcAppPort?: number; - connectHolochain?: boolean; - languageLanguageOnly?: boolean; - bootstrapLanguage?: string; - bootstrapPerspective?: string; - appLangAliases?: string; - dataPath?: string; - reqCredential?: string; -}; - -export const command: string = 'serve'; -export const desc: string = 'Serve ad4m service at given port'; - -export const builder = (yargs: Argv) => - yargs - .options({ - port: { - type: 'number', - describe: 'Use this port to run ad4m GraphQL service', - default: 4000, - alias: 'p' - }, - ipfsPort: { - type: 'number', - describe: 'Use this port to bind IPFS to', - default: 14000, - }, - hcAdminPort: { - type: 'number', - describe: 'Admin port of holochain conductor' - }, - hcAppPort: { - type: 'number', - describe: 'Port used by hApp' - }, - connectHolochain: { - type: "boolean", - describe: 'Flag to connect existing running holochain process' - }, - dataPath: { - type: 'string', - describe: 'Name of directory (within the systems app data path) to store ad4m data', - alias: 'rp' - }, - languageLanguageOnly: { - type: 'boolean', - describe: 'Should the ad4m-executor be started with only the languageLanguage, so it can be used for publish other system languages', - default: false, - alias: 'll' - }, - bootstrapLanguage: { - type: 'string', - describe: 'Path to Bootstrap languages json file (list of languages)', - }, - bootstrapPerspective: { - type: 'string', - describe: 'Path to Bootstrap perspectives json file (list of perspectives)' - }, - appLangAliases: { - type: 'string', - describe: 'Language aliases to be loaded into ad4m-executor', - default: '{}' - }, - reqCredential: { - type: 'string', - describe: 'The credential for an admin client to override capability checks', - } - }); - -export const handler = async (argv: Arguments): Promise => { - const { - port, ipfsPort, hcAdminPort, hcAppPort, connectHolochain, languageLanguageOnly, - dataPath, bootstrapLanguage, bootstrapPerspective, appLangAliases, - reqCredential - } = argv; - - const globalConfig = getConfig(dataPath); - - if(!globalConfig[dataPath || '']) { - throw Error('No config found, please run ad4m-host init with the dataPath & networkBootstrapSeed params') - } - - const { seedPath } = globalConfig[dataPath || '']; - - let appDataPath = ad4mDataDirectory(dataPath) - - const binaryPath = path.join(appDataPath, 'binary'); - const swiplHomePath = (process.platform == "win32" ? path.join(appDataPath, 'swipl/') : path.join(appDataPath, 'swipl/lib/swipl/')) - const swiplPath = path.join(appDataPath, 'swipl/bin/swipl'); - const gqlPort = await getPort({ port }) - const ipfsRepoPath = path.join(appDataPath, 'ipfs') - - if (!fs.existsSync(appDataPath)) { - fs.mkdirSync(appDataPath); - } - - const bLanguage = bootstrapLanguage ? await import(path.isAbsolute(bootstrapLanguage) ? bootstrapLanguage: path.join(__dirname, bootstrapLanguage)) : []; - - const bPerspective = bootstrapPerspective ? await import(path.isAbsolute(bootstrapPerspective) ? bootstrapPerspective: path.join(__dirname, bootstrapPerspective)) : []; - - const config = { - appDataPath: appDataPath, - resourcePath: binaryPath, - networkBootstrapSeed: seedPath, - languageLanguageOnly: languageLanguageOnly, - bootstrapFixtures: { - languages: [...bLanguage], - perspectives: [...bPerspective], - }, - appLangAliases: JSON.parse(appLangAliases), - mocks: false, - gqlPort, - hcPortAdmin: hcAdminPort, - hcPortApp: hcAppPort, - ipfsRepoPath, - ipfsSwarmPort: ipfsPort, - connectHolochain, - reqCredential, - swiplPath, - swiplHomePath - }; - - await init(config); -}; diff --git a/host/src/utils/config.ts b/host/src/utils/config.ts deleted file mode 100644 index 5533dc7f8..000000000 --- a/host/src/utils/config.ts +++ /dev/null @@ -1,36 +0,0 @@ -import path from "path"; -import fs from 'fs'; -import { ad4mDataDirectory } from "../ad4mDataDirectory"; - -export const CONFIG = 'ad4m-host-config.json'; - -type GetConfigReturntype = { - seedPath?: string; - dataPath?: string; -} - -export function getConfig(dataPath = ''): GetConfigReturntype { - try { - const ad4mHostConfig = path.join(ad4mDataDirectory(dataPath), CONFIG); - - const config = fs.readFileSync(ad4mHostConfig, { encoding: 'utf-8' }) - - const parsed = JSON.parse(config); - - return parsed; - } catch (e) { - const dest = path.join(ad4mDataDirectory(dataPath), CONFIG); - - fs.writeFileSync(dest, JSON.stringify({})) - - return {} - } -} - -export function getAd4mHostVersion(): string { - const packageJson = path.join(__dirname, `../package.json`); - const packageJsonParsed = JSON.parse(fs.readFileSync(packageJson, { encoding: 'utf-8' })); - const version = packageJsonParsed["version"]; - console.log("Got ad4mHost version: ", version); - return version; -} diff --git a/host/tsconfig.json b/host/tsconfig.json deleted file mode 100644 index 013cd986d..000000000 --- a/host/tsconfig.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Projects */ - // "incremental": true, /* Enable incremental compilation */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "ES2020", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - - /* Modules */ - "module": "ES2020", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./build", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - "noImplicitAny": false, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - "strictNullChecks": false, /* When type checking, take into account `null` and `undefined`. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } -} diff --git a/package.json b/package.json index b4f644cd3..14676892a 100644 --- a/package.json +++ b/package.json @@ -1,51 +1,56 @@ { "name": "ad4m-monorepo", - "version": "0.5.1", + "version": "0.6.0", "workspaces": [ "core", "docs", "executor", - "host", "ui", "connect", "test-runner", - "bootstrap-languages/*" + "bootstrap-languages/*", + "tests/js", + "rust-executor", + "cli", + "dapp" ], "private": true, "scripts": { - "build": "turbo run build", + "build": "turbo run build-languages --concurrency=1 && turbo run build-libs", + "build-no-cache": "turbo run build-languages --concurrency=1 --force && turbo run build-libs --force", "build-libs": "turbo run build-libs", "dev": "turbo run dev --parallel", "serve": "turbo run serve", "lint": "turbo run lint", "test": "turbo run test --concurrency=1", - "test:windows": "turbo run test:windows", - "fetch-binaries": "run-script-os", - "fetch-binaries:macos": "./download-binaries-macos.sh", - "fetch-binaries:windows": "powershell.exe -ExecutionPolicy Bypass -File download-binaries-windows.ps1", - "fetch-binaries:linux": "./download-binaries-linux.sh", - "package-macos": "turbo run package-macos", - "package-windows": "turbo run package-windows", - "package-linux": "turbo run package-linux", - "build-macos": "turbo run build-macos", - "build-windows": "turbo run build-windows", - "build-linux": "turbo run build-linux", - "build-languages": "turbo run build-languages", + "test:macos": "turbo run test:macos --concurrency=1", + "test:linux": "turbo run test:linux --concurrency=1", + "test:windows": "turbo run test:windows --concurrency=1", + "package-ad4m": "turbo run package-ad4m", + "build-languages": "turbo run build-languages --concurrency=1", + "docs": "jsdoc -c jsdoc.json", + "docs:api:jsdoc2md": "jsdoc2md --configure jsdoc.json --partial docs/header.hbs --global-index-format none --files src/**/* > docs-src/api.md", + "docs:api:tsconcat": "concat-md --decrease-title-levels --dir-name-as-title docs-src/typedoc > docs-src/api.md", + "docs:api:typedoc": "typedoc --plugin typedoc-plugin-markdown --options typedoc.json --tsconfig core/tsconfig.json --entryPointStrategy expand core/src", + "docs:api": "yarn run docs:api:typedoc && yarn run docs:api:tsconcat", + "docs:prepare": "honkit init docs-src", + "docs:build": "yarn run docs:api && honkit build docs-src", + "docs:serve": "honkit serve docs-src", + "docs:clean": "rimraf docs-src/_book", + "docs:cp": "cp -r docs-src/_book/ docs/", "build-all-macos": "turbo run build-all-macos", "build-all-linux": "turbo run build-all-linux", "build-all-windows": "turbo run build-all-windows", - "docs:api": "typedoc --plugin typedoc-plugin-markdown --options typedoc.json --tsconfig core/tsconfig.json core/src", - "docs:build": "yarn run docs:api && cd docs && yarn build", "patchpackage": "patch-package", "set-version": "node setVersion.js", - "patch-package": "^6.5.0", - "postinstall": "yarn run fetch-binaries" + "patch-package": "^6.5.0" }, "devDependencies": { "@changesets/cli": "^2.25.2", "eslint-config-custom": "*", "prettier": "latest", - "turbo": "latest" + "turbo": "latest", + "readline-sync": "1.4.10" }, "engines": { "node": ">=16.0.0" diff --git a/patches/@achingbrain+ssdp+4.0.1.patch b/patches/@achingbrain+ssdp+4.0.4.patch similarity index 51% rename from patches/@achingbrain+ssdp+4.0.1.patch rename to patches/@achingbrain+ssdp+4.0.4.patch index 9dcbad97d..76f8d5feb 100644 --- a/patches/@achingbrain+ssdp+4.0.1.patch +++ b/patches/@achingbrain+ssdp+4.0.4.patch @@ -1,19 +1,21 @@ diff --git a/node_modules/@achingbrain/ssdp/dist/src/default-ssdp-options.js b/node_modules/@achingbrain/ssdp/dist/src/default-ssdp-options.js -index bcce6af..11acfe6 100644 +index 41ac65e..8c63670 100644 --- a/node_modules/@achingbrain/ssdp/dist/src/default-ssdp-options.js +++ b/node_modules/@achingbrain/ssdp/dist/src/default-ssdp-options.js -@@ -3,8 +3,12 @@ import { defaultSocketOptions } from './default-socket-options.js'; - import util from 'util'; - import { createRequire } from 'module'; +@@ -1,9 +1,13 @@ + import { webcrypto as crypto } from 'crypto'; // remove when having crypto global +-import { createRequire } from 'module'; ++// import { createRequire } from 'module'; import mergeOptions from 'merge-options'; + import { defaultSocketOptions } from './default-socket-options.js'; -const req = createRequire(import.meta.url); --const pkg = req('../../package.json'); +-const { name, version } = req('../../package.json'); +// const req = createRequire(import.meta.url); -+// const pkg = req('../../package.json'); -+const pkg = { ++// const { name, version } = req('../../package.json'); ++const {name, version} = { + name: "@achingbrain/ssdp", + version: "4.0.1" -+ }; - const DEFAULT_SSDP_SIGNATURE = util.format('node.js/%s UPnP/1.1 %s/%s', process.version.substring(1), pkg.name, pkg.version); ++}; + const DEFAULT_SSDP_SIGNATURE = `node.js/${process.version.substring(1)} UPnP/1.1 ${name}/${version}`; export function defaultSsdpOptions(options) { return mergeOptions(options ?? {}, { diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 000000000..4d89cdac7 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,99 @@ +import svelte from 'rollup-plugin-svelte'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +import livereload from 'rollup-plugin-livereload'; +import { terser } from 'rollup-plugin-terser'; +import postcss from "rollup-plugin-postcss"; +import json from "@rollup/plugin-json"; +import nodePolyfills from 'rollup-plugin-node-polyfills'; +import injectProcessEnv from 'rollup-plugin-inject-process-env'; + +const production = !process.env.ROLLUP_WATCH; + +function serve() { + let server; + + function toExit() { + if (server) server.kill(0); + } + + return { + writeBundle() { + if (server) return; + server = require('child_process').spawn('npm', ['run', 'dapp-start', '--', '--dev'], { + stdio: ['ignore', 'inherit', 'inherit'], + shell: true + }); + + process.on('SIGTERM', toExit); + process.on('exit', toExit); + } + }; +} + +export default { + input: 'dapp/main.js', + output: { + sourcemap: true, + format: 'iife', + name: 'app', + file: 'public/build/bundle.js' + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + css: css => { + css.write('bundle.css'); + } + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'], + preferBuiltins: false, + }), + commonjs(), + + postcss({ + extract: false, + minimize: true, + use: [ + ['sass', { + includePaths: [ + './src/theme', + './node_modules' + ] + }] + ] + }), + + json(), + nodePolyfills(), + injectProcessEnv({ + NODE_ENV: process.env.NODE_ENV + }), + + // In dev mode, call `npm run start` once + // the bundle has been generated + !production && serve(), + + // Watch the `public` directory and refresh the + // browser on changes when not in production + !production && livereload('public'), + + // If we're building for production (npm run build + // instead of npm run dev), minify + production && terser() + ], + watch: { + clearScreen: false + } +}; diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index c4a966717..7e4ca8c31 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.5.1" +version = "0.6.0" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" @@ -14,20 +14,17 @@ readme = "README.md" [dependencies] anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } -graphql_client = "0.10.0" +graphql_client = "0.12.0" serde = "1.0.147" -reqwest = { version = "0.11.12", features = ["blocking", "json"] } +reqwest = { version = "0.11.18", features = ["blocking", "json", "native-tls"] } futures = "0.3" -tokio = { version = "1", features = ["full"] } +tokio = { version = "1.25.0", features = ["full"] } rustyline = "10" dirs = "4" chrono = { version = "0.4", features = ["serde"] } serde_json = "1" -graphql-ws-client = { version = "0.2", default-features = false, features = ["async-tungstenite", "cynic", "graphql_client"] } -async-tungstenite = { version = "0.16.1", features = ["async-std-runtime", "tokio-runtime"] } -cynic = { version = "1.0" } -async-std = { version = "1.9", features = ["attributes"] } -async_executors = { version = "0.5", features = ["async_std"] } +graphql-ws-client = { version = "0.4", default-features = false, features = ["async-tungstenite", "graphql_client"] } +async-tungstenite = { version = "0.20.0", features = ["tokio-runtime"] } urlencoding = "2" unicode-width = "0.1" rand = "0.8" diff --git a/rust-client/src/agent.gql b/rust-client/src/agent.gql index e387d70e7..f34b9d51e 100644 --- a/rust-client/src/agent.gql +++ b/rust-client/src/agent.gql @@ -159,3 +159,52 @@ mutation SignMessage($message: String!) { publicKey } } + +mutation AddEntanglementProofs($proofs: [EntanglementProofInput!]!) { + agentAddEntanglementProofs(proofs: $proofs) { + did + didSigningKeyId + deviceKeyType + deviceKey + deviceKeySignedByDid + didSignedByDeviceKey + } +} + +mutation DeleteEntanglementProofs($proofs: [EntanglementProofInput!]!) { + agentDeleteEntanglementProofs(proofs: $proofs) { + did + didSigningKeyId + deviceKeyType + deviceKey + deviceKeySignedByDid + didSignedByDeviceKey + } +} + +mutation EntanglementProofPreFlight( + $deviceKey: String! + $deviceKeyType: String! +) { + agentEntanglementProofPreFlight( + deviceKey: $deviceKey + deviceKeyType: $deviceKeyType + ) { + did + didSigningKeyId + deviceKeyType + deviceKey + deviceKeySignedByDid + didSignedByDeviceKey + } +} + +subscription SubscriptionAgentStatusChanged { + agentStatusChanged { + did + didDocument + error + isInitialized + isUnlocked + } +} diff --git a/rust-client/src/agent.rs b/rust-client/src/agent.rs index 2d0c0dba2..3ec996382 100644 --- a/rust-client/src/agent.rs +++ b/rust-client/src/agent.rs @@ -1,8 +1,14 @@ use std::sync::Arc; -use crate::{types::Capability, util::query, ClientInfo}; +use crate::{ + types::Capability, + util::{create_websocket_client, query}, + ClientInfo, +}; use anyhow::{anyhow, Context, Result}; +use futures::StreamExt; use graphql_client::{GraphQLQuery, Response}; +use graphql_ws_client::graphql::StreamingOperation; #[derive(GraphQLQuery)] #[graphql( @@ -23,11 +29,11 @@ pub async fn request_capability( ) -> Result { let query = RequestCapability::build_query(request_capability::Variables { auth_info: request_capability::AuthInfoInput { - appName: app_name, - appDesc: app_desc, - appDomain: app_domain, - appUrl: app_url, - appIconPath: app_icon_path, + app_name: app_name, + app_desc: app_desc, + app_domain: app_domain, + app_url: app_url, + app_icon_path: app_icon_path, capabilities: capabilities.map(|val| val.into_iter().map(|val| val.into()).collect()), }, }); @@ -296,6 +302,120 @@ pub async fn sign_message( Ok(response.agent_sign_message) } +#[derive(GraphQLQuery, Debug, Clone)] +#[graphql( + schema_path = "schema.gql", + query_path = "src/agent.gql", + response_derives = "Debug" +)] +pub struct AddEntanglementProofs; + +pub async fn add_entanglement_proofs( + executor_url: String, + cap_token: String, + proofs: Vec, +) -> Result { + query( + executor_url, + cap_token, + AddEntanglementProofs::build_query(add_entanglement_proofs::Variables { proofs }), + ) + .await + .with_context(|| "Failed to run runtime->add-trusted-agents query") +} + +#[derive(GraphQLQuery, Debug, Clone)] +#[graphql( + schema_path = "schema.gql", + query_path = "src/agent.gql", + response_derives = "Debug" +)] +pub struct DeleteEntanglementProofs; + +pub async fn delete_entanglement_proofs( + executor_url: String, + cap_token: String, + proofs: Vec, +) -> Result { + query( + executor_url, + cap_token, + DeleteEntanglementProofs::build_query(delete_entanglement_proofs::Variables { proofs }), + ) + .await + .with_context(|| "Failed to run runtime->add-trusted-agents query") +} + +#[derive(GraphQLQuery, Debug, Clone)] +#[graphql( + schema_path = "schema.gql", + query_path = "src/agent.gql", + response_derives = "Debug" +)] +pub struct EntanglementProofPreFlight; + +pub async fn entanglement_proof_pre_flight( + executor_url: String, + cap_token: String, + device_key: String, + device_key_type: String, +) -> Result { + query( + executor_url, + cap_token, + EntanglementProofPreFlight::build_query(entanglement_proof_pre_flight::Variables { + device_key, + device_key_type, + }), + ) + .await + .with_context(|| "Failed to run runtime->add-trusted-agents query") +} + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "schema.gql", + query_path = "src/agent.gql", + response_derives = "Debug" +)] +pub struct SubscriptionAgentStatusChanged; + +pub async fn watch(executor_url: String, cap_token: String) -> Result<()> { + let mut client = create_websocket_client(executor_url, cap_token) + .await + .with_context(|| "Failed to create websocket client")?; + + println!("Successfully created websocket client"); + let mut stream = client + .streaming_operation({ + StreamingOperation::::new( + subscription_agent_status_changed::Variables {}, + ) + }) + .await + .with_context(|| "Failed to subscribe to agentStatusChanged")?; + + println!("Successfully subscribed agentStatusChanged",); + println!("Waiting for events..."); + + while let Some(item) = stream.next().await { + match item { + Ok(response) => { + if let Some(data) = response.data.and_then(|data| data.agent_status_changed) { + println!("Received agentStatusChanged: {:?}", data); + } + } + Err(e) => { + println!("Received Error: {:?}", e); + } + } + } + + println!("Stream ended. Exiting..."); + + Ok(()) +} + pub struct AgentClient { info: Arc, } @@ -389,4 +509,46 @@ impl AgentClient { ) .await } + + pub async fn add_entanglement_proofs( + &self, + proofs: Vec, + ) -> Result { + add_entanglement_proofs( + self.info.executor_url.clone(), + self.info.cap_token.clone(), + proofs, + ) + .await + } + + pub async fn delete_entanglement_proofs( + &self, + proofs: Vec, + ) -> Result { + delete_entanglement_proofs( + self.info.executor_url.clone(), + self.info.cap_token.clone(), + proofs, + ) + .await + } + + pub async fn entanglement_proof_pre_flight( + &self, + device_key: String, + device_key_type: String, + ) -> Result { + entanglement_proof_pre_flight( + self.info.executor_url.clone(), + self.info.cap_token.clone(), + device_key, + device_key_type, + ) + .await + } + + pub async fn watch(&self) -> Result<()> { + watch(self.info.executor_url.clone(), self.info.cap_token.clone()).await + } } diff --git a/rust-client/src/languages.rs b/rust-client/src/languages.rs index c8a91a075..85d567b8e 100644 --- a/rust-client/src/languages.rs +++ b/rust-client/src/languages.rs @@ -152,8 +152,8 @@ pub async fn publish( language_meta: publish::LanguageMetaInput { name, description, - possibleTemplateParams: possible_template_params, - sourceCodeLink: source_code_link, + possible_template_params: possible_template_params, + source_code_link: source_code_link, }, }), ) diff --git a/rust-client/src/perspectives.rs b/rust-client/src/perspectives.rs index f6bde7ba5..a0ab33a8e 100644 --- a/rust-client/src/perspectives.rs +++ b/rust-client/src/perspectives.rs @@ -6,6 +6,7 @@ use crate::util::{create_websocket_client, query, query_raw}; use crate::ClientInfo; use anyhow::{anyhow, Context, Result}; use chrono::naive::NaiveDateTime; +use futures::StreamExt; use graphql_client::{GraphQLQuery, Response}; use graphql_ws_client::graphql::StreamingOperation; use serde_json::Value; @@ -184,8 +185,8 @@ pub async fn query_links( source, target, predicate, - fromDate: from_date, - untilDate: until_date, + from_date: from_date, + until_date: until_date, limit, }, }), @@ -263,8 +264,6 @@ pub async fn watch( id: String, link_callback: Box, ) -> Result<()> { - use futures::StreamExt; - let mut client = create_websocket_client(executor_url, cap_token) .await .with_context(|| "Failed to create websocket client")?; diff --git a/rust-client/src/runtime.gql b/rust-client/src/runtime.gql index 7b6505bfb..f1f0a756c 100644 --- a/rust-client/src/runtime.gql +++ b/rust-client/src/runtime.gql @@ -1,119 +1,173 @@ query Info { - runtimeInfo { - ad4mExecutorVersion, - isInitialized, - isUnlocked - } + runtimeInfo { + ad4mExecutorVersion + isInitialized + isUnlocked + } } -mutation Quit { runtimeQuit } +mutation Quit { + runtimeQuit +} mutation AddTrustedAgents($agents: [String!]!) { - addTrustedAgents(agents: $agents) + addTrustedAgents(agents: $agents) } mutation DeleteTrustedAgents($agents: [String!]!) { - deleteTrustedAgents(agents: $agents) + deleteTrustedAgents(agents: $agents) } query TrustedAgents { - getTrustedAgents + getTrustedAgents } query LinkLanguageTemplates { - runtimeKnownLinkLanguageTemplates + runtimeKnownLinkLanguageTemplates } mutation AddLinkLanguageTemplates($addresses: [String!]!) { - runtimeAddKnownLinkLanguageTemplates(addresses: $addresses) + runtimeAddKnownLinkLanguageTemplates(addresses: $addresses) } mutation RemoveLinkLanguageTemplates($addresses: [String!]!) { - runtimeRemoveKnownLinkLanguageTemplates(addresses: $addresses) + runtimeRemoveKnownLinkLanguageTemplates(addresses: $addresses) } query Friends { - runtimeFriends + runtimeFriends } mutation AddFriends($dids: [String!]!) { - runtimeAddFriends(dids: $dids) + runtimeAddFriends(dids: $dids) } mutation RemoveFriends($dids: [String!]!) { - runtimeRemoveFriends(dids: $dids) + runtimeRemoveFriends(dids: $dids) } query HcAgentInfos { - runtimeHcAgentInfos + runtimeHcAgentInfos } mutation HcAddAgentInfos($agentInfos: String!) { - runtimeHcAddAgentInfos(agentInfos: $agentInfos) + runtimeHcAddAgentInfos(agentInfos: $agentInfos) } -query VerifyStringSignedByDid($did: String!, $didSigningKeyId: String!, $data: String!, $signedData: String!) { - runtimeVerifyStringSignedByDid(did: $did, didSigningKeyId: $didSigningKeyId, data: $data, signedData: $signedData) +query VerifyStringSignedByDid( + $did: String! + $didSigningKeyId: String! + $data: String! + $signedData: String! +) { + runtimeVerifyStringSignedByDid( + did: $did + didSigningKeyId: $didSigningKeyId + data: $data + signedData: $signedData + ) } mutation SetStatus($status: PerspectiveInput!) { - runtimeSetStatus(status: $status) + runtimeSetStatus(status: $status) } query FriendStatus($did: String!) { - runtimeFriendStatus(did: $did) { + runtimeFriendStatus(did: $did) { + author + timestamp + data { + links { author timestamp - data { - links { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - status - } + data { + source + predicate + target } - proof { valid, invalid, signature, key } + proof { + valid + invalid + signature + key + } + status + } + } + proof { + valid + invalid + signature + key } + } } mutation FriendSendMessage($did: String!, $message: PerspectiveInput!) { - runtimeFriendSendMessage(did: $did, message: $message) + runtimeFriendSendMessage(did: $did, message: $message) } query MessageInbox($filter: String) { - runtimeMessageInbox(filter: $filter) { + runtimeMessageInbox(filter: $filter) { + author + timestamp + data { + links { author timestamp - data { - links { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - status - } + data { + source + predicate + target } - proof { valid, invalid, signature, key } + proof { + valid + invalid + signature + key + } + status + } + } + proof { + valid + invalid + signature + key } + } } query MessageOutbox($filter: String) { - runtimeMessageOutbox(filter: $filter) { - recipient, - message { - author - timestamp - data { - links { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - status - } - } - proof { valid, invalid, signature, key } + runtimeMessageOutbox(filter: $filter) { + recipient + message { + author + timestamp + data { + links { + author + timestamp + data { + source + predicate + target + } + proof { + valid + invalid + signature + key + } + status } + } + proof { + valid + invalid + signature + key + } } -} \ No newline at end of file + } +} diff --git a/rust-client/src/types.rs b/rust-client/src/types.rs index 13fdb0286..4a286fc86 100644 --- a/rust-client/src/types.rs +++ b/rust-client/src/types.rs @@ -24,7 +24,7 @@ pub struct LinkExpression { pub data: Link, pub proof: ExpressionProof, pub timestamp: String, - pub status: Option + pub status: Option, } #[derive(Debug)] @@ -84,7 +84,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, - status: link.status + status: link.status, } } } @@ -105,7 +105,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, - status: link.status + status: link.status, } } } @@ -126,7 +126,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, - status: link.status + status: link.status, } } } @@ -147,7 +147,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, - status: link.status + status: link.status, } } } @@ -172,7 +172,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: None, }, - status: link.status + status: link.status, } } } @@ -191,7 +191,7 @@ impl From for SnapshotPerspectiveSnapshotLinks { key: link.proof.key, signature: link.proof.signature, }, - status: link.status + status: link.status, } } } @@ -212,28 +212,7 @@ impl From for LinkExpressionInput { invalid: link.proof.invalid, valid: link.proof.valid, }, - status: link.status - } - } -} - -impl From for friend_send_message::LinkExpressionInput { - fn from(link: LinkExpression) -> Self { - Self { - author: link.author, - timestamp: link.timestamp, - data: friend_send_message::LinkInput { - predicate: link.data.predicate, - source: link.data.source, - target: link.data.target, - }, - proof: friend_send_message::ExpressionProofInput { - key: link.proof.key, - signature: link.proof.signature, - invalid: link.proof.invalid, - valid: link.proof.valid, - }, - status: link.status + status: link.status, } } } @@ -256,7 +235,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: None, }, - status: link.status + status: link.status, } } } @@ -296,6 +275,27 @@ impl From for PerspectiveInput { } } +impl From for friend_send_message::LinkExpressionInput { + fn from(link: LinkExpression) -> Self { + Self { + author: link.author, + timestamp: link.timestamp, + data: friend_send_message::LinkInput { + predicate: link.data.predicate, + source: link.data.source, + target: link.data.target, + }, + proof: friend_send_message::ExpressionProofInput { + key: link.proof.key, + signature: link.proof.signature, + invalid: link.proof.invalid, + valid: link.proof.valid, + }, + status: link.status, + } + } +} + use crate::runtime::friend_send_message; impl From for friend_send_message::PerspectiveInput { @@ -353,7 +353,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: None, }, - status: link.status + status: link.status, } } } @@ -377,7 +377,7 @@ impl From for LinkExpression signature: link.proof.signature, valid: None, }, - status: link.status + status: link.status, } } } diff --git a/rust-client/src/util.rs b/rust-client/src/util.rs index 832d67ac3..b4f18754d 100644 --- a/rust-client/src/util.rs +++ b/rust-client/src/util.rs @@ -12,7 +12,7 @@ where { let response_body: Response = reqwest::Client::new() .post(executor_url) - .header("Authorization", cap_token) + .header("authorization", cap_token) .json(&query) .send() .await? @@ -35,7 +35,7 @@ where { Ok(reqwest::Client::new() .post(executor_url) - .header("Authorization", cap_token) + .header("authorization", cap_token) .json(&query) .send() .await? @@ -77,12 +77,14 @@ pub async fn create_websocket_client( ); request .headers_mut() - .insert("Authorization", HeaderValue::from_str(&cap_token).unwrap()); + .insert("authorization", HeaderValue::from_str(&cap_token).unwrap()); let (connection, _) = async_tungstenite::tokio::connect_async(request).await?; let (sink, stream) = connection.split(); - Ok(GraphQLClientClientBuilder::new() + let client = GraphQLClientClientBuilder::new() .build(stream, sink, TokioSpawner::current()) .await - .unwrap()) + .unwrap(); + + Ok(client) } diff --git a/rust-executor/.gitignore b/rust-executor/.gitignore new file mode 100644 index 000000000..16fbedc51 --- /dev/null +++ b/rust-executor/.gitignore @@ -0,0 +1,10 @@ +!graphql-checker/index.js +schema.json +schema.gql +!src/js_core/utils_extension.js +!src/js_core/wallet_extension.js +!src/js_core/pubsub_extension.js +!src/js_core/jwt_extension.js +!src/prolog_service/prolog_service_extension.js +!src/holochain_service/holochain_service_extension.js +dapp \ No newline at end of file diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml new file mode 100644 index 000000000..ad1211d90 --- /dev/null +++ b/rust-executor/Cargo.toml @@ -0,0 +1,79 @@ +[package] +name = "rust-executor" +version = "0.6.0" +edition = "2021" +authors = ["Nicolas Luck "] +description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" +keywords = ["ad4m", "perspect3vism", "cli"] +license = "CAL-1.0" +homepage = "https://ad4m.dev" +repository = "https://github.com/perspect3vism/ad4m" +documentation = "https://docs.ad4m.dev" +readme = "README.md" + +[lib] +name = "rust_executor" +path = "src/lib.rs" + +[[bin]] +name = "rust_executor_bin" +path = "src/main.rs" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +deno_core = "0.199.0" +deno_runtime = "0.122.0" +tokio = { version = "1.25.0", features = ["full"] } +url = "2.3.1" +futures = "0.3.28" +tokio-stream = { version = "0.1.12", features = ["sync"] } +lazy_static = "1.4.0" + +chrono = { version = "0.4.24", features = ["serde"] } +env_logger = "0.10.0" +serde_json = "1.0.95" +uuid = "1.3.0" +log = "0.4.19" +serde = "1.0.159" +secp256k1 = { version = "0.27.0", features = ["rand", "serde"] } +crypto_box = "0.8.2" +hex = "0.4.3" +argon2 = { version = "0.5.0", features = ["simple"] } +rand = "0.8.5" +base64 = "0.21.0" +clap = { version = "4.0.8", features = ["derive"] } +fs_extra = "1.3.0" +os_info = "3.7.0" +semver = "1.0.17" +did-key = "0.2.1" +zip = "0.6.4" +multibase = "0.9.1" +multihash = { version = "0.18.0", features = ["sha2"] } +cid = "0.10.1" +once_cell = "1.17.1" +hyper = { version = "1.0.0-rc.4", features = ["full"] } +http-body-util = "0.1.0-rc.3" +hyper-util = { git = "https://github.com/hyperium/hyper-util.git" } +rust-embed="8.0.0" +dirs = "5.0.1" + +juniper = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["chrono"] } +juniper_subscriptions = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } +juniper_graphql_transport_ws = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } +juniper_warp = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["subscriptions"] } +warp = "0.3.4" + +jsonwebtoken = "8.3.0" + +holochain = { version = "0.2.2", features = ["test_utils", "default"] } +holochain_cli_bundle = { version = "0.2.2" } +holochain_types = { version = "0.2.2" } +holochain_cli_run_local_services = { version = "0.2.2" } + +scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible", features = ["multi_thread"] } +# scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } +# scryer-prolog = { path = "../../scryer-prolog", features = ["multi_thread"] } + +[dev-dependencies] +maplit = "1.0.2" diff --git a/rust-executor/README.md b/rust-executor/README.md new file mode 100644 index 000000000..302500802 --- /dev/null +++ b/rust-executor/README.md @@ -0,0 +1,5 @@ +# Rust-Executor (= main ADAM Layer Runtime) + +This Rust crate; provides a lib with exposed functions for 'init' & 'run' of an AD4M Agent and also exposes a bin which will by default `run` an AD4M Agent. + +Running an AD4M Agent entails the creation of a warp based GraphQL server, conforming to the ADAM Layer spec. Spawning of a Deno runtime that runs the core [`executor`](https://github.com/coasys/ad4m/tree/rust-refactor/executor), this happens inside [`js_core`](https://github.com/coasys/ad4m/blob/rust-refactor/rust-executor/src/js_core/mod.rs). `js_core` also handles the requests from the JS to call into Rust functions. Currently exposed Rust functions allow communication with `Scryer-Prolog`, `Holochain` & `JwtService`. \ No newline at end of file diff --git a/rust-executor/build.rs b/rust-executor/build.rs new file mode 100644 index 000000000..ef168d04b --- /dev/null +++ b/rust-executor/build.rs @@ -0,0 +1,26 @@ +use std::fs; +use std::path::Path; + +fn copy_dir_recursive(source: &Path, target: &Path) -> std::io::Result<()> { + if source.is_dir() { + fs::create_dir_all(target)?; + for entry in fs::read_dir(source)? { + let entry = entry?; + let entry_target = target.join(entry.file_name()); + copy_dir_recursive(&entry.path(), &entry_target)?; + } + } else { + fs::copy(source, target)?; + } + Ok(()) +} + +fn main() { + let source_dir = "../dapp/public"; + + let target_dir = concat!(env!("CARGO_MANIFEST_DIR"), "/dapp"); + + if let Err(err) = copy_dir_recursive(Path::new(source_dir), Path::new(target_dir)) { + eprintln!("Error copying directory: {}", err); + } +} \ No newline at end of file diff --git a/rust-executor/graphql-checker/package.json b/rust-executor/graphql-checker/package.json new file mode 100644 index 000000000..7a13f462f --- /dev/null +++ b/rust-executor/graphql-checker/package.json @@ -0,0 +1,12 @@ +{ + "name": "@perspect3vism/graphql-checker", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "dependencies": { + "graphql": "^16.6.0" + }, + "scripts": { + "check": "graphql-inspector diff ../../core/lib/src/schema.gql ../schema.gql" + } +} diff --git a/rust-executor/graphql-checker/yarn.lock b/rust-executor/graphql-checker/yarn.lock new file mode 100644 index 000000000..fa08ff182 --- /dev/null +++ b/rust-executor/graphql-checker/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +graphql@^16.6.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" + integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== diff --git a/rust-executor/package.json b/rust-executor/package.json new file mode 100644 index 000000000..85f5b2898 --- /dev/null +++ b/rust-executor/package.json @@ -0,0 +1,35 @@ +{ + "name": "@perspect3vism/rust-ad4m-executor", + "version": "0.6.0", + "description": "Rust built version of the ad4m-executor, exposing GraphQL methods for AD4M", + "main": "", + "files": [], + "type": "module", + "types": "", + "scripts": { + "build": "cargo build --release", + "test": "cargo test --release" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/perspect3vism/ad4m.git" + }, + "author": { + "name": "Nicolas Luck", + "email": "nicolas@lucksus.eu" + }, + "contributors": [ + { + "name": "Joshua Parkin", + "email": "joshuadparkin@gmail.com" + } + ], + "license": "CAL-1.0", + "bugs": { + "url": "https://github.com/perspect3vism/ad4m/issues" + }, + "devDependencies": { + "@perspect3vism/ad4m-executor": "*" + }, + "dependencies": {} +} diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs new file mode 100644 index 000000000..0fd7a65dd --- /dev/null +++ b/rust-executor/src/config.rs @@ -0,0 +1,103 @@ +use crate::utils; +use serde::{Deserialize, Serialize}; +use std::path::PathBuf; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Ad4mConfig { + pub app_data_path: Option, + pub network_bootstrap_seed: Option, + pub language_language_only: Option, + pub run_dapp_server: Option, + pub gql_port: Option, + #[serde(rename = "hcPortAdmin")] + pub hc_admin_port: Option, + #[serde(rename = "hcPortApp")] + pub hc_app_port: Option, + pub hc_use_local_proxy: Option, + pub hc_use_mdns: Option, + pub hc_use_proxy: Option, + pub hc_use_bootstrap: Option, + pub hc_proxy_url: Option, + pub hc_bootstrap_url: Option, + pub connect_holochain: Option, + pub admin_credential: Option +} + +impl Ad4mConfig { + pub fn prepare(&mut self) { + if self.app_data_path.is_none() { + self.app_data_path = Some( + utils::ad4m_data_directory() + .into_os_string() + .into_string() + .expect("Could not convert data path to string"), + ); + } + if self.network_bootstrap_seed.is_none() { + let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); + data_path.push("mainnet_seed.seed"); + self.network_bootstrap_seed = Some( + data_path + .into_os_string() + .into_string() + .expect("Could not convert seed path to string"), + ); + } + if self.language_language_only.is_none() { + self.language_language_only = Some(false); + } + if self.run_dapp_server.is_none() { + self.run_dapp_server = Some(true); + } + if self.gql_port.is_none() { + self.gql_port = Some(4000); + } + if self.connect_holochain.is_none() { + self.connect_holochain = Some(false); + } + if self.hc_proxy_url.is_none() { + self.hc_proxy_url = Some("wss://signal.holo.host".to_string()); + } + if self.hc_bootstrap_url.is_none() { + self.hc_bootstrap_url = Some("https://bootstrap.holo.host".to_string()); + } + if self.hc_use_bootstrap.is_none() { + self.hc_use_bootstrap = Some(true); + } + if self.hc_use_mdns.is_none() { + self.hc_use_mdns = Some(false); + } + if self.hc_use_proxy.is_none() { + self.hc_use_proxy = Some(true) + } + } + + pub fn get_json(&self) -> String { + serde_json::to_string(self).expect("Could not convert config to json") + } +} + +impl Default for Ad4mConfig { + fn default() -> Self { + let mut config = Ad4mConfig { + app_data_path: None, + network_bootstrap_seed: None, + language_language_only: None, + run_dapp_server: None, + gql_port: None, + hc_admin_port: None, + hc_app_port: None, + hc_use_local_proxy: None, + hc_use_mdns: None, + hc_use_proxy: None, + hc_use_bootstrap: None, + hc_proxy_url: None, + hc_bootstrap_url: None, + connect_holochain: None, + admin_credential: None + }; + config.prepare(); + config + } +} diff --git a/rust-executor/src/dapp_server.rs b/rust-executor/src/dapp_server.rs new file mode 100644 index 000000000..723f7a48c --- /dev/null +++ b/rust-executor/src/dapp_server.rs @@ -0,0 +1,62 @@ +use std::convert::Infallible; +use std::net::SocketAddr; + +use http_body_util::Full; +use hyper::body::Bytes; +use hyper::server::conn::http1; +use hyper::service::service_fn; +use hyper::{Request, Response}; +use hyper_util::rt::TokioIo; +use tokio::net::TcpListener; +use log::info; + +use rust_embed::*; + +#[derive(RustEmbed)] +#[folder = "dapp/"] +struct Asset; + + +async fn serve_file(req: Request) -> Result>, Infallible> { + let path = req.uri().path(); + let path_clone = path.clone().replace("/", ""); + let mut base = path_clone.as_str(); + + if base == "" { + base = "index.html"; + } + + match Asset::get(base) { + Some(content) => { + let response = Response::new(Full::new(Bytes::from(content.data.into_owned()))); + Ok(response) + }, + None => { + let response = Response::new(Full::new(Bytes::from("File not found"))); + Ok(response) + }, + } +} + +pub(crate) async fn serve_dapp(port: u16) -> Result<(), Box> { + let addr = SocketAddr::from(([127, 0, 0, 1], port)); + + let listener = TcpListener::bind(addr).await?; + + info!("Listening dapp on http://{}", addr); + + loop { + let (stream, _) = listener.accept().await?; + + let io = TokioIo::new(stream); + + tokio::task::spawn(async move { + if let Err(err) = http1::Builder::new() + .serve_connection(io, service_fn(serve_file)) + .await + { + println!("Error serving connection: {:?}", err); + } + }); + } +} \ No newline at end of file diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs new file mode 100644 index 000000000..f2835cdb3 --- /dev/null +++ b/rust-executor/src/globals.rs @@ -0,0 +1,23 @@ +use lazy_static::lazy_static; + +lazy_static! { + /// The current version of AD4M + pub static ref AD4M_VERSION: String = String::from("0.6.0"); +} + +/// Struct representing oldest supported version and indicator if state should be cleared if update is required +pub struct OldestVersion { + pub version: String, + pub clear_state: bool, +} + +lazy_static! { + /// The oldest version of the AD4M protocol that this executor supports + pub static ref OLDEST_VERSION: OldestVersion = OldestVersion { + version: String::from("0.6.0"), + clear_state: true, + }; +} + +/// Raw JSON data for the mainnet seed, included at buildtime from the mainnet_seed.json file +pub const MAINNET_JSON: &str = include_str!("mainnet_seed.json"); \ No newline at end of file diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs new file mode 100644 index 000000000..a9c92bca9 --- /dev/null +++ b/rust-executor/src/graphql/graphql_types.rs @@ -0,0 +1,643 @@ +use juniper::{ + FieldError, FieldResult, GraphQLEnum, GraphQLInputObject, GraphQLObject, GraphQLScalar, +}; +use serde::{de::DeserializeOwned, Deserialize, Serialize}; + +use crate::js_core::JsCoreHandle; + +#[derive(Clone)] +pub struct RequestContext { + pub capability: String, + pub js_handle: JsCoreHandle, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Agent { + pub did: String, + #[graphql(name = "directMessageLanguage")] + pub direct_message_language: Option, + pub perspective: Option, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct AgentSignature { + pub public_key: String, + pub signature: String, +} + +#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct AgentStatus { + pub did: Option, + pub did_document: Option, + pub error: Option, + pub is_initialized: bool, + pub is_unlocked: bool, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Apps { + pub auth: AuthInfo, + pub request_id: String, + pub revoked: Option, + pub token: String, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct AuthInfo { + pub app_desc: String, + pub app_icon_path: Option, + pub app_name: String, + pub app_url: String, + pub capabilities: Vec, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct AuthInfoInput { + #[graphql(name = "appDesc")] + pub app_desc: String, + #[graphql(name = "appDomain")] + pub app_domain: String, + #[graphql(name = "appIconPath")] + pub app_icon_path: Option, + #[graphql(name = "appName")] + pub app_name: String, + #[graphql(name = "appUrl")] + pub app_url: Option, + #[graphql(name = "capabilities")] + pub capabilities: Option>, +} + +#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Capability { + pub can: Vec, + pub with: Resource, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct CapabilityInput { + pub can: Vec, + pub with: ResourceInput, +} + +#[derive(GraphQLScalar, Default, Debug, Serialize, Deserialize, Clone)] +#[serde(rename_all = "camelCase")] +#[graphql(transparent)] +// The javascript `Date` as string. pub struct represents date and time as the ISO Date string. +pub struct DateTime(chrono::DateTime); + +#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EntanglementProof { + #[graphql(name = "deviceKey")] + pub device_key: String, + #[graphql(name = "deviceKeySignedByDid")] + pub device_key_signed_by_did: String, + #[graphql(name = "deviceKeyType")] + pub device_key_type: String, + #[graphql(name = "did")] + pub did: String, + #[graphql(name = "didSignedByDeviceKey")] + pub did_signed_by_device_key: Option, + #[graphql(name = "didSigningKeyId")] + pub did_signing_key_id: String, +} + +#[derive(GraphQLInputObject, Default, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EntanglementProofInput { + #[graphql(name = "deviceKey")] + pub device_key: String, + #[graphql(name = "deviceKeySignedByDid")] + pub device_key_signed_by_did: String, + #[graphql(name = "deviceKeyType")] + pub device_key_type: String, + #[graphql(name = "did")] + pub did: String, + #[graphql(name = "didSignedByDeviceKey")] + pub did_signed_by_device_key: String, + #[graphql(name = "didSigningKeyId")] + pub did_signing_key_id: String, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct ExceptionInfo { + pub addon: Option, + pub message: String, + pub title: String, + pub r#type: f64, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct ExpressionProof { + pub invalid: Option, + pub key: Option, + pub signature: Option, + pub valid: Option, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct ExpressionProofInput { + pub invalid: Option, + pub key: Option, + pub signature: Option, + pub valid: Option, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct ExpressionRendered { + pub author: String, + pub data: String, + pub icon: Icon, + pub language: LanguageRef, + pub proof: ExpressionProof, + pub timestamp: String, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Icon { + pub code: Option, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct InteractionCall { + pub name: String, + pub parameters_stringified: String, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct InteractionMeta { + pub label: String, + pub name: String, + pub parameters: Vec, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct InteractionParameter { + pub name: String, + pub type_: String, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LanguageHandle { + pub address: String, + pub constructor_icon: Option, + pub icon: Option, + pub name: String, + pub settings: Option, + pub settings_icon: Option, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LanguageMeta { + pub address: String, + pub author: String, + pub description: Option, + pub name: String, + pub possible_template_params: Option>, + pub source_code_link: Option, + pub template_applied_params: Option, + pub template_source_language_address: Option, + pub templated: Option, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LanguageMetaInput { + pub description: String, + pub name: String, + pub possible_template_params: Option>, + pub source_code_link: Option, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LanguageRef { + pub address: String, + pub name: String, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Link { + pub predicate: Option, + pub source: String, + pub target: String, +} + +#[derive(GraphQLEnum, Debug, Deserialize, Serialize, Clone)] +pub enum LinkStatus { + #[serde(rename = "shared")] + Shared, + #[serde(rename = "local")] + Local, +} + +//Impl display for LinkStatus +impl std::fmt::Display for LinkStatus { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + match *self { + LinkStatus::Shared => write!(f, "shared"), + LinkStatus::Local => write!(f, "local"), + } + } +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LinkExpression { + pub author: String, + pub data: Link, + pub proof: ExpressionProof, + pub timestamp: String, + pub status: Option, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LinkExpressionInput { + pub author: String, + pub data: LinkInput, + pub proof: ExpressionProofInput, + pub timestamp: String, + pub status: Option, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LinkExpressionMutations { + pub additions: Vec, + pub removals: Vec, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LinkExpressionUpdated { + pub new_link: LinkExpression, + pub old_link: LinkExpression, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LinkInput { + pub predicate: Option, + pub source: String, + pub target: String, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LinkMutations { + pub additions: Vec, + pub removals: Vec, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LinkQuery { + pub from_date: Option, + pub limit: Option, + pub predicate: Option, + pub source: Option, + pub target: Option, + pub until_date: Option, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Neighbourhood { + pub link_language: String, + pub meta: Perspective, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct OnlineAgent { + pub did: String, + pub status: PerspectiveExpression, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Perspective { + pub links: Vec, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct PerspectiveExpression { + pub author: String, + pub data: Perspective, + pub proof: ExpressionProof, + pub timestamp: String, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct PerspectiveHandle { + pub name: Option, + pub neighbourhood: Option, + pub shared_url: Option, + pub state: String, + pub uuid: String, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct PerspectiveInput { + pub links: Vec, +} + +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct PerspectiveUnsignedInput { + pub links: Vec, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Resource { + pub domain: String, + pub pointers: Vec, +} + +#[derive(GraphQLInputObject, Default, Debug, Serialize, Deserialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct ResourceInput { + pub domain: String, + pub pointers: Vec, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct RuntimeInfo { + pub ad4m_executor_version: String, + pub is_initialized: bool, + pub is_unlocked: bool, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct SentMessage { + pub message: PerspectiveExpression, + pub recipient: String, +} + +#[derive(Default, Debug, Deserialize, Serialize)] +pub struct NeighbourhoodSignalFilter { + pub perspective: PerspectiveHandle, + pub signal: PerspectiveExpression, +} + +#[derive(Default, Debug, Deserialize, Serialize)] +pub struct PerspectiveLinkFilter { + pub perspective: PerspectiveHandle, + pub link: LinkExpression, +} + +#[derive(Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct PerspectiveLinkUpdatedFilter { + pub new_link: LinkExpression, + pub old_link: LinkExpression, + pub perspective: PerspectiveHandle, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LinkUpdated { + pub new_link: LinkExpression, + pub old_link: LinkExpression, +} + +#[derive(Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct PerspectiveStateFilter { + pub state: String, + pub perspective: PerspectiveHandle, +} + +#[derive(Debug, Deserialize, Serialize)] +pub enum JsResultType +where + T: std::fmt::Debug + Serialize + 'static, +{ + Ok(T), + Error(String), +} + +impl JsResultType +where + T: std::fmt::Debug + Serialize + 'static, +{ + pub fn get_graphql_result(self) -> FieldResult { + match self { + JsResultType::Ok(result) => Ok(result), + JsResultType::Error(error) => Err(FieldError::from(error.clone())), + } + } +} + +// Define the trait with a generic associated type `Value` +pub trait GetValue { + type Value: Clone + DeserializeOwned + Send + 'static + std::fmt::Debug; + fn get_value(&self) -> Self::Value; +} + +pub trait GetFilter { + fn get_filter(&self) -> Option; +} + +impl GetValue for Option { + type Value = Option; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +impl GetFilter for Option { + fn get_filter(&self) -> Option { + None + } +} + +// Implement the trait for the `NeighbourhoodSignalFilter` struct +impl GetValue for NeighbourhoodSignalFilter { + type Value = PerspectiveExpression; + + fn get_value(&self) -> Self::Value { + self.signal.clone() + } +} + +// Implement the trait for the `NeighbourhoodSignalFilter` struct +impl GetFilter for NeighbourhoodSignalFilter { + fn get_filter(&self) -> Option { + Some(self.perspective.uuid.clone()) + } +} + +// Implement the trait for the `PerspectiveLinkFilter` struct +impl GetValue for PerspectiveLinkFilter { + type Value = LinkExpression; + + fn get_value(&self) -> Self::Value { + self.link.clone() + } +} + +// Implement the trait for the `PerspectiveLinkFilter` struct +impl GetFilter for PerspectiveLinkFilter { + fn get_filter(&self) -> Option { + Some(self.perspective.uuid.clone()) + } +} + +// Implement the trait for the `PerspectiveLinkUpdatedFilter` struct +impl GetValue for PerspectiveLinkUpdatedFilter { + type Value = LinkUpdated; + + fn get_value(&self) -> Self::Value { + LinkUpdated { + new_link: self.new_link.clone(), + old_link: self.old_link.clone(), + } + } +} + +// Implement the trait for the `PerspectiveLinkUpdatedFilter` struct +impl GetFilter for PerspectiveLinkUpdatedFilter { + fn get_filter(&self) -> Option { + Some(self.perspective.uuid.clone()) + } +} + +// Implement the trait for the `PerspectiveStateFilter` struct +impl GetValue for PerspectiveStateFilter { + type Value = String; + + fn get_value(&self) -> Self::Value { + self.state.clone() + } +} + +// Implement the trait for the `PerspectiveStateFilter` struct +impl GetFilter for PerspectiveStateFilter { + fn get_filter(&self) -> Option { + Some(self.perspective.uuid.clone()) + } +} + +// Implement the trait for the `AgentStatus` struct +impl GetValue for AgentStatus { + type Value = AgentStatus; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +// Implement the trait for the `AgentStatus` struct +impl GetFilter for AgentStatus { + fn get_filter(&self) -> Option { + None + } +} + +// Implement the trait for `Agent` struct +impl GetValue for Agent { + type Value = Agent; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +// Implement the trait for `Agent` struct +impl GetFilter for Agent { + fn get_filter(&self) -> Option { + None + } +} + +//Implement the trait for `ExceptionInfo` struct +impl GetValue for ExceptionInfo { + type Value = ExceptionInfo; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +//Implement the trait for `ExceptionInfo` struct +impl GetFilter for ExceptionInfo { + fn get_filter(&self) -> Option { + None + } +} + +//Implement the trait for `PerspectiveHandle` struct +impl GetValue for PerspectiveHandle { + type Value = PerspectiveHandle; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +//Implement the trait for `PerspectiveHandle` struct +impl GetFilter for PerspectiveHandle { + fn get_filter(&self) -> Option { + None + } +} + +//Implement the trait for `String` +impl GetValue for String { + type Value = String; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +//Implement the trait for `String` +impl GetFilter for String { + fn get_filter(&self) -> Option { + None + } +} + +//Implement the trait for `PerspectiveExpression` +impl GetValue for PerspectiveExpression { + type Value = PerspectiveExpression; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +//Implement the trait for `PerspectiveExpression` +impl GetFilter for PerspectiveExpression { + fn get_filter(&self) -> Option { + None + } +} diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs new file mode 100644 index 000000000..7611a7335 --- /dev/null +++ b/rust-executor/src/graphql/mod.rs @@ -0,0 +1,124 @@ +pub mod graphql_types; +mod mutation_resolvers; +mod query_resolvers; +mod subscription_resolvers; +mod utils; + +use graphql_types::RequestContext; +use mutation_resolvers::*; +use query_resolvers::*; +use subscription_resolvers::*; + +use crate::js_core::JsCoreHandle; + +use std::collections::HashMap; +use std::sync::Arc; +use std::{convert::Infallible, io::Write}; + +use deno_core::error::AnyError; +use futures::FutureExt as _; +use juniper::{InputValue, RootNode}; +use juniper_graphql_transport_ws::ConnectionConfig; +use juniper_warp::{playground_filter, subscriptions::serve_graphql_transport_ws}; +use warp::{http::Response, Filter}; +use std::path::Path; + +impl juniper::Context for RequestContext {} + +type Schema = RootNode<'static, Query, Mutation, Subscription>; + +fn schema() -> Schema { + Schema::new(Query, Mutation, Subscription) +} + +pub async fn start_server(js_core_handle: JsCoreHandle, port: u16, app_data_path: String) -> Result<(), AnyError> { + let log = warp::log("warp::server"); + + let mut file = std::fs::File::create( + Path::new(&app_data_path).join("schema.gql") + ).unwrap(); + + file.write_all(schema().as_schema_language().as_bytes()).unwrap(); + + let homepage = warp::path::end().map(|| { + Response::builder() + .header("content-type", "text/html") + .body("

AD4M Executor

visit graphql playground to explore the executor") + }); + + let qm_schema = schema(); + let js_core_handle_cloned1 = js_core_handle.clone(); + + let default_auth = warp::any().map(|| { + String::from("") + }); + + let qm_state = warp::any() + .and(warp::header::("authorization")) + .or(default_auth) + .unify() + .map(move |header| { + //println!("Request body: {}", std::str::from_utf8(body_data::bytes()).expect("error converting bytes to &str")); + RequestContext { + capability: header, + js_handle: js_core_handle_cloned1.clone(), + } + }); + let qm_graphql_filter = juniper_warp::make_graphql_filter(qm_schema, qm_state.boxed()); + + let root_node = Arc::new(schema()); + + let routes = (warp::path("graphql") + .and(warp::ws()) + .map(move |ws: warp::ws::Ws| { + let root_node = root_node.clone(); + let js_core_handle = js_core_handle.clone(); + ws.on_upgrade(move |websocket| async move { + serve_graphql_transport_ws( + websocket, + root_node, + |val: HashMap| async move { + let mut auth_header = String::from(""); + + if let Some(headers) = val.get("headers") { + let headers = headers.to_object_value().unwrap(); + if let Some(auth) = headers.get("authorization") { + auth_header = match auth.as_string_value() { + Some(s) => s.to_string(), + None => String::from(""), + }; + } + }; + + let context = RequestContext { + capability: auth_header, + js_handle: js_core_handle.clone(), + }; + Ok(ConnectionConfig::new(context)) + as Result, Infallible> + }, + ) + .map(|r| { + if let Err(e) = r { + log::error!("Websocket error: {e}"); + } + }) + .await + }) + })) + .map(|reply| { + // TODO#584: remove this workaround + warp::reply::with_header(reply, "Sec-WebSocket-Protocol", "graphql-transport-ws") + }) + .or(warp::post() + .and(warp::path("graphql")) + .and(qm_graphql_filter)) + .or(warp::get() + .and(warp::path("playground")) + .and(playground_filter("/graphql", Some("/subscriptions")))) + .or(homepage) + .with(log); + + warp::serve(routes).run(([127, 0, 0, 1], port)).await; + Ok(()) +} diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs new file mode 100644 index 000000000..a5c05d98e --- /dev/null +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -0,0 +1,1197 @@ +#![allow(non_snake_case)] +use juniper::{graphql_object, graphql_value, FieldResult}; +use log::debug; + +use super::graphql_types::*; +use super::utils::get_capabilies; +use super::RequestContext; + +pub struct Mutation; + +#[graphql_object(context = RequestContext)] +impl Mutation { + async fn add_trusted_agents( + &self, + context: &RequestContext, + agents: Vec, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "addTrustedAgents", {{ agents: {:?} }}, {{ capabilities: {} }}) + )"#, + agents, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_add_entanglement_proofs( + &self, + context: &RequestContext, + proofs: Vec, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentAddEntanglementProofs", {{ proofs: {} }}, {{ capabilities: {} }}) + )"#, + serde_json::to_string(&proofs).unwrap(), + capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_delete_entanglement_proofs( + &self, + context: &RequestContext, + proofs: Vec, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentDeleteEntanglementProofs", {{ proofs: {} }}, {{ capabilities: {} }}) + )"#, + serde_json::to_string(&proofs).unwrap(), + capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_entanglement_proof_pre_flight( + &self, + context: &RequestContext, + device_key: String, + device_key_type: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentEntanglementProofPreFlight", {{ deviceKey: "{}", deviceKeyType: "{}" }}, {{ capabilities: {} }}) + )"#, + device_key, device_key_type, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_generate( + &self, + context: &RequestContext, + passphrase: String, + ) -> FieldResult { + debug!("Agent generate raw cap: {}", context.capability.clone()); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentGenerate", {{ passphrase: "{}" }}, {{ capabilities: {} }}) + )"#, + passphrase, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_generate_jwt( + &self, + context: &RequestContext, + rand: String, + request_id: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentGenerateJwt", {{ rand: "{}", requestId: "{}" }}, {{ capabilities: {} }}) + )"#, + rand, request_id, capabilities + ); + debug!("agent_generate_jwt script: {}", script); + let result = js.execute(script).await?; + debug!("agent_generate_jwt result: {}", result); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_lock( + &self, + context: &RequestContext, + passphrase: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentLock", {{ passphrase: "{}" }}, {{ capabilities: {} }}) + )"#, + passphrase, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + //NOTE: all the functions from here on out have not been tested by calling the cli <-> rust graphql server + async fn agent_permit_capability( + &self, + context: &RequestContext, + auth: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentPermitCapability", {{ auth: JSON.stringify({}) }}, {{ capabilities: {} }}) + )"#, + auth, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_remove_app( + &self, + context: &RequestContext, + request_id: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentRemoveApp", {{ requestId: "{}" }}, {{ capabilities: {} }}) + )"#, + request_id, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_request_capability( + &self, + context: &RequestContext, + auth_info: AuthInfoInput, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let auth_info_json = serde_json::to_string(&auth_info)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentRequestCapability", {{ authInfo: {} }}, {{ capabilities: {} }}) + )"#, + auth_info_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_revoke_token( + &self, + context: &RequestContext, + request_id: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentRevokeToken", {{ requestId: "{}" }}, {{ capabilities: {} }}) + )"#, + request_id, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_sign_message( + &self, + context: &RequestContext, + message: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentSignMessage", {{ message: "{}" }}, {{ capabilities: {} }}) + )"#, + message, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_unlock( + &self, + context: &RequestContext, + passphrase: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentUnlock", {{ passphrase: "{}" }}, {{ capabilities: {} }}) + )"#, + passphrase, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_update_direct_message_language( + &self, + context: &RequestContext, + direct_message_language: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentUpdateDirectMessageLanguage", {{ directMessageLanguage: "{}" }}, {{ capabilities: {} }}) + )"#, + direct_message_language, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_update_public_perspective( + &self, + context: &RequestContext, + perspective: PerspectiveInput, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let perspective_json = serde_json::to_string(&perspective)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "agentUpdatePublicPerspective", {{ perspective: {} }}, {{ capabilities: {} }}) + )"#, + perspective_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn delete_trusted_agents( + &self, + context: &RequestContext, + agents: Vec, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let agents_json = serde_json::to_string(&agents)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "deleteTrustedAgents", {{ agents: {} }}, {{ capabilities: {} }}) + )"#, + agents_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn expression_create( + &self, + context: &RequestContext, + content: String, + language_address: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Mutation", "expressionCreate", {{ content: {}, languageAddress: "{}" }}, {{ capabilities: {} }}) + )"#, + content, language_address, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn expression_interact( + &self, + context: &RequestContext, + interaction_call: InteractionCall, + url: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let interaction_call_json = serde_json::to_string(&interaction_call)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "expressionInteract", + {{ interactionCall: {}, url: "{}" }}, + {{ capabilities: {} }} + ))"#, + interaction_call_json, url, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn language_apply_template_and_publish( + &self, + context: &RequestContext, + source_language_hash: String, + template_data: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "languageApplyTemplateAndPublish", + {{ sourceLanguageHash: "{}", templateData: JSON.stringify({}) }}, + {{ capabilities: {} }} + ))"#, + source_language_hash, template_data, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn language_publish( + &self, + context: &RequestContext, + language_meta: LanguageMetaInput, + language_path: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let language_meta_json = serde_json::to_string(&language_meta)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "languagePublish", + {{ languageMeta: {}, languagePath: "{}" }}, + {{ capabilities: {} }} + ))"#, + language_meta_json, language_path, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn language_remove( + &self, + context: &RequestContext, + address: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "languageRemove", + {{ address: "{}" }}, + {{ capabilities: {} }} + ))"#, + address, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn language_write_settings( + &self, + context: &RequestContext, + language_address: String, + settings: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "languageWriteSettings", + {{ languageAddress: "{}", settings: "{}" }}, + {{ capabilities: {} }} + ))"#, + language_address, settings, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_join_from_url( + &self, + context: &RequestContext, + url: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "neighbourhoodJoinFromUrl", + {{ url: "{}" }}, + {{ capabilities: {} }} + ))"#, + url, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_publish_from_perspective( + &self, + context: &RequestContext, + link_language: String, + meta: PerspectiveInput, + perspectiveUUID: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let meta_json = serde_json::to_string(&meta)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "neighbourhoodPublishFromPerspective", + {{ linkLanguage: "{}", meta: {}, perspectiveUUID: "{}" }}, + {{ capabilities: {} }} + ))"#, + link_language, meta_json, perspectiveUUID, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_send_broadcast( + &self, + context: &RequestContext, + payload: PerspectiveInput, + perspectiveUUID: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let payload_json = serde_json::to_string(&payload)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "neighbourhoodSendBroadcast", + {{ payload: {}, perspectiveUUID: "{}" }}, + {{ capabilities: {} }} + ))"#, + payload_json, perspectiveUUID, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_send_broadcast_u( + &self, + context: &RequestContext, + payload: PerspectiveUnsignedInput, + perspectiveUUID: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let payload_json = serde_json::to_string(&payload)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "neighbourhoodSendBroadcastU", + {{ payload: {}, perspectiveUUID: "{}" }}, + {{ capabilities: {} }} + ))"#, + payload_json, perspectiveUUID, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_send_signal( + &self, + context: &RequestContext, + payload: PerspectiveInput, + perspectiveUUID: String, + remote_agent_did: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let payload_json = serde_json::to_string(&payload)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "neighbourhoodSendSignal", + {{ payload: {}, perspectiveUUID: "{}", remoteAgentDid: "{}" }}, + {{ capabilities: {} }} + ))"#, + payload_json, perspectiveUUID, remote_agent_did, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_send_signal_u( + &self, + context: &RequestContext, + payload: PerspectiveUnsignedInput, + perspectiveUUID: String, + remote_agent_did: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let payload_json = serde_json::to_string(&payload)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "neighbourhoodSendSignalU", + {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, + {{ capabilities: {} }} + ))"#, + payload_json, perspectiveUUID, remote_agent_did, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_set_online_status( + &self, + context: &RequestContext, + perspectiveUUID: String, + status: PerspectiveInput, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let status_json = serde_json::to_string(&status)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "neighbourhoodSetOnlineStatus", + {{ perspectiveUUID: "{}", status: {} }}, + {{ capabilities: {} }} + ))"#, + perspectiveUUID, status_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_set_online_status_u( + &self, + context: &RequestContext, + perspectiveUUID: String, + status: PerspectiveUnsignedInput, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let status_json = serde_json::to_string(&status)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "neighbourhoodSetOnlineStatusU", + {{ perspectiveUUID: "{}", status: {} }}, + {{ capabilities: {} }} + ))"#, + perspectiveUUID, status_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_add( + &self, + context: &RequestContext, + name: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveAdd", + {{ name: "{}" }}, + {{ capabilities: {} }} + ))"#, + name, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_add_link( + &self, + context: &RequestContext, + link: LinkInput, + uuid: String, + status: Option, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + + let link_json = serde_json::to_string(&link)?; + let status = match status { + Some(status) => { + if status != String::from("shared") && status != String::from("local") { + return Err(juniper::FieldError::new( + "Invalid status, must be either 'shared' or 'local'", + graphql_value!({ "invalid_status": status }), + )); + } + format!(r#""{}""#, status) + } + None => String::from("null"), + }; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveAddLink", + {{ link: {}, uuid: "{}", status: {} }}, + {{ capabilities: {} }} + ))"#, + link_json, uuid, status, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_add_link_expression( + &self, + context: &RequestContext, + link: LinkExpressionInput, + uuid: String, + status: Option, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let link_json = serde_json::to_string(&link)?; + let status = match status { + Some(status) => { + if status != String::from("shared") && status != String::from("local") { + return Err(juniper::FieldError::new( + "Invalid status, must be either 'shared' or 'local'", + graphql_value!({ "invalid_status": status }), + )); + } + format!(r#""{}""#, status) + } + None => String::from("null"), + }; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveAddLinkExpression", + {{ link: {}, uuid: "{}", status: {} }}, + {{ capabilities: {} }} + ))"#, + link_json, uuid, status, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_add_links( + &self, + context: &RequestContext, + links: Vec, + uuid: String, + status: Option, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let links_json = serde_json::to_string(&links)?; + let status = match status { + Some(status) => { + if status != String::from("shared") && status != String::from("local") { + return Err(juniper::FieldError::new( + "Invalid status, must be either 'shared' or 'local'", + graphql_value!({ "invalid_status": status }), + )); + } + format!(r#""{}""#, status) + } + None => String::from("null"), + }; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveAddLinks", + {{ links: {}, uuid: "{}", status: {} }}, + {{ capabilities: {} }} + ))"#, + links_json, uuid, status, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_link_mutations( + &self, + context: &RequestContext, + mutations: LinkMutations, + uuid: String, + status: Option, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let mutations_json = serde_json::to_string(&mutations)?; + let status = match status { + Some(status) => { + if status != String::from("shared") && status != String::from("local") { + return Err(juniper::FieldError::new( + "Invalid status, must be either 'shared' or 'local'", + graphql_value!({ "invalid_status": status }), + )); + } + format!(r#""{}""#, status) + } + None => String::from("shared"), + }; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveLinkMutations", + {{ mutations: {}, uuid: "{}", status: {} }}, + {{ capabilities: {} }} + ))"#, + mutations_json, uuid, status, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_publish_snapshot( + &self, + context: &RequestContext, + uuid: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectivePublishSnapshot", + {{ uuid: "{}" }}, + {{ capabilities: {} }} + ))"#, + uuid, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_remove( + &self, + context: &RequestContext, + uuid: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveRemove", + {{ uuid: "{}" }}, + {{ capabilities: {} }} + ))"#, + uuid, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_remove_link( + &self, + context: &RequestContext, + link: LinkExpressionInput, + uuid: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let link_json = serde_json::to_string(&link)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveRemoveLink", + {{ link: {}, uuid: "{}" }}, + {{ capabilities: {} }} + ))"#, + link_json, uuid, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_remove_links( + &self, + context: &RequestContext, + links: Vec, + uuid: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let links_json = serde_json::to_string(&links)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveRemoveLinks", + {{ links: {}, uuid: "{}" }}, + {{ capabilities: {} }} + ))"#, + links_json, uuid, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_update( + &self, + context: &RequestContext, + name: String, + uuid: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveUpdate", + {{ name: "{}", uuid: "{}" }}, + {{ capabilities: {} }} + ))"#, + name, uuid, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_update_link( + &self, + context: &RequestContext, + new_link: LinkInput, + old_link: LinkExpressionInput, + uuid: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let new_link_json = serde_json::to_string(&new_link)?; + let old_link_json = serde_json::to_string(&old_link)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "perspectiveUpdateLink", + {{ newLink: {}, oldLink: {}, uuid: "{}" }}, + {{ capabilities: {} }} + ))"#, + new_link_json, old_link_json, uuid, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_add_friends( + &self, + context: &RequestContext, + dids: Vec, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let dids_json = serde_json::to_string(&dids)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "runtimeAddFriends", + {{ dids: {} }}, + {{ capabilities: {} }} + ))"#, + dids_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_add_known_link_language_templates( + &self, + context: &RequestContext, + addresses: Vec, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let addresses_json = serde_json::to_string(&addresses)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "runtimeAddKnownLinkLanguageTemplates", + {{ addresses: {} }}, + {{ capabilities: {} }} + ))"#, + addresses_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_friend_send_message( + &self, + context: &RequestContext, + did: String, + message: PerspectiveInput, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let message_json = serde_json::to_string(&message)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "runtimeFriendSendMessage", + {{ did: "{}", message: {} }}, + {{ capabilities: {} }} + ))"#, + did, message_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_hc_add_agent_infos( + &self, + context: &RequestContext, + agent_infos: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "runtimeHcAddAgentInfos", + {{ agentInfos: JSON.stringify({}) }}, + {{ capabilities: {} }} + ))"#, + agent_infos, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_open_link(&self, context: &RequestContext, url: String) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "runtimeOpenLink", + {{ url: "{}" }}, + {{ capabilities: {} }} + ))"#, + url, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_quit(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "runtimeQuit", + {{ capabilities: {} }} + ))"#, + capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_remove_friends( + &self, + context: &RequestContext, + dids: Vec, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let dids_json = serde_json::to_string(&dids)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "runtimeRemoveFriends", + {{ dids: {} }}, + {{ capabilities: {} }} + ))"#, + dids_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_remove_known_link_language_templates( + &self, + context: &RequestContext, + addresses: Vec, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let addresses_json = serde_json::to_string(&addresses)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "runtimeRemoveKnownLinkLanguageTemplates", + {{ addresses: {} }}, + {{ capabilities: {} }} + ))"#, + addresses_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_set_status( + &self, + context: &RequestContext, + status: PerspectiveInput, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let status_json = serde_json::to_string(&status)?; + let script = format!( + r#"JSON.stringify( + await core.callResolver( + "Mutation", + "runtimeSetStatus", + {{ status: {} }}, + {{ capabilities: {} }} + ))"#, + status_json, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } +} diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs new file mode 100644 index 000000000..955ad981d --- /dev/null +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -0,0 +1,552 @@ +#![allow(non_snake_case)] +use juniper::{graphql_object, FieldResult}; + +use super::graphql_types::*; +use super::utils::get_capabilies; +use super::RequestContext; + +pub struct Query; + +#[graphql_object(context = RequestContext)] +impl Query { + async fn agent(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "agent", null, {{ capabilities: {} }}))"#, + capabilities + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + #[graphql(name = "agentByDID")] + async fn agent_by_did( + &self, + context: &RequestContext, + did: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute( + format!( + r#"JSON.stringify( + await core.callResolver("Query", "agentByDID", + {{ did: "{}" }}, + {{ capabilities: {} }} + ) + )"#, + did, capabilities + ) + .into(), + ) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_get_apps(&self, context: &RequestContext) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "agentGetApps", {{ capabilities: {} }}))"#, + capabilities + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_get_entanglement_proofs( + &self, + context: &RequestContext, + ) -> FieldResult> { + let _capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "agentGetEntanglementProofs", null, null))"# + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_is_locked(&self, context: &RequestContext) -> FieldResult { + let _capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "agentIsLocked", null, null))"# + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn agent_status(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "agentStatus", {{ capabilities: {} }}))"#, + capabilities + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn expression( + &self, + context: &RequestContext, + url: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "expression", {{ url: "{}" }}, {{ capabilities: {} }}))"#, + url, + capabilities + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn expression_interactions( + &self, + context: &RequestContext, + url: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "expressionInteractions", {{ url: "{}" }}, {{ capabilities: {} }}))"#, + url, + capabilities + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn expression_many( + &self, + context: &RequestContext, + urls: Vec, + ) -> FieldResult>> { + let urls_string = urls + .into_iter() + .map(|url| format!("\"{}\"", url)) + .collect::>() + .join(","); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "expressionMany", {{ urls: [{}] }}, {{ capabilities: {} }}))"#, + urls_string, + capabilities + )) + .await?; + let result: JsResultType>> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn expression_raw( + &self, + context: &RequestContext, + url: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "expressionRaw", {{ url: "{}" }}, {{ capabilities: {} }}))"#, + url, + capabilities + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn get_trusted_agents(&self, context: &RequestContext) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "getTrustedAgents", {{ capabilities: {} }}))"#, + capabilities + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn language( + &self, + context: &RequestContext, + address: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "language", {{ address: "{}" }}, {{ capabilities: {} }}))"#, + address, + capabilities + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn language_meta( + &self, + context: &RequestContext, + address: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "languageMeta", {{ address: "{}" }}, {{ capabilities: {} }}))"#, + address, + capabilities + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn language_source( + &self, + context: &RequestContext, + address: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "languageSource", {{ address: "{}" }}, {{ capabilities: {} }}))"#, + address, + capabilities + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn languages( + &self, + context: &RequestContext, + filter: Option, + ) -> FieldResult> { + let filter_string = filter.map_or("null".to_string(), |f| format!("\"{}\"", f)); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "languages", {{ filter: "{}" }}, {{ capabilities: {} }}))"#, + filter_string, + capabilities + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_has_telepresence_adapter( + &self, + context: &RequestContext, + perspectiveUUID: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodHasTelepresenceAdapter", {{ perspectiveUUID: "{}" }}, {{ capabilities: {} }}))"#, perspectiveUUID, capabilities)) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_online_agents( + &self, + context: &RequestContext, + perspectiveUUID: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOnlineAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: {} }}))"#, perspectiveUUID, capabilities)) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn neighbourhood_other_agents( + &self, + context: &RequestContext, + perspectiveUUID: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOtherAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: {} }}))"#, perspectiveUUID, capabilities)) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective( + &self, + context: &RequestContext, + uuid: String, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "perspective", {{ uuid: "{}" }}, {{ capabilities: {} }}))"#, + uuid, + capabilities + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_query_links( + &self, + context: &RequestContext, + query: LinkQuery, + uuid: String, + ) -> FieldResult> { + let query_string = serde_json::to_string(&query)?; + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify(await core.callResolver("Query", "perspectiveQueryLinks", {{ query: {}, uuid: "{}" }}, {{ capabilities: {} }}))"#, + query_string, uuid, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_query_prolog( + &self, + context: &RequestContext, + query: String, + uuid: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let script = format!( + r#"JSON.stringify(await core.callResolver("Query", "perspectiveQueryProlog", {{ query: '{}', uuid: "{}" }}, {{ capabilities: {} }}))"#, + query, uuid, capabilities + ); + let result = js.execute(script).await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspective_snapshot( + &self, + context: &RequestContext, + uuid: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "perspectiveSnapshot", {{ uuid: "{}" }}, {{ capabilities: {} }}))"#, + uuid, + capabilities + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn perspectives(&self, context: &RequestContext) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "perspectives", {{ capabilities: {} }}))"#, + capabilities + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_friend_status( + &self, + context: &RequestContext, + did: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "runtimeFriendStatus", {{ did: "{}" }}, {{ capabilities: {} }}))"#, + did, + capabilities + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_friends(&self, context: &RequestContext) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "runtimeFriends", {{ capabilities: {} }}))"#, + capabilities + )) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_hc_agent_infos(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeHcAgentInfos", {{ capabilities: {} }}))"#, capabilities)) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_info(&self, context: &RequestContext) -> FieldResult { + let _capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "runtimeInfo", null))"#, + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_known_link_language_templates( + &self, + context: &RequestContext, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeKnownLinkLanguageTemplates", {{ capabilities: {} }}))"#, capabilities)) + .await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_message_inbox( + &self, + context: &RequestContext, + filter: Option, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let filter_str = filter + .map(|val| format!(r#"{{ filter: "{}" }}"#, val)) + .unwrap_or_else(|| String::from("{ filter: null }")); + let script = format!( + r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageInbox", {}, {{ capabilities: {} }}))"#, + filter_str, capabilities + ); + let mut js = context.js_handle.clone(); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_message_outbox( + &self, + context: &RequestContext, + filter: Option, + ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let filter_str = filter + .map(|val| format!(r#"{{ filter: "{}" }}"#, val)) + .unwrap_or_else(|| String::from("{ filter: null }")); + let script = format!( + r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageOutbox", {}, {{ capabilities: {} }}))"#, + filter_str, capabilities + ); + let mut js = context.js_handle.clone(); + let result = js.execute(script).await?; + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() + } + + async fn runtime_verify_string_signed_by_did( + &self, + context: &RequestContext, + data: String, + did: String, + did_signing_key_id: String, + signed_data: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); + let result = js + .execute(format!( + r#"JSON.stringify( + await core.callResolver("Query", "runtimeVerifyStringSignedByDid", + {{ data: "{}", did: "{}", didSigningKeyId: "{}", signedData: "{}" }}, + {{ capabilities: {} }} + ) + )"#, + data, did, did_signing_key_id, signed_data, capabilities + )) + .await?; + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() + } +} diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs new file mode 100644 index 000000000..7a5459a3f --- /dev/null +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -0,0 +1,378 @@ +#![allow(non_snake_case)] +use futures::stream; +use futures::stream::Stream; +use juniper::FieldResult; +use std::pin::Pin; + +use crate::pubsub::{ + get_global_pubsub, subscribe_and_process, AGENT_STATUS_CHANGED_TOPIC, AGENT_UPDATED_TOPIC, + APPS_CHANGED, EXCEPTION_OCCURRED_TOPIC, NEIGHBOURHOOD_SIGNAL_TOPIC, PERSPECTIVE_ADDED_TOPIC, + PERSPECTIVE_LINK_ADDED_TOPIC, PERSPECTIVE_LINK_REMOVED_TOPIC, PERSPECTIVE_LINK_UPDATED_TOPIC, + PERSPECTIVE_REMOVED_TOPIC, PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC, PERSPECTIVE_UPDATED_TOPIC, + RUNTIME_MESSAGED_RECEIVED_TOPIC, +}; + +use super::graphql_types::*; +use super::utils::{ + check_capabilities, get_capabilies, AGENT_SUBSCRIBE_CAPABILITY, + PERSPECTIVE_SUBSCRIBE_CAPABILITY, RUNTIME_EXCEPTION_SUBSCRIBE_CAPABILITY, + RUNTIME_MESSAGES_SUBSCRIBE_CAPABILITY, +}; +use super::RequestContext; + +pub struct Subscription; + +#[juniper::graphql_subscription(context = RequestContext)] +impl Subscription { + async fn agent_status_changed( + &self, + context: &RequestContext, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + let pubsub = get_global_pubsub().await; + let topic = &AGENT_STATUS_CHANGED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), None).await + } + + async fn agent_apps_changed( + &self, + context: &RequestContext, + ) -> Pin>> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + let pubsub = get_global_pubsub().await; + let topic = &APPS_CHANGED; + + subscribe_and_process::>(pubsub, topic.to_string(), None).await + } + + async fn agent_updated( + &self, + context: &RequestContext, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(AGENT_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + } + + let pubsub = get_global_pubsub().await; + let topic = &AGENT_UPDATED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), None).await + } + + async fn exception_occurred( + &self, + context: &RequestContext, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(RUNTIME_EXCEPTION_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + } + + let pubsub = get_global_pubsub().await; + let topic = &EXCEPTION_OCCURRED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), None).await + } + + async fn neighbourhood_signal( + &self, + context: &RequestContext, + perspectiveUUID: String, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(RUNTIME_MESSAGES_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + + let pubsub = get_global_pubsub().await; + let topic = &NEIGHBOURHOOD_SIGNAL_TOPIC; + + subscribe_and_process::( + pubsub, + topic.to_string(), + Some(perspectiveUUID), + ) + .await + } + + async fn perspective_added( + &self, + context: &RequestContext, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_ADDED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), None).await + } + + async fn perspective_link_added( + &self, + context: &RequestContext, + uuid: String, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_LINK_ADDED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), Some(uuid)).await + } + + async fn perspective_link_removed( + &self, + context: &RequestContext, + uuid: String, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_LINK_REMOVED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), Some(uuid)).await + } + + async fn perspective_link_updated( + &self, + context: &RequestContext, + uuid: String, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_LINK_UPDATED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), Some(uuid)) + .await + } + + async fn perspective_removed( + &self, + context: &RequestContext, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_REMOVED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), None).await + } + + async fn perspective_sync_state_change( + &self, + context: &RequestContext, + uuid: String, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), Some(uuid)).await + } + + async fn perspective_updated( + &self, + context: &RequestContext, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_UPDATED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), None).await + } + + async fn runtime_message_received( + &self, + context: &RequestContext, + ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + + let pubsub = get_global_pubsub().await; + let topic = &RUNTIME_MESSAGED_RECEIVED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string(), None).await + } +} diff --git a/rust-executor/src/graphql/utils.rs b/rust-executor/src/graphql/utils.rs new file mode 100644 index 000000000..5114f2ff5 --- /dev/null +++ b/rust-executor/src/graphql/utils.rs @@ -0,0 +1,113 @@ +use juniper::{graphql_value, FieldError, FieldResult}; +use serde::{Deserialize, Serialize}; + +use crate::js_core::JsCoreHandle; + +pub async fn get_capabilies( + js: JsCoreHandle, + capability: String, +) -> FieldResult { + let mut js = js.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Query", "getCapabilities", "{}") + )"#, + capability + ); + let result = js.execute(script).await; + match result { + Ok(result) => { + let result = serde_json::from_str::(&result)?; + match result.get("Ok") { + Some(ok) => Ok(ok + .get("capabilities") + .expect("missing capabilities") + .to_owned()), + None => Err(FieldError::new( + result.get("Error").unwrap(), + graphql_value!({ "type": "UNAUTHORIZED" }), + )), + } + } + Err(e) => Err(FieldError::new( + e.to_string(), + graphql_value!({ "type": "UNAUTHORIZED" }), + )), + } +} + +pub async fn check_capabilities( + js: JsCoreHandle, + capability: serde_json::Value, + expected_capabilities: serde_json::Value, +) -> FieldResult<()> { + let mut js = js.clone(); + + let script = format!( + r#"JSON.stringify( + await core.callResolver("Query", "checkCapability", {}, {}) + )"#, + capability, expected_capabilities + ); + let result = js.execute(script).await; + match result { + Ok(_result) => Ok(()), + Err(err) => Err(FieldError::new( + err.to_string(), + graphql_value!({ "type": "UNAUTHORIZED" }), + )), + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Capability { + pub with: WithCapability, + pub can: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct WithCapability { + pub domain: String, + pub pointers: Vec, +} + +lazy_static::lazy_static! { + pub static ref AGENT: String = String::from("agent"); + pub static ref PERSPECTIVE: String = String::from("perspective"); + pub static ref RUNTIME_MESSAGES: String = String::from("runtime.messages"); + pub static ref RUNTIME_EXCEPTION: String = String::from("runtime.exception"); + pub static ref WILD_CARD: String = String::from("*"); + pub static ref SUBSCRIBE: String = String::from("SUBSCRIBE"); + + pub static ref AGENT_SUBSCRIBE_CAPABILITY: Capability = Capability { + with: WithCapability { + domain: AGENT.to_string(), + pointers: vec![WILD_CARD.to_string()], + }, + can: vec![SUBSCRIBE.to_string()], + }; + + pub static ref PERSPECTIVE_SUBSCRIBE_CAPABILITY: Capability = Capability { + with: WithCapability { + domain: PERSPECTIVE.to_string(), + pointers: vec![WILD_CARD.to_string()], + }, + can: vec![SUBSCRIBE.to_string()], + }; + + pub static ref RUNTIME_MESSAGES_SUBSCRIBE_CAPABILITY: Capability = Capability { + with: WithCapability{ + domain: RUNTIME_MESSAGES.to_string(), + pointers: vec![WILD_CARD.to_string()], + }, + can: vec![SUBSCRIBE.to_string()], + }; + + pub static ref RUNTIME_EXCEPTION_SUBSCRIBE_CAPABILITY: Capability = Capability { + with: WithCapability{ + domain: RUNTIME_EXCEPTION.to_string(), + pointers: vec![WILD_CARD.to_string()], + }, + can: vec![SUBSCRIBE.to_string()], + }; +} diff --git a/rust-executor/src/holochain_service/holochain_service_extension.js b/rust-executor/src/holochain_service/holochain_service_extension.js new file mode 100644 index 000000000..8fa8f9fcf --- /dev/null +++ b/rust-executor/src/holochain_service/holochain_service_extension.js @@ -0,0 +1,46 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.HOLOCHAIN_SERVICE = { + startHolochainConductor: async (config) => { + return core.opAsync("start_holochain_conductor", config); + }, + logDhtStatus: async () => { + return core.opAsync("log_dht_status"); + }, + installApp: async (install_app_payload) => { + return core.opAsync("install_app", install_app_payload); + }, + getAppInfo: async (app_id) => { + return core.opAsync("get_app_info", app_id); + }, + callZomeFunction: async (app_id, cell_name, zome_name, fn_name, payload) => { + return core.opAsync("call_zome_function", app_id, cell_name, zome_name, fn_name, payload); + }, + agentInfos: async () => { + return core.opAsync("agent_infos"); + }, + addAgentInfos: async (agent_infos) => { + return core.opAsync("add_agent_infos", agent_infos); + }, + removeApp: async (app_id) => { + return core.opAsync("remove_app", app_id); + }, + signString: async (string) => { + return core.opAsync("sign_string", string); + }, + shutdown: async () => { + return core.opAsync("shutdown") + }, + getAgentKey: async () => { + return core.opAsync("get_agent_key") + }, + packDna: async (path) => { + return core.opAsync("pack_dna", path) + }, + unPackDna: async (path) => { + return core.opAsync("unpack_dna", path) + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs new file mode 100644 index 000000000..ca9b2ed48 --- /dev/null +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -0,0 +1,198 @@ +use std::borrow::Cow; + +use deno_core::{error::AnyError, include_js_files, op, Extension, Op, anyhow::anyhow}; +use holochain::{ + conductor::api::AppInfo, + prelude::{ + agent_store::AgentInfoSigned, hash_type::Agent, ExternIO, HoloHash, InstallAppPayload, + Signature, ZomeCallResponse, + }, +}; +use tokio::time::timeout; +use std::time::Duration; +use log::error; + +use crate::holochain_service::{HolochainService, LocalConductorConfig}; + +use super::get_holochain_service; + +// The duration to use for timeouts +const TIMEOUT_DURATION: Duration = Duration::from_secs(5); + +#[op] +async fn start_holochain_conductor(config: LocalConductorConfig) -> Result<(), AnyError> { + HolochainService::init(config).await?; + Ok(()) +} + +#[op] +async fn log_dht_status() -> Result<(), AnyError> { + let res = timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.log_network_metrics().await + } + ).await; + match res { + Ok(_) => Ok(()), + Err(_) => { + error!("Timeout error logging dht status"); + Ok(()) + }, + } +} + +#[op] +async fn install_app(install_app_payload: InstallAppPayload) -> Result { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.install_app(install_app_payload).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +#[op] +async fn get_app_info(app_id: String) -> Result, AnyError> { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.get_app_info(app_id).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +//TODO +//Have install app use lair to generate the membrane proof +#[op] +async fn call_zome_function( + app_id: String, + cell_name: String, + zome_name: String, + fn_name: String, + payload: Option, +) -> Result { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.call_zome_function(app_id, cell_name, zome_name, fn_name, payload).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +#[op] +async fn agent_infos() -> Result, AnyError> { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.agent_infos().await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +#[op] +async fn add_agent_infos(agent_infos_payload: Vec) -> Result<(), AnyError> { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.add_agent_infos(agent_infos_payload).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +#[op] +async fn remove_app(app_id: String) -> Result<(), AnyError> { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.remove_app(app_id).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +#[op] +async fn sign_string(data: String) -> Result { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.sign(data).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +#[op] +async fn shutdown() -> Result<(), AnyError> { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.shutdown().await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +#[op] +async fn get_agent_key() -> Result, AnyError> { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.get_agent_key().await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +#[op] +async fn pack_dna(path: String) -> Result { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.pack_dna(path).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +#[op] +async fn unpack_dna(path: String) -> Result { + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.unpack_dna(path).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? +} + +//Implement signal callbacks from dna/holochain to js + +pub fn build() -> Extension { + Extension { + name: "holochain_service", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/holochain_service/holochain_service_extension.js",)), + ops: Cow::Borrowed(&[ + start_holochain_conductor::DECL, + log_dht_status::DECL, + install_app::DECL, + get_app_info::DECL, + call_zome_function::DECL, + agent_infos::DECL, + add_agent_infos::DECL, + remove_app::DECL, + sign_string::DECL, + shutdown::DECL, + get_agent_key::DECL, + pack_dna::DECL, + unpack_dna::DECL, + ]), + ..Default::default() + } +} diff --git a/rust-executor/src/holochain_service/interface.rs b/rust-executor/src/holochain_service/interface.rs new file mode 100644 index 000000000..fabd78529 --- /dev/null +++ b/rust-executor/src/holochain_service/interface.rs @@ -0,0 +1,222 @@ +use deno_core::error::AnyError; +use holochain::conductor::api::AppInfo; +use holochain::prelude::agent_store::AgentInfoSigned; +use holochain::prelude::hash_type::Agent; +use holochain::prelude::{ + ExternIO, HoloHash, InstallAppPayload, Signal, Signature, ZomeCallResponse, +}; +use lazy_static::lazy_static; +use std::sync::Arc; +use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender}; +use tokio::sync::{oneshot, Mutex, RwLock}; + +#[derive(Clone)] +pub struct HolochainServiceInterface { + pub sender: UnboundedSender, + pub stream_receiver: Arc>>, +} + +#[derive(Debug)] +pub enum HolochainServiceRequest { + InstallApp(InstallAppPayload, oneshot::Sender), + CallZomeFunction { + app_id: String, + cell_name: String, + zome_name: String, + fn_name: String, + payload: Option, + response: oneshot::Sender, + }, + RemoveApp(String, oneshot::Sender), + AgentInfos(oneshot::Sender), + AddAgentInfos( + Vec, + oneshot::Sender, + ), + Sign(String, oneshot::Sender), + Shutdown(oneshot::Sender), + GetAgentKey(oneshot::Sender), + GetAppInfo(String, oneshot::Sender), + LogNetworkMetrics(oneshot::Sender), + PackDna(String, oneshot::Sender), + UnPackDna(String, oneshot::Sender), +} + +#[derive(Debug)] +pub enum HolochainServiceResponse { + InstallApp(Result), + CallZomeFunction(Result), + RemoveApp(Result<(), AnyError>), + AgentInfos(Result, AnyError>), + AddAgentInfos(Result<(), AnyError>), + Sign(Result), + Shutdown(Result<(), AnyError>), + GetAgentKey(Result, AnyError>), + GetAppInfo(Result, AnyError>), + InitComplete(Result<(), AnyError>), + LogNetworkMetrics(Result<(), AnyError>), + PackDna(Result), + UnPackDna(Result), +} + +impl HolochainServiceInterface { + pub async fn install_app(&self, payload: InstallAppPayload) -> Result { + let (response_sender, response_receiver) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::InstallApp( + payload, + response_sender, + ))?; + match response_receiver.await.unwrap() { + HolochainServiceResponse::InstallApp(result) => result, + _ => unreachable!(), + } + } + + pub async fn call_zome_function( + &self, + app_id: String, + cell_name: String, + zome_name: String, + fn_name: String, + payload: Option, + ) -> Result { + let (response_sender, response_receiver) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::CallZomeFunction { + app_id, + cell_name, + zome_name, + fn_name, + payload, + response: response_sender, + })?; + match response_receiver.await.unwrap() { + HolochainServiceResponse::CallZomeFunction(result) => result, + _ => unreachable!(), + } + } + + pub async fn remove_app(&self, app_id: String) -> Result<(), AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::RemoveApp(app_id, response_tx))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::RemoveApp(result) => result, + _ => unreachable!(), + } + } + + pub async fn agent_infos(&self) -> Result, AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::AgentInfos(response_tx))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::AgentInfos(result) => result, + _ => unreachable!(), + } + } + + pub async fn add_agent_infos(&self, agent_infos: Vec) -> Result<(), AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::AddAgentInfos( + agent_infos, + response_tx, + ))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::AddAgentInfos(result) => result, + _ => unreachable!(), + } + } + + pub async fn sign(&self, data: String) -> Result { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::Sign(data, response_tx))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::Sign(result) => result, + _ => unreachable!(), + } + } + + pub async fn shutdown(&self) -> Result<(), AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::Shutdown(response_tx))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::Shutdown(result) => result, + _ => unreachable!(), + } + } + + pub async fn get_agent_key(&self) -> Result, AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::GetAgentKey(response_tx))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::GetAgentKey(result) => result, + _ => unreachable!(), + } + } + + pub async fn get_app_info(&self, app_id: String) -> Result, AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::GetAppInfo(app_id, response_tx))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::GetAppInfo(result) => result, + _ => unreachable!(), + } + } + + pub async fn log_network_metrics(&self) -> Result<(), AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::LogNetworkMetrics(response_tx))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::LogNetworkMetrics(result) => result, + _ => unreachable!(), + } + } + + pub async fn pack_dna(&self, path: String) -> Result { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::PackDna(path, response_tx))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::PackDna(result) => result, + _ => unreachable!(), + } + } + + pub async fn unpack_dna(&self, path: String) -> Result { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::UnPackDna(path, response_tx))?; + match response_rx.await.unwrap() { + HolochainServiceResponse::UnPackDna(result) => result, + _ => unreachable!(), + } + } +} + +lazy_static! { + static ref HOLOCHAIN_SERVICE: Arc>> = + Arc::new(RwLock::new(None)); +} + +pub async fn get_holochain_service() -> HolochainServiceInterface { + let lock = HOLOCHAIN_SERVICE.read().await; + lock.clone().expect("Holochain Conductor not started") +} + +pub async fn maybe_get_holochain_service() -> Option { + let lock = HOLOCHAIN_SERVICE.read().await; + lock.clone() +} + +pub async fn set_holochain_service(service: HolochainServiceInterface) { + let mut lock = HOLOCHAIN_SERVICE.write().await; + *lock = Some(service); +} diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs new file mode 100644 index 000000000..2a1da102e --- /dev/null +++ b/rust-executor/src/holochain_service/mod.rs @@ -0,0 +1,595 @@ +use std::path::PathBuf; +use std::sync::Arc; + +use chrono::Duration; +use crypto_box::rand_core::OsRng; +use deno_core::anyhow::anyhow; +use deno_core::error::AnyError; +use holochain::conductor::api::{AppInfo, CellInfo, ZomeCall}; +use holochain::conductor::config::ConductorConfig; +use holochain::conductor::{ConductorBuilder, ConductorHandle}; +use holochain::prelude::agent_store::AgentInfoSigned; +use holochain::prelude::hash_type::Agent; +//use holochain::prelude::kitsune_p2p::dependencies::kitsune_p2p_types::config::tuning_params_struct::KitsuneP2pTuningParams; +use holochain::prelude::kitsune_p2p::dependencies::url2::Url2; +use holochain::prelude::{ + ExternIO, HoloHash, InstallAppPayload, KitsuneP2pConfig, NetworkType, Signal, + Signature, Timestamp, TransportConfig, ZomeCallResponse, ZomeCallUnsigned +}; +use holochain::test_utils::itertools::Either; +use holochain_types::dna::ValidatedDnaManifest; +use log::{info, error}; +use rand::Rng; +use serde::{Deserialize, Serialize}; +use tokio::select; +use tokio::sync::{mpsc, oneshot, Mutex}; +use tokio::task::yield_now; +use tokio::time::timeout; +use tokio_stream::StreamExt; + +pub(crate) mod holochain_service_extension; +pub(crate) mod interface; + +pub(crate) use interface::{ + get_holochain_service, HolochainServiceInterface, + HolochainServiceRequest, HolochainServiceResponse, maybe_get_holochain_service +}; + +use self::interface::set_holochain_service; + +#[derive(Clone)] +pub struct HolochainService { + pub conductor: ConductorHandle, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct LocalConductorConfig { + pub passphrase: String, + pub conductor_path: String, + pub data_path: String, + pub use_bootstrap: bool, + pub use_proxy: bool, + pub use_local_proxy: bool, + pub use_mdns: bool, + pub proxy_url: String, + pub bootstrap_url: String, + pub app_port: u16, +} + +impl HolochainService { + pub async fn init(local_config: LocalConductorConfig) -> Result<(), AnyError> { + let (sender, mut receiver) = mpsc::unbounded_channel::(); + let (stream_sender, stream_receiver) = mpsc::unbounded_channel::(); + + let inteface = HolochainServiceInterface { + sender, + stream_receiver: Arc::new(Mutex::new(stream_receiver)), + }; + + let (response_sender, response_receiver) = oneshot::channel(); + + std::thread::spawn(move || { + let rt = tokio::runtime::Builder::new_multi_thread() + .thread_name(String::from("holochain_service")) + .enable_all() + .build() + .expect("Failed to create Tokio runtime"); + let _guard = rt.enter(); + + tokio::task::block_in_place(|| { + rt.block_on(async move { + let mut service = HolochainService::new(local_config).await.unwrap(); + let conductor_clone = service.conductor.clone(); + + // Spawn a new task to forward items from the stream to the receiver + let spawned_sig = tokio::spawn(async move { + let sig_broadcasters = conductor_clone.signal_broadcaster(); + + let mut streams = tokio_stream::StreamMap::new(); + for (i, rx) in sig_broadcasters + .subscribe_separately() + .into_iter() + .enumerate() + { + streams.insert(i, tokio_stream::wrappers::BroadcastStream::new(rx)); + } + let mut stream = + streams.map(|(_, signal)| signal.expect("Couldn't receive a signal")); + + response_sender + .send(HolochainServiceResponse::InitComplete(Ok(()))) + .unwrap(); + + loop { + while let Some(item) = stream.next().await { + let _ = stream_sender.send(item); + } + yield_now().await; + } + }); + + let spawned_receiver = tokio::spawn(async move { + while let Some(message) = receiver.recv().await { + match message { + HolochainServiceRequest::InstallApp(payload, response) => { + match timeout( + std::time::Duration::from_secs(10), + service.install_app(payload) + ).await.map_err(|_| anyhow!("Timeout error; InstallApp call")) { + Ok(result) => { + let _ = response.send(HolochainServiceResponse::InstallApp(result)); + }, + Err(err) => { + let _ = response.send(HolochainServiceResponse::InstallApp(Err(err))); + }, + } + } + HolochainServiceRequest::CallZomeFunction { + app_id, + cell_name, + zome_name, + fn_name, + payload, + response, + } => { + match timeout( + std::time::Duration::from_secs(5), + service.call_zome_function(app_id, cell_name, zome_name, fn_name, payload) + ).await.map_err(|_| anyhow!("Timeout error; Call Zome Function")) { + Ok(result) => { + let _ = response.send(HolochainServiceResponse::CallZomeFunction(result)); + }, + Err(err) => { + let _ = response.send(HolochainServiceResponse::CallZomeFunction(Err(err))); + }, + } + } + HolochainServiceRequest::RemoveApp(app_id, response_tx) => { + match timeout( + std::time::Duration::from_secs(10), + service.remove_app(app_id) + ).await.map_err(|_| anyhow!("Timeout error; Remove App")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::RemoveApp(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::RemoveApp(Err(err))); + }, + } + } + HolochainServiceRequest::AgentInfos(response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.agent_infos() + ).await.map_err(|_| anyhow!("Timeout error; AgentInfos")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::AgentInfos(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::AgentInfos(Err(err))); + }, + } + } + HolochainServiceRequest::AddAgentInfos(agent_infos, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.add_agent_infos(agent_infos) + ).await.map_err(|_| anyhow!("Timeout error; AddAgentInfos")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::AddAgentInfos(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::AddAgentInfos(Err(err))); + }, + } + } + HolochainServiceRequest::Sign(data, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.sign(data) + ).await.map_err(|_| anyhow!("Timeout error; Sign")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::Sign(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::Sign(Err(err))); + }, + } + } + HolochainServiceRequest::Shutdown(response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.shutdown() + ).await.map_err(|_| anyhow!("Timeout error Shutdown")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::Shutdown(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::Shutdown(Err(err))); + }, + } + } + HolochainServiceRequest::GetAgentKey(response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.get_agent_key() + ).await.map_err(|_| anyhow!("Timeout error; GetAgentKey")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(Err(err))); + }, + } + } + HolochainServiceRequest::GetAppInfo(app_id, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.get_app_info(app_id) + ).await.map_err(|_| anyhow!("Timeout error; GetAppInfo")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(Err(err))); + }, + } + } + HolochainServiceRequest::LogNetworkMetrics(response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.log_network_metrics() + ).await.map_err(|_| anyhow!("Timeout error; LogNetworkMetrics")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::LogNetworkMetrics(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::LogNetworkMetrics(Err(err))); + }, + } + } + HolochainServiceRequest::PackDna(path, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + HolochainService::pack_dna(path) + ).await.map_err(|_| anyhow!("Timeout error; PackDna")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::PackDna(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::PackDna(Err(err))); + }, + } + } + HolochainServiceRequest::UnPackDna(path, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + HolochainService::unpack_dna(path) + ).await.map_err(|_| anyhow!("Timeout error; UnpackDna")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::UnPackDna(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::UnPackDna(Err(err))); + }, + } + } + }; + }; + error!("Holochain service receiver closed"); + }); + + select! { + _ = spawned_sig => {}, + _ = spawned_receiver => {}, + } + + error!("Holochain service exited") + }); + }) + }); + + match response_receiver.await? { + HolochainServiceResponse::InitComplete(result) => result?, + _ => unreachable!(), + }; + + set_holochain_service(inteface).await; + + Ok(()) + } + + pub async fn new(local_config: LocalConductorConfig) -> Result { + let conductor_yaml_path = + std::path::Path::new(&local_config.conductor_path).join("conductor_config.yaml"); + let config = if conductor_yaml_path.exists() { + let config = ConductorConfig::load_yaml(&conductor_yaml_path)?; + config + } else { + let mut config = ConductorConfig::default(); + config.environment_path = PathBuf::from(local_config.conductor_path.clone()).into(); + config.admin_interfaces = None; + + let mut kitsune_config = KitsuneP2pConfig::default(); + // let mut tuning_params = KitsuneP2pTuningParams::default(); + + // // How long should we hold off talking to a peer + // // we've previously gotten errors speaking to. + // // [Default: 5 minute; now updated to 2 minutes] + // tuning_params.gossip_peer_on_error_next_gossip_delay_ms = 1000 * 60 * 2; + + // // How often should we update and publish our agent info? + // // [Default: 5 minutes; now updated to 2 minutes] + // tuning_params.gossip_agent_info_update_interval_ms = 1000 * 60 * 2; + + // kitsune_config.tuning_params = Arc::new(tuning_params); + + if local_config.use_bootstrap { + kitsune_config.bootstrap_service = Some(Url2::parse(local_config.bootstrap_url)); + } else { + kitsune_config.bootstrap_service = None; + } + if local_config.use_mdns { + kitsune_config.network_type = NetworkType::QuicMdns; + } else { + kitsune_config.network_type = NetworkType::QuicBootstrap; + } + if local_config.use_proxy { + kitsune_config.transport_pool = vec![TransportConfig::WebRTC { + signal_url: local_config.proxy_url, + }]; + } else { + kitsune_config.transport_pool = vec![ + TransportConfig::Mem {}, + TransportConfig::WebRTC { + signal_url: local_config.proxy_url, + }, + ]; + } + config.network = Some(kitsune_config); + + config + }; + + info!("Starting holochain conductor with config: {:#?}", config); + let conductor = ConductorBuilder::new() + .config(config) + .passphrase(Some(local_config.passphrase.as_bytes().into())) + .build() + .await; + + if conductor.is_err() { + info!("Could not start holochain conductor: {:#?}", conductor.err()); + panic!("Could not start holochain conductor"); + } + + info!("Started holochain conductor"); + + let conductor = conductor.unwrap(); + + let interface = conductor + .clone() + .add_app_interface(Either::Left(local_config.app_port)) + .await; + + info!("Added app interface: {:?}", interface); + + let service = Self { conductor }; + + Ok(service) + } + + pub async fn install_app( + &mut self, + install_app_payload: InstallAppPayload, + ) -> Result { + if install_app_payload.installed_app_id.is_none() { + return Err(anyhow!("App id is required")); + } + + let app_id = install_app_payload.installed_app_id.clone().unwrap(); + + //Check if app_id already exists + let app_info = self.conductor.get_app_info(&app_id).await?; + + match app_info { + None => { + self.conductor + .clone() + .install_app_bundle(install_app_payload) + .await + .map_err(|e| anyhow!("Could not install app: {:?}", e))?; + + self + .conductor + .clone() + .enable_app(app_id.clone()) + .await + .map_err(|e| anyhow!("Could not activate app: {:?}", e))?; + + let app_info = self.conductor.get_app_info(&app_id).await?; + Ok(app_info.unwrap()) + } + Some(app_info) => { + info!("App already installed with id: {:?}", app_id); + Ok(app_info) + } + } + } + + pub async fn call_zome_function( + &self, + app_id: String, + cell_name: String, + zome_name: String, + fn_name: String, + payload: Option, + ) -> Result { + info!( + "Calling zome function: {:?} {:?} {:?} {:?}", + app_id, cell_name, zome_name, fn_name + ); + let app_info = self.conductor.get_app_info(&app_id).await?; + + if app_info.is_none() { + return Err(anyhow!("App not installed with id: {:?}", app_id)); + } + + let app_info = app_info.unwrap(); + + let cell_entry = app_info.cell_info.get(&format!("{}-{}", app_id, cell_name)); + + if cell_entry.is_none() { + return Err(anyhow!( + "Cell not installed with name: {:?} in app: {:?}", + cell_name, + app_id + )); + } + + if cell_entry.unwrap().len() == 0 { + return Err(anyhow!( + "No cells for cell name: {:?} in app: {:?}", + cell_name, + app_id + )); + } + + let cell_info = cell_entry.unwrap().first().unwrap().clone(); + let cell_id = match cell_info { + CellInfo::Provisioned(cell) => cell.cell_id, + CellInfo::Cloned(cell) => cell.cell_id, + CellInfo::Stem(_cell) => return Err(anyhow!("Cell is not provisioned or cloned",)), + }; + + let agent_pub_key = app_info.agent_pub_key; + + //Get the agents pub key from the conductor + + fn generate_nonce() -> [u8; 32] { + let mut rng = OsRng; + let mut nonce = [0u8; 32]; + rng.fill(&mut nonce); + nonce + } + + let payload = match payload { + Some(payload) => payload, + None => ExternIO::encode(()).unwrap(), + }; + + let zome_call_unsigned = ZomeCallUnsigned { + cell_id: cell_id, + zome_name: zome_name.into(), + fn_name: fn_name.into(), + payload: payload, + cap_secret: None, + provenance: agent_pub_key, + nonce: generate_nonce().into(), + expires_at: Timestamp::now() + .checked_add_signed(&Duration::seconds(300)) + .unwrap(), + }; + + let keystore = self.conductor.keystore(); + let signed_zome_call = ZomeCall::try_from_unsigned_zome_call(keystore, zome_call_unsigned) + .await + .map_err(|err| anyhow!("Could not sign zome call: {:?}", err))?; + + let result = self.conductor.call_zome(signed_zome_call).await??; + + Ok(result) + } + + pub async fn remove_app(&self, app_id: String) -> Result<(), AnyError> { + //Check that the app exists on the conductor + let app_info = self.conductor.get_app_info(&app_id).await?; + + if app_info.is_none() { + return Err(anyhow!("App not installed with id: {:?}", app_id)); + } + + self.conductor + .clone() + .uninstall_app(&app_id) + .await + .map_err(|e| anyhow!("Could not remove app: {:?}", e))?; + + info!("Removed app with id: {:?}", app_id); + Ok(()) + } + + pub async fn agent_infos(&self) -> Result, AnyError> { + Ok(self.conductor.get_agent_infos(None).await?) + } + + pub async fn add_agent_infos(&self, agent_infos: Vec) -> Result<(), AnyError> { + Ok(self.conductor.add_agent_infos(agent_infos).await?) + } + + pub async fn sign(&self, data: String) -> Result { + let keystore = self.conductor.keystore(); + let pub_keys = keystore.list_public_keys().await?; + if pub_keys.len() == 0 { + return Err(anyhow!("No public keys found")); + } + let agent = pub_keys.first().unwrap(); + + let vec_u8 = data.into_bytes(); + let data = Arc::from(vec_u8.into_boxed_slice()); + + let signature = keystore.sign(agent.clone(), data).await?; + Ok(signature) + } + + pub async fn shutdown(&self) -> Result<(), AnyError> { + self.conductor.shutdown().await??; + Ok(()) + } + + pub async fn get_agent_key(&self) -> Result, AnyError> { + let keystore = self.conductor.keystore(); + let pub_keys = keystore.list_public_keys().await?; + if pub_keys.len() == 0 { + return Err(anyhow!("No public keys found")); + } + let agent = pub_keys.first().unwrap(); + Ok(agent.to_owned()) + } + + pub async fn get_app_info(&self, app_id: String) -> Result, AnyError> { + Ok(self.conductor.get_app_info(&app_id).await?) + } + + pub async fn log_network_metrics(&self) -> Result<(), AnyError> { + let metrics = self.conductor.dump_network_metrics(None).await?; + info!("Network metrics: {}", serde_json::to_string_pretty(&serde_json::Value::try_from(metrics)?)?); + + let stats = self.conductor.dump_network_stats().await?; + info!("Network stats: {}", serde_json::to_string_pretty(&serde_json::Value::try_from(stats)?)?); + Ok(()) + } + + pub async fn pack_dna(path: String) -> Result { + let path = PathBuf::from(path); + let name = holochain_cli_bundle::get_dna_name(&path).await?; + info!("Got dna name: {:?}", name); + let pack = holochain_cli_bundle::pack::(&path, None, name, false).await?; + info!("Packed dna at path: {:#?}", pack.0); + Ok(pack.0.to_str().unwrap().to_string()) + } + + pub async fn unpack_dna(path: String) -> Result { + let path = PathBuf::from(path); + let pack = holochain_cli_bundle::unpack::("dna", &path, None, true).await?; + info!("UnPacked dna at path: {:#?}", pack); + Ok(pack.to_str().unwrap().to_string()) + } +} + +pub async fn run_local_hc_services() -> Result<(), AnyError> { + let ops = holochain_cli_run_local_services::HcRunLocalServices::new(None, String::from("127.0.0.1"), 0, false, None, String::from("127.0.0.1"), 0, false); + ops.run().await; + Ok(()) +} diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs new file mode 100644 index 000000000..af2730c17 --- /dev/null +++ b/rust-executor/src/init.rs @@ -0,0 +1,153 @@ +use log::{info, warn}; +use semver::{Version, VersionReq}; +use std::error::Error; +use std::fs; +use std::path::{Path, PathBuf}; + +use super::utils::ad4m_data_directory; +use crate::globals::{AD4M_VERSION, MAINNET_JSON, OLDEST_VERSION}; + +/// Sets up the ad4m data directory and config files ready for the executor to consume +pub fn init( + data_path: Option, + network_bootstrap_seed: Option, +) -> Result<(), Box> { + std::env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); + let _ = env_logger::try_init(); + + //Get the default data path if none is provided + let app_data_path = match data_path { + Some(data_path) => Path::new(&data_path).to_path_buf(), + None => ad4m_data_directory(), + }; + + // last-seen-version file path + let last_seen_file = app_data_path.join("last-seen-version"); + + // Check the ad4m data directory exists + if !app_data_path.exists() { + // Create the data path + fs::create_dir_all(&app_data_path)?; + + //Create the last seen version file + fs::write(&last_seen_file, AD4M_VERSION.to_string())?; + }; + + if !last_seen_file.exists() { + //Create the last seen version file + fs::write(&last_seen_file, AD4M_VERSION.to_string())?; + } + + let latest_seen_version = fs::read_to_string(&last_seen_file)?; + info!("Current last seen version is: {}", latest_seen_version); + let last_seen_version = Version::parse(&latest_seen_version)?; + let version_comparison = + format!(">={}, <={}", &OLDEST_VERSION.version, *AD4M_VERSION).to_string(); + let compare = VersionReq::parse(&version_comparison)?; + + if !compare.matches(&last_seen_version) { + // Agents old ad4m version is too old, lets clean their state + warn!("Agents old ad4m version is too old, lets clean their state"); + clean_ad4m_data(&app_data_path, OLDEST_VERSION.clear_state, true)?; + //Create the last seen version file + fs::write(last_seen_file, AD4M_VERSION.to_string())?; + } + + //Write the mainnet seed to the data directory + write_seed_config(&app_data_path, network_bootstrap_seed)?; + + Ok(()) +} + +fn write_seed_config( + app_data_path: &PathBuf, + network_bootstrap_seed: Option, +) -> Result<(), Box> { + let target_seed_path = app_data_path.join("mainnet_seed.seed"); + if network_bootstrap_seed.is_none() { + info!("No bootstrap seed supplied... using the one found in local files"); + let seed_file_data = MAINNET_JSON; + fs::write(target_seed_path, seed_file_data)?; + info!("wrote seed file"); + } else { + let seed_path = PathBuf::from(network_bootstrap_seed.unwrap()); + let seed_file_data = fs::read_to_string(seed_path)?; + fs::write(target_seed_path, seed_file_data)?; + }; + Ok(()) +} + +fn clean_ad4m_data( + app_data_path: &PathBuf, + should_clear_state: bool, + should_clear_everything: bool +) -> Result<(), Box> { + if app_data_path.exists() { + let binary_path = app_data_path.join("binary"); + let config_path = app_data_path.join("ad4m-host-config.json"); + let bootstrap_seed_path = app_data_path.join("mainnet_seed.json"); + let holochain_data_path = app_data_path.join("ad4m").join("h"); + let languages_path = app_data_path.join("ad4m").join("languages"); + + // Delete all the data which may conflict with the new version + info!("Deleting binary path"); + if fs::metadata(&binary_path).is_ok() { + fs::remove_dir_all(binary_path)?; + } + info!("Deleting config path"); + if fs::metadata(&config_path).is_ok() { + fs::remove_file(config_path)?; + } + info!("Deleting bootstrap seed path"); + if fs::metadata(&bootstrap_seed_path).is_ok() { + fs::remove_file(bootstrap_seed_path)?; + } + info!("Deleting holochain data path"); + if fs::metadata(&holochain_data_path).is_ok() { + fs::remove_dir_all(holochain_data_path)?; + } + info!("Deleting languages path"); + if fs::metadata(&languages_path).is_ok() { + fs::remove_dir_all(languages_path)?; + } + + if should_clear_state { + let db_path = app_data_path.join("ad4m").join("data").join("db.json"); + let languages_path = app_data_path.join("ad4m").join("languages"); + let perspective_path = app_data_path.join("ad4m").join("perspectives.json"); + + info!("Deleting db path"); + if fs::metadata(&db_path).is_ok() { + fs::remove_file(db_path)?; + } + info!("Deleting languages path"); + if fs::metadata(&languages_path).is_ok() { + fs::remove_dir_all(languages_path)?; + } + info!("Deleting perspectives path"); + if fs::metadata(&perspective_path).is_ok() { + fs::remove_file(perspective_path)?; + } + }; + + if should_clear_everything { + let swipl_path = app_data_path.join("swipl"); + if fs::metadata(&swipl_path).is_ok() { + fs::remove_dir_all(swipl_path)?; + }; + let ipfs_path = app_data_path.join("ipfs"); + if fs::metadata(&ipfs_path).is_ok() { + fs::remove_dir_all(ipfs_path)?; + }; + let ad4m_path = app_data_path.join("ad4m"); + if fs::metadata(&ad4m_path).is_ok() { + fs::remove_dir_all(ad4m_path)?; + }; + let binary_path = app_data_path.join("binary"); + if fs::metadata(&binary_path).is_ok() { + fs::remove_dir_all(binary_path)?; + }; + } + } + Ok(()) +} diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs new file mode 100644 index 000000000..9ab3418ff --- /dev/null +++ b/rust-executor/src/js_core/futures.rs @@ -0,0 +1,71 @@ +use deno_core::error::AnyError; +use deno_core::v8; +use deno_runtime::worker::MainWorker; +use std::future::Future; +use std::pin::Pin; +use std::sync::Arc; +use std::task::{Context, Poll}; +use tokio::sync::Mutex as TokioMutex; + +pub struct EventLoopFuture { + worker: Arc>, +} + +impl EventLoopFuture { + pub fn new(worker: Arc>) -> Self { + EventLoopFuture { worker } + } +} + +impl Future for EventLoopFuture { + type Output = Result<(), AnyError>; // You can customize the output type. + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + let worker = self.worker.try_lock(); + if let Ok(mut worker) = worker { + worker.poll_event_loop(cx, false) + } else { + Poll::Pending + } + } +} + +pub struct SmartGlobalVariableFuture { + worker: Arc>, + value: v8::Global, +} + +impl SmartGlobalVariableFuture { + pub fn new(worker: Arc>, value: v8::Global) -> Self { + SmartGlobalVariableFuture { worker, value } + } +} + +impl Future for SmartGlobalVariableFuture { + type Output = Result; // You can customize the output type. + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + //println!("Trying to get the worker lock: {}", self.name); + let mut worker = self.worker.try_lock().expect("Failed to lock worker"); + let poll_value = worker.js_runtime.poll_value(&self.value, cx); + + match poll_value { + Poll::Pending => { + cx.waker().wake_by_ref(); + Poll::Pending + }, + Poll::Ready(value) => { + match value { + Ok(value) => { + let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); + let context = v8::Context::new(scope); + let scope = &mut v8::ContextScope::new(scope, context); + let value = value.open(scope).to_rust_string_lossy(scope); + Poll::Ready(Ok(value)) + }, + Err(err) => Poll::Ready(Err(err)) + } + } + } + } +} diff --git a/rust-executor/src/js_core/jwt_extension.js b/rust-executor/src/js_core/jwt_extension.js new file mode 100644 index 000000000..2059d9ae4 --- /dev/null +++ b/rust-executor/src/js_core/jwt_extension.js @@ -0,0 +1,13 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.JWT = { + generateJwt: async (issuer, audience, expiration_time, capabilities) => { + return core.opAsync("generate_jwt", issuer, audience, expiration_time, capabilities); + }, + verifyJwt: async (token) => { + return core.opAsync("verify_jwt", token); + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/js_core/jwt_extension.rs b/rust-executor/src/js_core/jwt_extension.rs new file mode 100644 index 000000000..b64ee6bc2 --- /dev/null +++ b/rust-executor/src/js_core/jwt_extension.rs @@ -0,0 +1,119 @@ +use std::{time::{SystemTime, UNIX_EPOCH}, borrow::Cow}; + +use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension, Op}; +use jsonwebtoken::{encode, Algorithm, DecodingKey, EncodingKey, Header}; +use serde::{Deserialize, Serialize}; + +use crate::wallet::Wallet; + +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AuthInfoExtended { + request_id: String, + auth: AuthInfo, +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AuthInfo { + app_name: String, + app_desc: String, + app_domain: Option, + app_url: Option, + app_icon_path: Option, + capabilities: Option>, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct Capability { + with: Resource, + can: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct Resource { + domain: String, + pointers: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +struct Claims { + iss: String, + aud: String, + exp: u64, + iat: u64, + capabilities: AuthInfo, +} + +#[op] +async fn generate_jwt( + issuer: String, + audience: String, + expiration_time: u64, + capabilities: AuthInfo, +) -> Result { + // Get the private key + let wallet = Wallet::instance(); + let wallet_lock = wallet.lock().expect("wallet lock"); + let wallet_ref = wallet_lock.as_ref().expect("wallet instance"); + let name = "main".to_string(); + + let secret_key = wallet_ref + .get_secret_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + + let now = SystemTime::now(); + let unix_timestamp = now + .duration_since(UNIX_EPOCH) + .expect("Time went backwards") + .as_secs(); + + let payload = Claims { + iss: issuer, + aud: audience, + exp: unix_timestamp + expiration_time, + iat: unix_timestamp, + capabilities: capabilities, + }; + + let token = encode( + &Header::default(), + &payload, + &EncodingKey::from_secret(secret_key.as_slice()), + )?; + + Ok(token) +} + +#[op] +async fn verify_jwt(token: String) -> Result { + //Get the private key + let wallet = Wallet::instance(); + let wallet_lock = wallet.lock().expect("wallet lock"); + let wallet_ref = wallet_lock.as_ref().expect("wallet instance"); + let name = "main".to_string(); + + let secret_key = wallet_ref + .get_secret_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + + let result = jsonwebtoken::decode::( + &token, + &DecodingKey::from_secret(secret_key.as_slice()), + &jsonwebtoken::Validation::new(Algorithm::HS256), + )?; + + Ok(result.claims) +} + +pub fn build() -> Extension { + Extension { + name: "jwt", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/js_core/jwt_extension.js",)), + ops: Cow::Borrowed(&[ + generate_jwt::DECL, + verify_jwt::DECL + ]), + ..Default::default() + } +} diff --git a/rust-executor/src/js_core/main.js b/rust-executor/src/js_core/main.js new file mode 100644 index 000000000..465dc9425 --- /dev/null +++ b/rust-executor/src/js_core/main.js @@ -0,0 +1,68 @@ +Error.captureStackTrace = function (err, constructorOpt) { + if (typeof Error.prepareStackTrace === 'function') { + const fakeCallSite = { + getThis() { + return undefined; + }, + getTypeName() { + return undefined; + }, + getFunction() { + return undefined; + }, + getFunctionName() { + return undefined; + }, + getMethodName() { + return undefined; + }, + getFileName() { + return err.fileName; + }, + getLineNumber() { + return err.lineNumber; + }, + getColumnNumber() { + return err.columnNumber; + }, + getEvalOrigin() { + return undefined; + }, + isToplevel() { + return false; + }, + isEval() { + return false; + }, + isNative() { + return false; + }, + isConstructor() { + return false; + }, + isAsync() { + return false; + }, + isPromiseAll() { + return false; + }, + }; + + const structuredStackTrace = [fakeCallSite]; + if(err.code == "UNKNOWN", err.syscall == "accept") { + err.stack = Error.prepareStackTrace(err, structuredStackTrace); + } + } else { + err.stack = err.stack || err.toString(); + } +} + +import { init } from 'https://ad4m.runtime/executor' + +async function initCore(config) { + const core = await init(config) + globalThis.core = core + return core +} + +globalThis.initCore = initCore diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs new file mode 100644 index 000000000..8e0cff76f --- /dev/null +++ b/rust-executor/src/js_core/mod.rs @@ -0,0 +1,405 @@ +use ::futures::Future; +use deno_core::anyhow::anyhow; +use deno_core::error::AnyError; +use deno_core::resolve_url_or_path; +use deno_runtime::worker::MainWorker; +use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; +use holochain::prelude::{ExternIO, Signal}; +use once_cell::sync::Lazy; +use std::env::current_dir; +use std::sync::Arc; +use tokio::runtime::Builder; +use tokio::sync::broadcast; +use tokio::sync::Mutex as TokioMutex; +use tokio::sync::{ + broadcast::{Receiver, Sender}, + mpsc::{self, UnboundedReceiver, UnboundedSender}, + oneshot +}; +use log::{error, info}; +use options::{main_module_url, main_worker_options}; + +mod futures; +mod jwt_extension; +mod options; +mod pubsub_extension; +mod string_module_loader; +mod utils_extension; +mod wallet_extension; + +use self::futures::{EventLoopFuture, SmartGlobalVariableFuture}; +use crate::holochain_service::maybe_get_holochain_service; +use crate::Ad4mConfig; + +static JS_CORE_HANDLE: Lazy>>> = + Lazy::new(|| Arc::new(TokioMutex::new(None))); + +pub struct JsCoreHandle { + rx: Receiver, + tx: UnboundedSender, + tx_module_load: UnboundedSender, + broadcast_tx: Sender +} + +impl Clone for JsCoreHandle { + fn clone(&self) -> Self { + JsCoreHandle { + rx: self.broadcast_tx.subscribe(), + tx: self.tx.clone(), + tx_module_load: self.tx_module_load.clone(), + broadcast_tx: self.broadcast_tx.clone() + } + } +} + +impl JsCoreHandle { + pub async fn initialized(&mut self) { + self.rx.recv().await.expect("couldn't receive on channel"); + } + + pub async fn execute(&mut self, script: String) -> Result { + let id = uuid::Uuid::new_v4().to_string(); + let (response_tx, response_rx) = oneshot::channel(); + + self.tx + .send(JsCoreRequest { + script, + id: id.clone(), + response_tx + }) + .expect("couldn't send on channel... it is likely that the main worker thread has crashed..."); + + let response = response_rx.await?; + + //info!("Got response: {:?}", response.id); + + response + .result + .map_err(|err| anyhow!(err)) + } + + pub async fn load_module(&mut self, path: String) -> Result { + let id = uuid::Uuid::new_v4().to_string(); + let (response_tx, response_rx) = oneshot::channel(); + self.tx_module_load + .send(JsCoreRequest { + script: path, + id: id.clone(), + response_tx + }) + .expect("couldn't send on channel... it is likely that the main worker thread has crashed..."); + + let response = response_rx.await?; + + response + .result + .map_err(|err| anyhow!(err)) + } +} + +#[derive(Debug)] +struct JsCoreRequest { + script: String, + id: String, + response_tx: oneshot::Sender +} + +#[derive(Debug, Clone)] +struct JsCoreResponse { + result: Result, +} + +#[derive(Clone)] +pub struct JsCore { + worker: Arc>, +} + +pub struct ExternWrapper(ExternIO); + +impl std::fmt::Display for ExternWrapper { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + //Write the bytes to string like: [0, 1, 3] + let bytes = self.0.as_bytes(); + let mut bytes_str = String::from("["); + for (i, byte) in bytes.iter().enumerate() { + bytes_str.push_str(&format!("{}", byte)); + if i < bytes.len() - 1 { + bytes_str.push_str(", "); + } + } + bytes_str.push_str("]"); + write!(f, "{}", bytes_str).unwrap(); + Ok(()) + } +} + +impl JsCore { + pub fn new() -> Self { + JsCore { + worker: Arc::new(TokioMutex::new(MainWorker::from_options( + main_module_url(), + PermissionsContainer::allow_all(), + main_worker_options(), + ))), + } + } + + async fn load_module(&self, file_path: String) -> Result<(), AnyError> { + let mut worker = self.worker.lock().await; + let url = resolve_url_or_path(&file_path, current_dir()?.as_path())?; + let _module_id = worker.js_runtime.load_side_module(&url, None).await?; + //TODO; this likely needs to be run (although might be handled by the import in the js code when import() is called) + //worker.js_runtime.mod_evaluate(module_id); + Ok(()) + } + + async fn init_engine(&self) { + let mut worker = self + .worker + .lock() + .await; + worker.bootstrap(&BootstrapOptions::default()); + worker + .execute_main_module(&main_module_url()) + .await + .expect("init_engine(): could not execute main module"); + } + + fn event_loop(&self) -> EventLoopFuture { + let event_loop = EventLoopFuture::new(self.worker.clone()); + event_loop + } + + async fn execute_async_smart( + &self, + script: String + ) -> Result { + let mut worker = self.worker.lock().await; + let wrapped_script = format!( + r#" + (async () => {{ + return ({}); + }})(); + "#, script + ); + //info!("Sending script: {}", wrapped_script); + let execute_async = worker.execute_script("js_core", wrapped_script.into())?; + Ok(SmartGlobalVariableFuture::new(self.worker.clone(), execute_async)) + } + + fn generate_execution_slot( + rx: Arc>>, + js_core: JsCore, + ) -> impl Future { + async move { + loop { + //info!("Execution slot loop running"); + let mut maybe_request = rx.lock().await; + if let Some(request) = maybe_request.recv().await { + //info!("Got request: {:?}", request); + let script = request.script.clone(); + let js_core_cloned = js_core.clone(); + let response_tx = request.response_tx; + + //global_req_id = Some(id.clone()); + + tokio::task::spawn_local(async move { + // info!("Spawn local driving: {}", id); + //let local_variable_name = uuid_to_valid_variable_name(&id); + let script_fut = + js_core_cloned.execute_async_smart(script).await.unwrap(); + //info!("Script fut created: {}", id); + match script_fut.await { + Ok(res) => { + //info!("Script execution completed Succesfully: {}", id); + response_tx + .send(JsCoreResponse { + result: Ok(res), + }) + .expect("couldn't send on channel"); + } + Err(err) => { + error!("Error executing script: {:?}", err); + response_tx + .send(JsCoreResponse { + result: Err(err.to_string()), + }) + .expect("couldn't send on channel"); + } + } + }); + } + //sleep(std::time::Duration::from_millis(10)).await; + tokio::task::yield_now().await; + } + } + } + + pub async fn start(config: Ad4mConfig) -> JsCoreHandle { + let (tx_inside, rx_outside) = broadcast::channel::(50); + let (tx_outside, rx_inside) = mpsc::unbounded_channel::(); + let rx_inside = Arc::new(TokioMutex::new(rx_inside)); + + let (tx_outside_loader, mut rx_inside_loader) = mpsc::unbounded_channel::(); + + let tx_inside_clone = tx_inside.clone(); + std::thread::spawn(move || { + let rt = Builder::new_current_thread() + .thread_name(String::from("js_core")) + .enable_all() + .build() + .expect("Failed to create Tokio runtime"); + let _guard = rt.enter(); + + let js_core = JsCore::new(); + + rt.block_on(async { + let result = js_core.init_engine().await; + info!("AD4M JS engine init completed, with result: {:?}", result); + + let init_core_future = js_core + .execute_async_smart(format!("initCore({})", config.get_json()).into()); + let result = init_core_future.await.unwrap().await; + + match result { + Ok(res) => { + info!("AD4M coreInit() completed Succesfully: {}", res); + tx_inside + .send(JsCoreResponse { + result: Ok(String::from("initialized")), + }) + .expect("couldn't send on channel"); + } + Err(err) => { + error!("Error executing coreInit(): {:?}", err); + tx_inside + .send(JsCoreResponse { + result: Err(format!("Error executing coreInit(): {:?}", err)), + }) + .expect("couldn't send on channel"); + } + } + + loop { + info!("Main loop running"); + //Listener future for loading JS modules into runtime + let module_load_fut = async { + loop { + //info!("Module load loop running"); + if let Some(request) = rx_inside_loader.recv().await { + let script = request.script; + let js_core_cloned = js_core.clone(); + let ts_response = request.response_tx; + + tokio::task::spawn_local(async move { + match js_core_cloned.load_module(script).await { + Ok(()) => { + info!("Module loaded!"); + ts_response + .send(JsCoreResponse { + result: Ok(String::from("")), + }) + .expect("couldn't send on channel"); + } + Err(err) => { + error!("Error loading module: {:?}", err); + ts_response + .send(JsCoreResponse { + result: Err(err.to_string()), + }) + .expect("couldn't send on channel"); + } + } + }); + } + tokio::task::yield_now().await; + } + }; + + let local_set = tokio::task::LocalSet::new(); + let holochain_local_set = tokio::task::LocalSet::new(); + let module_load_local_set = tokio::task::LocalSet::new(); + + let holochain_signal_receiver_fut = async { + loop { + //info!("Holochain service loop"); + if let Some(holochain_service) = maybe_get_holochain_service().await { + let mut stream_receiver = holochain_service.stream_receiver.lock().await; + if let Some(signal) = stream_receiver.recv().await { + match signal.clone() { + Signal::App { + cell_id, + zome_name, + signal: payload, + } => { + let js_core_cloned = js_core.clone(); + tokio::task::spawn_local(async move { + // Handle the received signal here + let script = format!( + "await core.holochainService.handleCallback({{cell_id: [{:?}, {:?}], zome_name: '{}', signal: {}}})", + cell_id.dna_hash().get_raw_39().to_vec(), cell_id.agent_pubkey().get_raw_39().to_vec(), zome_name, ExternWrapper(payload.into_inner()) + ); + match js_core_cloned.execute_async_smart(script).await { + Ok(_res) => { + info!( + "Holochain Handle Callback Completed Succesfully", + ); + } + Err(err) => { + error!("Error executing callback: {:?}", err); + } + } + }); + }, + Signal::System(_) => { + // Handle the received signal here + info!("Received system signal"); + } + } + } + } + tokio::task::yield_now().await; + } + }; + + tokio::select! { + biased; + + event_loop_result = js_core.event_loop() => { + match event_loop_result { + Ok(_) => info!("AD4M event loop finished"), + Err(err) => { + error!("AD4M event loop closed with error: {}", err); + break; + } + } + } + _drive_local_set = local_set.run_until(Self::generate_execution_slot(rx_inside.clone(), js_core.clone())) => { + info!("AD4M drive local set completed"); + } + _module_load = module_load_local_set.run_until(module_load_fut) => { + info!("AD4M module load completed"); + //break; + } + _holochain_signal_receivers = holochain_local_set.run_until(holochain_signal_receiver_fut) => { + info!("AD4M holochain signal receiver completed"); + } + } + } + }) + }); + + let handle = JsCoreHandle { + rx: rx_outside, + tx: tx_outside, + tx_module_load: tx_outside_loader, + broadcast_tx: tx_inside_clone + }; + + //Set the JsCoreHandle to a global object so we can use it inside of deno op calls + let mut global_handle = JS_CORE_HANDLE.lock().await; + *global_handle = Some(handle.clone()); + + handle + } +} diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs new file mode 100644 index 000000000..9314aaa3a --- /dev/null +++ b/rust-executor/src/js_core/options.rs @@ -0,0 +1,54 @@ +use deno_runtime::worker::WorkerOptions; +use std::{collections::HashMap, rc::Rc}; +use url::Url; + +use super::{ + jwt_extension, pubsub_extension, string_module_loader::StringModuleLoader, utils_extension, + wallet_extension, +}; +use crate::holochain_service::holochain_service_extension; +use crate::prolog_service::prolog_service_extension; + +pub fn main_module_url() -> Url { + Url::parse("https://ad4m.runtime/main").unwrap() +} + +pub fn module_map() -> HashMap { + let mut map = HashMap::new(); + map.insert( + "https://ad4m.runtime/main".to_string(), + include_str!("main.js").to_string(), + ); + map.insert( + "https://ad4m.runtime/executor".to_string(), + include_str!("../../../executor/lib/bundle.js").to_string(), + ); + map +} + +pub fn main_worker_options() -> WorkerOptions { + let mut loader = StringModuleLoader::new(); + for (specifier, code) in module_map() { + loader.add_module(specifier.as_str(), code.as_str()); + } + + let wallet_ext = wallet_extension::build(); + let utils_ext = utils_extension::build(); + let sub_ext = pubsub_extension::build(); + let holochain_ext = holochain_service_extension::build(); + let jwt_ext = jwt_extension::build(); + let prolog_ext = prolog_service_extension::build(); + + WorkerOptions { + extensions: vec![ + wallet_ext, + utils_ext, + sub_ext, + holochain_ext, + jwt_ext, + prolog_ext, + ], + module_loader: Rc::new(loader), + ..Default::default() + } +} diff --git a/rust-executor/src/js_core/pubsub_extension.js b/rust-executor/src/js_core/pubsub_extension.js new file mode 100644 index 000000000..2ac02208a --- /dev/null +++ b/rust-executor/src/js_core/pubsub_extension.js @@ -0,0 +1,10 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.PUBSUB = { + publish: async (topic, data) => { + return core.opAsync("publish", topic, JSON.stringify(data)); + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/js_core/pubsub_extension.rs b/rust-executor/src/js_core/pubsub_extension.rs new file mode 100644 index 000000000..28feb5bb4 --- /dev/null +++ b/rust-executor/src/js_core/pubsub_extension.rs @@ -0,0 +1,23 @@ +use std::borrow::Cow; + +use deno_core::{error::AnyError, include_js_files, op, Extension, Op}; + +use crate::pubsub::get_global_pubsub; + +#[op] +async fn publish(topic: String, data: String) -> Result<(), AnyError> { + let pub_sub = get_global_pubsub().await; + pub_sub.publish(&topic, &data).await; + Ok(()) +} + +pub fn build() -> Extension { + Extension { + name: "pubsub", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/js_core/pubsub_extension.js",)), + ops: Cow::Borrowed(&[ + publish::DECL + ]), + ..Default::default() + } +} diff --git a/rust-executor/src/js_core/string_module_loader.rs b/rust-executor/src/js_core/string_module_loader.rs new file mode 100644 index 000000000..f132bb425 --- /dev/null +++ b/rust-executor/src/js_core/string_module_loader.rs @@ -0,0 +1,88 @@ +use deno_core::anyhow; +use deno_core::error::generic_error; +use deno_core::ModuleLoader; +use deno_core::ModuleSource; +use deno_core::ModuleSourceFuture; +use deno_core::ModuleSpecifier; +use deno_core::ModuleType; +use deno_core::ResolutionKind; +use deno_runtime::deno_core::error::AnyError; +use log::info; +use url::Url; +use std::collections::HashMap; +use std::pin::Pin; + +pub struct StringModuleLoader { + modules: HashMap, +} + +impl StringModuleLoader { + pub fn new() -> Self { + StringModuleLoader { + modules: HashMap::new(), + } + } + + pub fn add_module(&mut self, specifier: &str, code: &str) { + self.modules.insert(specifier.to_string(), code.to_string()); + } +} + +impl ModuleLoader for StringModuleLoader { + fn resolve( + &self, + specifier: &str, + referrer: &str, + _kind: ResolutionKind, + ) -> Result { + let module_specifier = deno_core::resolve_import(specifier, referrer)?; + Ok(module_specifier) + } + + fn load( + &self, + module_specifier: &ModuleSpecifier, + _maybe_referrer: std::option::Option<&Url>, + _is_dyn_import: bool, + ) -> Pin> { + let path = module_specifier.to_file_path().map_err(|_| { + generic_error(format!( + "Provided module specifier \"{module_specifier}\" is not a file URL." + )) + }); + match path { + Ok(path) => { + let module_type = if let Some(extension) = path.extension() { + let ext = extension.to_string_lossy().to_lowercase(); + if ext == "json" { + ModuleType::Json + } else { + ModuleType::JavaScript + } + } else { + ModuleType::JavaScript + }; + + let code = + std::fs::read_to_string(path).expect("Could not read file path to string"); + let module_specifier = module_specifier.clone(); + let fut = async move { + Ok(ModuleSource::new(module_type, code.into(), &module_specifier)) + }; + Box::pin(fut) + } + Err(_err) => { + info!("Module is not a file path, importing as raw module string"); + let module_code = self.modules.get(module_specifier.as_str()).cloned(); + let module_specifier = module_specifier.clone(); + let fut = async move { + match module_code { + Some(code) => Ok(ModuleSource::new(deno_core::ModuleType::JavaScript, code.into(), &module_specifier)), + None => Err(anyhow::anyhow!("Module not found: {}", module_specifier)), + } + }; + Box::pin(fut) + } + } + } +} diff --git a/rust-executor/src/js_core/utils_extension.js b/rust-executor/src/js_core/utils_extension.js new file mode 100644 index 000000000..f570d8a9a --- /dev/null +++ b/rust-executor/src/js_core/utils_extension.js @@ -0,0 +1,24 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.UTILS = { + hash: (data) => { + return core.ops.hash(data); + }, + loadModule: async (path) => { + return core.opAsync("load_module", path); + }, + consoleLog: (args) => { + return core.ops.console_log(args); + }, + consoleDebug: (args) => { + return core.ops.console_debug(args); + }, + consoleError: (args) => { + return core.ops.console_error(args); + }, + consoleWarn: (args) => { + return core.ops.console_warn(args); + } + }; + })(globalThis); diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs new file mode 100644 index 000000000..ece2caa2a --- /dev/null +++ b/rust-executor/src/js_core/utils_extension.rs @@ -0,0 +1,81 @@ +use std::borrow::Cow; + +use cid::Cid; +use deno_core::{error::AnyError, include_js_files, op, Extension, Op}; +use multibase::Base; +use multihash::{Code, MultihashDigest}; +use log::{error, info, debug, warn}; + +use super::JS_CORE_HANDLE; + +#[op] +fn hash(data: String) -> Result { + // Compute the SHA-256 multihash + let multihash = Code::Sha2_256.digest(data.as_bytes()); + + // Create a CID with default settings (version 1, DAG-Protobuf) + let cid = Cid::new_v1(0, multihash); + + // Encode the CID in base58btc (IPFS default) + let encoded_cid = multibase::encode(Base::Base58Btc, cid.to_bytes()); + + Ok(format!("Qm{}", encoded_cid)) +} + +#[op] +fn console_log(data: String) -> Result { + info!("[JSCORE]: {:?}", data); + + Ok(String::from("temp")) +} + +#[op] +fn console_debug(data: String) -> Result { + debug!("[JSCORE]: {:?}", data); + + Ok(String::from("temp")) +} + +#[op] +fn console_error(data: String) -> Result { + error!("[JSCORE]: {:?}", data); + + Ok(String::from("temp")) +} + +#[op] +fn console_warn(data: String) -> Result { + warn!("[JSCORE]: {:?}", data); + + Ok(String::from("temp")) +} + +#[op] +async fn load_module(path: String) -> Result { + info!("Trying to load module: {}", path); + + let mut js_core_handle = JS_CORE_HANDLE.lock().await; + + if let Some(ref mut value) = *js_core_handle { + // Call mutable functions on JsCoreHandle + let _res = value.load_module(path).await; + } + + Ok(String::from("temp")) +} + +pub fn build() -> Extension { + Extension { + name: "utils", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/js_core/utils_extension.js",)), + ops: Cow::Borrowed(&[ + hash::DECL, + load_module::DECL, + console_log::DECL, + console_debug::DECL, + console_error::DECL, + console_warn::DECL, + ]), + ..Default::default() + } +} diff --git a/rust-executor/src/js_core/wallet_extension.js b/rust-executor/src/js_core/wallet_extension.js new file mode 100644 index 000000000..7a58c66bb --- /dev/null +++ b/rust-executor/src/js_core/wallet_extension.js @@ -0,0 +1,40 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.WALLET = { + getMainKey: () => { + return core.ops.wallet_get_main_key(); + }, + getMainKeyDocument: () => { + return core.ops.wallet_get_main_key_document(); + }, + createMainKey: () => { + return core.ops.wallet_create_main_key(); + }, + isUnlocked: () => { + return core.ops.wallet_is_unlocked(); + }, + unlock: (password) => { + return core.ops.wallet_unlock(password); + }, + lock: (password) => { + return core.ops.wallet_lock(password); + }, + export: (password) => { + return core.ops.wallet_export(password); + }, + load: (data) => { + return core.ops.wallet_load(data); + }, + sign: (payload) => { + return core.ops.wallet_sign(payload); + }, + verify: (publicKey, message, signature) => { + if(typeof signature === "string") { + signature = Uint8Array.from(signature); + } + return core.ops.wallet_verify(publicKey, message, signature); + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs new file mode 100644 index 000000000..df69a1156 --- /dev/null +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -0,0 +1,144 @@ +use std::borrow::Cow; + +use base64::{engine::general_purpose as base64engine, Engine as _}; +use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension, Op}; +use did_key::{CoreSign, PatchedKeyPair}; +use log::error; +use serde::{Deserialize, Serialize}; + +use crate::wallet::Wallet; + +#[derive(Serialize, Deserialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Key { + pub public_key: String, + pub private_key: String, + pub encoding: String, +} + +#[op] +fn wallet_get_main_key() -> Result { + let wallet_instance = Wallet::instance(); + let wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_ref().expect("wallet instance"); + let name = "main".to_string(); + let public_key = wallet_ref + .get_public_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + let private_key = wallet_ref + .get_secret_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + Ok(Key { + public_key: base64engine::STANDARD.encode(public_key), + private_key: base64engine::STANDARD.encode(private_key), + encoding: "base64".to_string(), + }) +} + +#[op] +fn wallet_get_main_key_document() -> Result { + let wallet_instance = Wallet::instance(); + let wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_ref().expect("wallet instance"); + let name = "main".to_string(); + wallet_ref + .get_did_document(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first")) +} + +#[op] +fn wallet_create_main_key() -> Result<(), AnyError> { + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + wallet_ref.generate_keypair("main".to_string()); + Ok(()) +} + +#[op] +fn wallet_is_unlocked() -> Result { + let wallet_instance = Wallet::instance(); + let wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_ref().expect("wallet instance"); + Ok(wallet_ref.is_unlocked()) +} + +#[op] +fn wallet_unlock(passphrase: String) -> Result<(), AnyError> { + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + wallet_ref.unlock(passphrase).map_err(|e| e.into()) +} + +#[op] +fn wallet_lock(passphrase: String) -> Result<(), AnyError> { + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + Ok(wallet_ref.lock(passphrase)) +} + +#[op] +fn wallet_export(passphrase: String) -> Result { + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + Ok(wallet_ref.export(passphrase)) +} + +#[op] +fn wallet_load(data: String) -> Result<(), AnyError> { + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + Ok(wallet_ref.load(data)) +} + +#[op] +fn wallet_sign(payload: &[u8]) -> Result, AnyError> { + let wallet_instance = Wallet::instance(); + let wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_ref().expect("wallet instance"); + let name = "main".to_string(); + let signature = wallet_ref + .sign(&name, payload) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + Ok(signature) +} + +#[op] +fn wallet_verify(did: String, message: &[u8], signature: &[u8]) -> bool { + if let Ok(key_pair) = PatchedKeyPair::try_from(did.as_str()) { + match key_pair.verify(message, signature) { + Ok(_) => true, + Err(e) => { + error!("Signature verification failed: {:?}", e); + false + } + } + } else { + error!("Failed to parse DID as key method: {}", did); + false + } +} + +pub fn build() -> Extension { + Extension { + name: "wallet", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/js_core/wallet_extension.js",)), + ops: Cow::Borrowed(&[ + wallet_get_main_key::DECL, + wallet_get_main_key_document::DECL, + wallet_create_main_key::DECL, + wallet_is_unlocked::DECL, + wallet_unlock::DECL, + wallet_lock::DECL, + wallet_export::DECL, + wallet_load::DECL, + wallet_sign::DECL, + wallet_verify::DECL, + ]), + ..Default::default() + } +} diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs new file mode 100644 index 000000000..72deae26d --- /dev/null +++ b/rust-executor/src/lib.rs @@ -0,0 +1,110 @@ +pub mod config; +mod globals; +pub mod graphql; +mod holochain_service; +mod js_core; +mod prolog_service; +mod utils; +mod wallet; +use tokio; + + +pub mod init; +mod pubsub; +mod dapp_server; + +use std::env; +use log::info; + +use js_core::JsCore; + +pub use config::Ad4mConfig; +pub use holochain_service::run_local_hc_services; + +use crate::{prolog_service::init_prolog_service, dapp_server::serve_dapp}; + +/// Runs the GraphQL server and the deno core runtime +pub async fn run(mut config: Ad4mConfig) { + env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); + let _ = env_logger::try_init(); + config.prepare(); + + info!("Initializing Prolog service..."); + init_prolog_service().await; + + info!("Starting js_core..."); + let mut js_core_handle = JsCore::start(config.clone()).await; + info!("Finished start"); + js_core_handle.initialized().await; + info!("js_core initialized."); + + info!("Starting GraphQL..."); + + if config.run_dapp_server.unwrap() { + std::thread::spawn(|| { + let runtime = tokio::runtime::Builder::new_multi_thread() + .enable_all() + .thread_name(String::from("dapp_server")) + .build() + .unwrap(); + runtime.block_on(serve_dapp(8080)).unwrap(); + }); + } + + let handle = std::thread::spawn(move || { + let runtime = tokio::runtime::Builder::new_multi_thread() + .enable_all() + .thread_name(String::from("graphql_server")) + .build() + .unwrap(); + runtime.block_on(graphql::start_server( + js_core_handle, + config.gql_port.expect("Did not get gql port"), + config.app_data_path.expect("Did not get app data path") + )).unwrap(); + }); + handle.join().unwrap(); +} + +/// Runs the GraphQL server and the deno core runtime +pub async fn run_with_tokio(mut config: Ad4mConfig) { + env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=debug,warp::server"); + let _ = env_logger::try_init(); + config.prepare(); + + info!("Initializing Prolog service..."); + init_prolog_service().await; + + info!("Starting js_core..."); + let mut js_core_handle = JsCore::start(config.clone()).await; + js_core_handle.initialized().await; + info!("js_core initialized."); + + info!("Starting GraphQL..."); + + if config.run_dapp_server.unwrap() { + std::thread::spawn(|| { + let runtime = tokio::runtime::Builder::new_multi_thread() + .thread_name(String::from("dapp_server")) + .enable_all() + .build() + .unwrap(); + runtime.block_on(serve_dapp(8080)).unwrap(); + }); + }; + + std::thread::spawn(move || { + let runtime = tokio::runtime::Builder::new_multi_thread() + .thread_name(String::from("graphql_server")) + .enable_all() + .build() + .unwrap(); + runtime.block_on(graphql::start_server( + js_core_handle, + config.gql_port.expect("Did not get gql port"), + config.app_data_path.expect("Did not get app data path") + )).unwrap(); + }); + + //TODO; we need someway to know that the graphql server is running before we allow this function to return +} \ No newline at end of file diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs new file mode 100644 index 000000000..69427065e --- /dev/null +++ b/rust-executor/src/main.rs @@ -0,0 +1,57 @@ +mod globals; +mod graphql; +mod holochain_service; +mod js_core; +mod prolog; +mod prolog_service; +mod utils; +mod wallet; +mod config; + +pub mod init; +mod pubsub; + +use log::{error, info}; +use rust_executor::Ad4mConfig; +use std::env; + +use prolog_service::init_prolog_service; + +use js_core::JsCore; + +#[tokio::main(flavor = "multi_thread")] +async fn main() { + prolog::run(); + env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); + env_logger::try_init().expect("could not logger"); + + let mut config = Ad4mConfig::default(); + config.prepare(); + + info!("Initializing Prolog service..."); + init_prolog_service().await; + + info!("Starting js_core... with config: {:#?}", config); + + let mut js_core_handle = JsCore::start(config.clone()).await; + js_core_handle.initialized().await; + info!("js_core initialized."); + + info!("Starting GraphQL..."); + match graphql::start_server( + js_core_handle, + config.gql_port.expect("Did not get gql port"), + config.app_data_path.expect("Did not get app data path"), + ) + .await + { + Ok(_) => { + info!("GraphQL server stopped."); + std::process::exit(0); + } + Err(err) => { + error!("GraphQL server stopped with error: {}", err); + std::process::exit(1); + } + } +} diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json new file mode 100644 index 000000000..c42067979 --- /dev/null +++ b/rust-executor/src/mainnet_seed.json @@ -0,0 +1,13 @@ +{ + "trustedAgents": [ + "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" + ], + "knownLinkLanguages": [ + "QmzSYwdmKg9nm4HXnwDZ7orhJCu3XoQYvAX2Muv4nY5aWtJVKyc" + ], + "directMessageLanguage": "QmzSYwdp8xNu5UdWWsKQhzZs4JLYDBTk22T7ksoi3hhpscZAm3E", + "agentLanguage": "QmzSYwdigpRrQTmtXcATD4zAFp1nqbXB1tVJT7ho1JaThaXCynL", + "perspectiveLanguage": "QmzSYwdeBLCn99QU7DSnJuTFrp7TQGRZkrTDRXvxiv2XAbUFeEx", + "neighbourhoodLanguage": "QmzSYwdo2a6E4XghRHrN5eCReyYRDeRE8VnRbvqgoWZsr9B4pxV", + "languageLanguageBundle": "// https://deno.land/x/url_join@1.0.0/mod.ts\nvar urlJoin = function(...args) {\n let input;\n if (typeof args[0] === \"object\") {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nvar normalize = (strArray) => {\n const resultArray = [];\n if (strArray.length === 0) {\n return \"\";\n }\n if (typeof strArray[0] !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1:///\");\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1://\");\n }\n for (let i = 0; i < strArray.length; i++) {\n let component = strArray[i];\n if (typeof component !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + component);\n }\n if (component === \"\") {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, \"\");\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, \"\");\n } else {\n component = component.replace(/[\\/]+$/, \"/\");\n }\n resultArray.push(component);\n }\n let str = resultArray.join(\"/\");\n str = str.replace(/\\/(\\?|&|#[^!])/g, \"$1\");\n let parts = str.split(\"?\");\n str = parts.shift() + (parts.length > 0 ? \"?\" : \"\") + parts.join(\"&\");\n return str;\n};\n\n// https://deno.land/x/axiod@0.26.2/helpers.ts\nvar methods = [\n \"get\",\n \"post\",\n \"put\",\n \"delete\",\n \"options\",\n \"head\",\n \"connect\",\n \"trace\",\n \"patch\"\n];\nvar addInterceptor = () => {\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\n\n// https://deno.land/x/axiod@0.26.2/mod.ts\nfunction axiod(url, config) {\n if (typeof url === \"string\") {\n return axiod.request(Object.assign({}, axiod.defaults, { url }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: \"/\",\n method: \"get\",\n timeout: 0,\n withCredentials: false,\n validateStatus: (status) => {\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config) => {\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options) => {\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"get\" })\n );\n };\n instance.post = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"post\", data })\n );\n };\n instance.put = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"put\", data })\n );\n };\n instance.delete = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"delete\", data })\n );\n };\n instance.options = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"options\", data })\n );\n };\n instance.head = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"head\", data })\n );\n };\n instance.connect = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"connect\", data })\n );\n };\n instance.trace = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"trace\", data })\n );\n };\n instance.patch = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"patch\", data })\n );\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list) {\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let {\n url = \"/\",\n baseURL,\n method,\n headers,\n params = {},\n data,\n timeout,\n withCredentials,\n auth,\n validateStatus,\n paramsSerializer,\n transformRequest,\n transformResponse,\n redirect,\n responseType = \"json\"\n } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = \"get\";\n }\n let _params = \"\";\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key) => {\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]);\n }).join(\"&\");\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers[\"Authorization\"] = \"Basic \" + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== \"get\") {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== \"get\") {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for (var i = 0; i < (transformRequest || []).length; i++) {\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === \"string\" || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers[\"Accept\"] = \"application/json\";\n headers[\"Content-Type\"] = \"application/json\";\n } catch (ex) {\n }\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header) => {\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(() => {\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x) => {\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response2 = x.clone();\n if (responseType === \"json\") {\n _data = await response2.json();\n } else if (responseType === \"text\") {\n _data = await response2.text();\n } else if (responseType === \"arraybuffer\") {\n _data = await response2.arrayBuffer();\n } else if (responseType === \"blob\") {\n _data = await response2.blob();\n } else if (responseType === \"stream\") {\n _data = (await response2.blob()).stream();\n } else {\n _data = await response2.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for (var i2 = 0; i2 < (transformResponse || []).length; i2++) {\n if (transformResponse && transformResponse[i2]) {\n _data = transformResponse[i2](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list) {\n if (interceptor) {\n const { fulfilled, rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"get\" })\n );\n};\naxiod.post = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"post\", data })\n );\n};\naxiod.put = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"put\", data })\n );\n};\naxiod.delete = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"delete\", data })\n );\n};\naxiod.options = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"options\", data })\n );\n};\naxiod.head = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"head\", data })\n );\n};\naxiod.connect = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"connect\", data })\n );\n};\naxiod.trace = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"trace\", data })\n );\n};\naxiod.patch = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"patch\", data })\n );\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nvar mod_default = axiod;\n\n// languageAdapter.ts\nvar LangAdapter = class {\n constructor(context) {\n }\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await mod_default.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n};\n\n// putAdapter.ts\nvar CloudflarePutAdapter = class {\n #agent;\n constructor(context) {\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key,\n // Content of the new object.\n value: JSON.stringify(expression)\n };\n try {\n const metaPostResult = await mod_default.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString()\n };\n const bundlePostResult = await mod_default.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n } catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n};\n\n// adapter.ts\nvar Adapter = class {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await mod_default.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n};\n\n// index.ts\nvar name = \"languages\";\nvar PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport {\n PROXY_URL,\n create as default,\n name\n};\n" +} \ No newline at end of file diff --git a/rust-executor/src/prolog.rs b/rust-executor/src/prolog.rs new file mode 100644 index 000000000..2f7217ddd --- /dev/null +++ b/rust-executor/src/prolog.rs @@ -0,0 +1,33 @@ +use scryer_prolog::machine::Machine; + +pub fn run() { + std::thread::spawn(|| { + let mut machine = Machine::with_test_streams(); + + let facts = String::from( + r#" +triple("a", "p1", "b"). +triple("a", "p2", "b"). +"#, + ); + + machine.load_module_string("facts", facts); + println!("{}", machine.get_user_output()); + println!("Facts loaded"); + + //let query = String::from("triple(A,B,C), write(\"A = \"), write(A), nl, write(\"B = \"), write(B), write(\"C = \"), write(C), nl ; write(\"no triple matched\").\n"); + let query = String::from("triple(\"a\",P,\"b\")."); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); + println!("Running query: {}", query); + let output = machine.run_query(query); + println!("Output: {:?}", output); + + let query = String::from("triple(\"a\",\"p1\",\"b\")."); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); + println!("Running query: {}", query); + let output = machine.run_query(query); + println!("Output: {:?}", output); + }); +} diff --git a/rust-executor/src/prolog_service/engine.rs b/rust-executor/src/prolog_service/engine.rs new file mode 100644 index 000000000..4bc2dc0a2 --- /dev/null +++ b/rust-executor/src/prolog_service/engine.rs @@ -0,0 +1,159 @@ +use deno_core::anyhow::Error; +use scryer_prolog::machine::{parsed_results::QueryResult, Machine}; +use tokio::sync::{mpsc, oneshot}; + +#[derive(Debug)] +pub enum PrologServiceRequest { + RunQuery(String, oneshot::Sender), + LoadModuleString(String, Vec, oneshot::Sender), +} + +#[derive(Debug)] +pub enum PrologServiceResponse { + InitComplete(Result<(), Error>), + QueryResult(QueryResult), + LoadModuleResult(Result<(), Error>), +} + +pub struct PrologEngine { + request_sender: mpsc::UnboundedSender, + request_receiver: Option>, +} + +impl PrologEngine { + pub fn new() -> PrologEngine { + let (request_sender, request_receiver) = mpsc::unbounded_channel::(); + + PrologEngine { + request_sender, + request_receiver: Some(request_receiver), + } + } + + pub async fn spawn(&mut self) -> Result<(), Error> { + let mut receiver = self + .request_receiver + .take() + .ok_or_else(|| Error::msg("PrologEngine::spawn called twice"))?; + let (response_sender, response_receiver) = oneshot::channel(); + + std::thread::spawn(move || { + let rt = tokio::runtime::Builder::new_current_thread() + .enable_all() + .thread_name(String::from("prolog_service")) + .build() + .expect("Failed to create Tokio runtime"); + let _guard = rt.enter(); + + tokio::task::block_in_place(|| + rt.block_on(async move { + let mut machine = Machine::new_lib(); + + response_sender + .send(PrologServiceResponse::InitComplete(Ok(()))) + .unwrap(); + + while let Some(message) = receiver.recv().await { + match message { + PrologServiceRequest::RunQuery(query, response) => { + let result = machine.run_query(query); + let _ = response.send(PrologServiceResponse::QueryResult(result)); + } + PrologServiceRequest::LoadModuleString( + module_name, + program_lines, + response, + ) => { + let program = program_lines + .iter() + .map(|l| l.replace("\n", "").replace("\r", "")) + .collect::>() + .join("\n"); + let _result = + machine.consult_module_string(module_name.as_str(), program); + let _ = response.send(PrologServiceResponse::LoadModuleResult(Ok(()))); + } + } + } + }) + ); + }); + + match response_receiver.await? { + PrologServiceResponse::InitComplete(result) => result?, + _ => unreachable!(), + }; + + Ok(()) + } + + pub async fn run_query(&self, query: String) -> Result { + let (response_sender, response_receiver) = oneshot::channel(); + self.request_sender + .send(PrologServiceRequest::RunQuery(query, response_sender))?; + let response = response_receiver + .await?; + match response { + PrologServiceResponse::QueryResult(query_result) => Ok(query_result), + _ => unreachable!(), + } + } + + pub async fn load_module_string( + &self, + module_name: String, + program_lines: Vec, + ) -> Result<(), Error> { + let (response_sender, response_receiver) = oneshot::channel(); + self.request_sender + .send(PrologServiceRequest::LoadModuleString( + module_name, + program_lines, + response_sender, + ))?; + let response = response_receiver + .await?; + match response { + PrologServiceResponse::LoadModuleResult(result) => result, + _ => unreachable!(), + } + } +} + +#[cfg(test)] +mod prolog_test { + use super::*; + + #[tokio::test] + async fn test_init_prolog_engine() { + let mut engine = PrologEngine::new(); + assert!(engine.spawn().await.is_ok()); + + let facts = String::from( + r#" + triple("a", "p1", "b"). + triple("a", "p2", "b"). + "#, + ); + + let load_facts = engine.load_module_string("facts".to_string(), vec![facts]).await; + assert!(load_facts.is_ok()); + println!("Facts loaded"); + + let query = String::from("triple(\"a\",P,\"b\")."); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); + println!("Running query: {}", query); + let output = engine.run_query(query).await; + println!("Output: {:?}", output); + assert!(output.is_ok()); + + let query = String::from("triple(\"a\",\"p1\",\"b\")."); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); + println!("Running query: {}", query); + let output = engine.run_query(query).await; + println!("Output: {:?}", output); + assert!(output.is_ok()); + } +} diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs new file mode 100644 index 000000000..4d3560280 --- /dev/null +++ b/rust-executor/src/prolog_service/mod.rs @@ -0,0 +1,158 @@ +use deno_core::anyhow::Error; +use lazy_static::lazy_static; +use scryer_prolog::machine::parsed_results::QueryResult; +use std::collections::HashMap; +use std::sync::Arc; +use tokio::sync::RwLock; + +pub(crate) mod engine; +pub(crate) mod prolog_service_extension; + +use self::engine::PrologEngine; + +#[derive(Clone)] +pub struct PrologService { + engines: Arc>>, +} + +impl PrologService { + pub fn new() -> Self { + PrologService { + engines: Arc::new(RwLock::new(HashMap::new())), + } + } + + pub async fn spawn_engine(&mut self, engine_name: String) -> Result<(), Error> { + if self.engines.read().await.contains_key(&engine_name) { + return Err(Error::msg("Engine already exists")); + } + + let mut engine = PrologEngine::new(); + engine.spawn().await?; + + self.engines.write().await.insert(engine_name, engine); + Ok(()) + } + + pub async fn remove_engine(&mut self, engine_name: String) -> Result<(), Error> { + let mut engines = self.engines.write().await; + engines + .remove(&engine_name) + .ok_or_else(|| Error::msg("Engine not found"))?; + Ok(()) + } + + pub async fn run_query( + &self, + engine_name: String, + query: String, + ) -> Result { + let engines = self.engines.read().await; + let engine = engines + .get(&engine_name) + .ok_or_else(|| Error::msg("Engine not found"))?; + let result = engine.run_query(query).await?; + Ok(result) + } + + pub async fn load_module_string( + &self, + engine_name: String, + module_name: String, + program_lines: Vec, + ) -> Result<(), Error> { + let engines = self.engines.read().await; + let engine = engines + .get(&engine_name) + .ok_or_else(|| Error::msg("Engine not found"))?; + engine.load_module_string(module_name, program_lines).await + } +} + +lazy_static! { + static ref PROLOG_SERVICE: Arc>> = Arc::new(RwLock::new(None)); +} + +pub async fn init_prolog_service() { + let mut lock = PROLOG_SERVICE.write().await; + *lock = Some(PrologService::new()); +} + +pub async fn get_prolog_service() -> PrologService { + let lock = PROLOG_SERVICE.read().await; + lock.clone().expect("PrologServiceInterface not set") +} + +#[cfg(test)] +mod prolog_test { + use maplit::btreemap; + use scryer_prolog::machine::parsed_results::{QueryResolution, QueryMatch, Value}; + + use super::*; + + #[tokio::test] + async fn test_init_prolog_engine() { + init_prolog_service().await; + let mut service = get_prolog_service().await; + + let engine_name = "test".to_string(); + + assert!(service.spawn_engine(engine_name.clone()).await.is_ok()); + + let facts = String::from( + r#" + triple("a", "p1", "b"). + triple("a", "p2", "b"). + "#, + ); + + let load_facts = service + .load_module_string(engine_name.clone(), "facts".to_string(), vec![facts]) + .await; + assert!(load_facts.is_ok()); + + let query = String::from("triple(\"a\",P,\"b\")."); + let result = service + .run_query(engine_name.clone(), query) + .await + .expect("Error running query"); + + assert_eq!( + result, + Ok(QueryResolution::Matches(vec![ + QueryMatch::from(btreemap! { + "P" => Value::from("p1"), + }), + QueryMatch::from(btreemap! { + "P" => Value::from("p2"), + }), + ])) + ); + + let query = String::from("triple(\"a\",\"p1\",\"b\")."); + + let result = service + .run_query(engine_name.clone(), query) + .await + .expect("Error running query"); + + assert_eq!( + result, + Ok(QueryResolution::True) + ); + + + let query = String::from("non_existant_predicate(\"a\",\"p1\",\"b\")."); + + let result = service + .run_query(engine_name.clone(), query) + .await + .expect("Error running query"); + + assert_eq!( + result, + Err(String::from("error(existence_error(procedure,non_existant_predicate/3),non_existant_predicate/3).")) + ); + + } +} diff --git a/rust-executor/src/prolog_service/prolog_service_extension.js b/rust-executor/src/prolog_service/prolog_service_extension.js new file mode 100644 index 000000000..d0ecb9f7d --- /dev/null +++ b/rust-executor/src/prolog_service/prolog_service_extension.js @@ -0,0 +1,20 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.PROLOG_SERVICE = { + spawnEngine: async (engineName) => { + return core.opAsync("spawn_engine", engineName); + }, + removeEngine: async (engineName) => { + return core.opAsync("remove_engine", engineName); + }, + runQuery: async (engineName, query) => { + if(!query.endsWith(".")) query = query+"."; + return JSON.parse(await core.opAsync("run_query", engineName, query)); + }, + loadModuleString: async (engineName, module_name, program_lines) => { + return core.opAsync("load_module_string", engineName, module_name, program_lines); + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs new file mode 100644 index 000000000..747ed94bb --- /dev/null +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -0,0 +1,126 @@ +use std::borrow::Cow; + +use deno_core::{error::AnyError, include_js_files, op, Extension, anyhow::bail, Op}; +use scryer_prolog::machine::parsed_results::{Value, QueryMatch, QueryResolution}; + +use super::get_prolog_service; + +#[op] +async fn spawn_engine(engine_name: String) -> Result<(), AnyError> { + let mut service = get_prolog_service().await; + service.spawn_engine(engine_name).await +} + +#[op] +async fn remove_engine(engine_name: String) -> Result<(), AnyError> { + let mut service = get_prolog_service().await; + service.remove_engine(engine_name).await +} + + +pub fn prolog_value_to_json_tring(value: Value) -> String { + match value { + Value::Integer(i) => format!("{}", i), + Value::Float(f) => format!("{}", f), + Value::Rational(r) => format!("{}", r), + Value::Atom(a) => format!("{}", a.as_str()), + Value::String(s) => + if let Err(_e) = serde_json::from_str::(s.as_str()) { + //treat as string literal + //escape double quotes + format!("\"{}\"", s + .replace("\"", "\\\"") + .replace("\n", "\\n") + .replace("\t", "\\t") + .replace("\r", "\\r")) + } else { + //return valid json string + s + }, + Value::List(l) => { + let mut string_result = "[".to_string(); + for (i, v) in l.iter().enumerate() { + if i > 0 { + string_result.push_str(", "); + } + string_result.push_str(&prolog_value_to_json_tring(v.clone())); + } + string_result.push_str("]"); + string_result + } + Value::Structure(s, l) => { + let mut string_result = format!("\"{}\": [", s.as_str()); + for (i, v) in l.iter().enumerate() { + if i > 0 { + string_result.push_str(", "); + } + string_result.push_str(&prolog_value_to_json_tring(v.clone())); + } + string_result.push_str("]"); + string_result + } + _ => "null".to_string(), + } +} + +fn prolog_match_to_json_string(query_match: &QueryMatch) -> String { + let mut string_result = "{".to_string(); + for (i, (k, v)) in query_match.bindings.iter().enumerate() { + if i > 0 { + string_result.push_str(", "); + } + string_result.push_str(&format!("\"{}\": {}", k, prolog_value_to_json_tring(v.clone()))); + } + string_result.push_str("}"); + string_result +} + +#[op] +async fn run_query(engine_name: String, query: String) -> Result { + let service = get_prolog_service().await; + let result = service + .run_query(engine_name, query) + .await?; + + if let Err(prolog_error) = result { + bail!(prolog_error); + } + + match result.unwrap() { + QueryResolution::True => Ok("true".to_string()), + QueryResolution::False => Ok("false".to_string()), + QueryResolution::Matches(matches) => { + let matches_json: Vec = matches + .iter() + .map(|m| prolog_match_to_json_string(m)) + .collect(); + Ok(format!("[{}]", matches_json.join(", "))) + } + } +} + +#[op] +async fn load_module_string( + engine_name: String, + module_name: String, + program_lines: Vec, +) -> Result<(), AnyError> { + let service = get_prolog_service().await; + service + .load_module_string(engine_name, module_name, program_lines) + .await +} + +pub fn build() -> Extension { + Extension { + name: "prolog_service", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/prolog_service/prolog_service_extension.js",)), + ops: Cow::Borrowed(&[ + spawn_engine::DECL, + remove_engine::DECL, + run_query::DECL, + load_module_string::DECL, + ]), + ..Default::default() + } +} diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs new file mode 100644 index 000000000..dbe656aef --- /dev/null +++ b/rust-executor/src/pubsub.rs @@ -0,0 +1,134 @@ +use crate::graphql::graphql_types::GetFilter; +use crate::graphql::graphql_types::GetValue; +use futures::Stream; +use futures::StreamExt; +use juniper::{graphql_value, FieldError, FieldResult}; +use log::{debug, error, warn}; +use serde::de::DeserializeOwned; +use std::collections::HashMap; +use std::pin::Pin; +use std::sync::Arc; +use tokio::sync::watch; +use tokio::sync::Mutex; +use tokio_stream::wrappers::WatchStream; + +type Topic = String; +type Message = String; + +pub struct PubSub { + subscribers: Mutex>>>, +} + +impl PubSub { + pub fn new() -> Self { + Self { + subscribers: Mutex::new(HashMap::new()), + } + } + + pub async fn subscribe(&self, topic: &Topic) -> watch::Receiver { + let (tx, rx) = watch::channel("".to_owned()); + let mut subscribers = self.subscribers.lock().await; + subscribers + .entry(topic.to_owned()) + .or_insert_with(Vec::new) + .push(tx); + rx + } + + pub async fn remove_dead_subscribers(&self) { + let mut subscribers = self.subscribers.lock().await; + for (_, subscribers_vec) in subscribers.iter_mut() { + let mut i = 0; + while i < subscribers_vec.len() { + if subscribers_vec[i].is_closed() { + warn!("Found closed subscriber, removing..."); + subscribers_vec.remove(i); + } else { + i += 1; + } + } + } + } + + pub async fn publish(&self, topic: &Topic, message: &Message) { + let mut subscribers = self.subscribers.lock().await; + + if let Some(subscribers_vec) = subscribers.get_mut(topic) { + let mut i = 0; + while i < subscribers_vec.len() { + let send_res = subscribers_vec[i].send(message.to_owned()); + if send_res.is_err() { + warn!("Failed to send message to subscriber: {:?} on topic: {:?}, with subscribers, len: {:?}", send_res, topic, subscribers_vec.len()); + warn!("Removing subscriber from topic: {:?}", topic); + subscribers_vec.remove(i); + } else { + i += 1; + } + } + } + } +} + +pub(crate) async fn subscribe_and_process< + T: DeserializeOwned + Send + 'static + std::fmt::Debug + GetValue + GetFilter, +>( + pubsub: Arc, + topic: Topic, + filter: Option, +) -> Pin> + Send>> { + debug!("Subscribing to topic: {}", topic); + pubsub.remove_dead_subscribers().await; + let receiver = pubsub.subscribe(&topic).await; + let receiver_stream = WatchStream::from_changes(receiver); + + let mapped_stream = receiver_stream.filter_map(move |msg| { + match serde_json::from_str::(&msg) { + Ok(data) => { + if let Some(filter) = &filter { + if &data + .get_filter() + .expect("Could not get filter on T where we expected to filter") + != filter + { + return futures::future::ready(None); + } + } + let value = data.get_value(); // Get the underlying value using the GetValue trait + futures::future::ready(Some(Ok(value))) + } + Err(e) => { + error!("Failed to deserialize message: {:?}", e); + let field_error = FieldError::new( + e, + graphql_value!({ "type": "INTERNAL_ERROR_COULD_NOT_SERIALIZE" }), + ); + futures::future::ready(Some(Err(field_error))) + } + } + }); + + Box::pin(mapped_stream) +} + +lazy_static::lazy_static! { + static ref GLOBAL_PUB_SUB: Arc = Arc::new(PubSub::new()); + + pub static ref AGENT_STATUS_CHANGED_TOPIC: String = "agent-status-changed-topic".to_owned(); + pub static ref APPS_CHANGED: String = "apps-changed".to_owned(); + pub static ref AGENT_UPDATED_TOPIC: String = "agent-updated-topic".to_owned(); + pub static ref EXCEPTION_OCCURRED_TOPIC: String = "exception-occurred-topic".to_owned(); + pub static ref NEIGHBOURHOOD_SIGNAL_TOPIC: String = "neighbourhood-signal-received-topic".to_owned(); + pub static ref PERSPECTIVE_ADDED_TOPIC: String = "perspective-added-topic".to_owned(); + pub static ref PERSPECTIVE_LINK_ADDED_TOPIC: String = "perspective-link-added-topic".to_owned(); + pub static ref PERSPECTIVE_LINK_REMOVED_TOPIC: String = "perspective-link-removed-topic".to_owned(); + pub static ref PERSPECTIVE_LINK_UPDATED_TOPIC: String = "perspective-link-updated-topic".to_owned(); + pub static ref PERSPECTIVE_REMOVED_TOPIC: String = "perspective-removed-topic".to_owned(); + pub static ref PERSPECTIVE_UPDATED_TOPIC: String = "perspective-updated-topic".to_owned(); + pub static ref PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC: String = "perspective-sync-state-change-topic".to_owned(); + pub static ref RUNTIME_MESSAGED_RECEIVED_TOPIC: String = "runtime-messaged-received-topic".to_owned(); +} + +pub async fn get_global_pubsub() -> Arc { + GLOBAL_PUB_SUB.clone() +} diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs new file mode 100644 index 000000000..6b54986c3 --- /dev/null +++ b/rust-executor/src/utils.rs @@ -0,0 +1,7 @@ +use std::path::PathBuf; +use dirs::home_dir; + +pub(crate) fn ad4m_data_directory() -> PathBuf { + let ad4m_dir = home_dir().unwrap().join(".ad4m"); + ad4m_dir +} diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs new file mode 100644 index 000000000..d9f1bc63f --- /dev/null +++ b/rust-executor/src/wallet.rs @@ -0,0 +1,430 @@ +use argon2::password_hash::Salt; +use argon2::{self, Argon2, PasswordHasher}; +use base64::Engine; +use crypto_box::aead::Aead; +use crypto_box::{Nonce, PublicKey as cPublicKey, SalsaBox, SecretKey as cSecretKey}; +use deno_core::anyhow::anyhow; +use deno_core::error::AnyError; +use did_key::{CoreSign, DIDCore, Ed25519KeyPair, KeyMaterial, PatchedKeyPair}; +use lazy_static::lazy_static; +use serde::{Deserialize, Serialize}; +use std::collections::BTreeMap; +use std::convert::TryInto; +use std::sync::{Arc, Mutex}; + +fn slice_to_u8_array(slice: &[u8]) -> Option<[u8; 32]> { + //If length of slice is not 32 then take the first 32 bytes + let slice_32 = if slice.len() != 32 { + let mut array: [u8; 32] = [0u8; 32]; + let mut i = 0; + for byte in slice { + if i == 32 { + break; + } + array[i] = *byte; + i += 1; + } + array + } else { + let array: [u8; 32] = slice.try_into().expect("slice with incorrect length"); + array + }; + + let array: Result<[u8; 32], _> = slice_32.try_into(); + array.ok() +} + +fn padded(passphrase: String) -> String { + let mut passphrase = passphrase.clone(); + while passphrase.len() < 32 { + passphrase.push(' '); + } + passphrase +} + +fn encrypt(payload: String, passphrase: String) -> String { + let passphrase = padded(passphrase); + let b64_passphrase = + base64::engine::general_purpose::STANDARD_NO_PAD.encode(passphrase.as_bytes()); + let salt = Salt::from_b64(&b64_passphrase).expect("salt from passphrase to work"); + + // Derive secret key from passphrase + let argon2 = Argon2::default(); + //NOTE: we need to be sure to enforce min password size so we ensure that we will always get 32 bytes to work from + let derived_secret_key = argon2 + .hash_password(passphrase.as_bytes(), salt) + .unwrap() + .to_string(); + + let preambel = "$argon2id$v=19$m=19456,t=2,p=1$"; + let derived_secret_key = derived_secret_key.replace(preambel, ""); + + let derived_secret_key_bytes = derived_secret_key.as_bytes(); + let slice = slice_to_u8_array(derived_secret_key_bytes).expect("Could not slice to u8 array"); + let secret_key = cSecretKey::from(slice); + let public_key = cPublicKey::from(&secret_key); + + // Create the Box (encryptor/decryptor) using the derived secret key and the public key + let crypto_box = SalsaBox::new(&public_key, &secret_key); + + //let nonce = SalsaBox::generate_nonce(&mut OsRng); + //let nonce: GenericArray = [0u8; 24].into(); + let nonce = Nonce::default(); + + // Encrypt + let encrypted_data = crypto_box + .encrypt(&nonce.into(), payload.as_bytes()) + .unwrap(); + + base64::engine::general_purpose::STANDARD_NO_PAD.encode(encrypted_data) +} + +fn decrypt(payload: String, passphrase: String) -> Result { + let passphrase = padded(passphrase); + let b64_passphrase = + base64::engine::general_purpose::STANDARD_NO_PAD.encode(passphrase.as_bytes()); + let salt = Salt::from_b64(&b64_passphrase).expect("salt from passphrase to work"); + + // Derive secret key from passphrase + let argon2 = Argon2::default(); + let derived_secret_key = argon2 + .hash_password(passphrase.as_bytes(), salt) + .unwrap() + .to_string(); + + let preambel = "$argon2id$v=19$m=19456,t=2,p=1$"; + let derived_secret_key = derived_secret_key.replace(preambel, ""); + let derived_secret_key_bytes = derived_secret_key.as_bytes(); + let slice = slice_to_u8_array(derived_secret_key_bytes).expect("Could not slice to u8 array"); + let secret_key = cSecretKey::from(slice); + let public_key = cPublicKey::from(&secret_key); + + // Create the Box (encryptor/decryptor) using the derived secret key and the public key + let crypto_box = SalsaBox::new(&public_key, &secret_key); + + //Pretty sure this not gonna work since this will be a different nonce to what is generated on encrypt + let nonce = Nonce::default(); + + let payload_bytes = base64::engine::general_purpose::STANDARD_NO_PAD + .decode(payload.as_bytes()) + .expect("Could not decode payload"); + + // Decrypt + let decrypted_data = crypto_box + .decrypt(&nonce.into(), payload_bytes.as_slice()) + .map(|data| String::from_utf8(data).expect("decrypted array to be a string")); + + decrypted_data +} + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct Key { + pub secret: Vec, + pub public: Vec, +} + +impl Key { + pub fn from(did: PatchedKeyPair) -> Key { + Key { + secret: did.private_key_bytes(), + public: did.public_key_bytes(), + } + } +} + +#[derive(Serialize, Deserialize, Clone, Debug)] +struct Keys { + pub by_name: BTreeMap, +} + +impl Keys { + pub fn new() -> Self { + Keys { + by_name: BTreeMap::new(), + } + } +} + +#[derive(Debug)] +pub struct Wallet { + cipher: Option, + keys: Option, +} + +lazy_static! { + static ref WALLET: Arc>> = Arc::new(Mutex::new(None)); +} + +impl Wallet { + pub fn new() -> Self { + Wallet { + cipher: None, + keys: None, + } + } + + pub fn instance() -> Arc>> { + let wallet = WALLET.clone(); + { + let mut w_lock = wallet.lock().unwrap(); + if w_lock.is_none() { + *w_lock = Some(Wallet::new()); + } + } + wallet + } + + pub fn generate_keypair(&mut self, name: String) { + if self.keys.is_none() { + self.keys = Some(Keys::new()); + } + + let key = did_key::generate::(None); + self.keys + .as_mut() + .unwrap() + .by_name + .insert(name, Key::from(key)); + } + + pub fn get_public_key(&self, name: &String) -> Option> { + self.keys + .as_ref()? + .by_name + .get(name) + .map(|key| key.public.clone()) + } + + pub fn get_secret_key(&self, name: &String) -> Option> { + self.keys + .as_ref()? + .by_name + .get(name) + .map(|key| key.secret.clone()) + } + + pub fn get_did_document(&self, name: &String) -> Option { + self.keys.as_ref()?.by_name.get(name).map(|key| { + let key = did_key::from_existing_key::( + &key.public.clone(), + Some(&key.secret.clone()), + ); + key.get_did_document(did_key::Config::default()) + }) + } + + pub fn sign(&self, name: &String, message: &[u8]) -> Option> { + self.keys.as_ref()?.by_name.get(name).map(|key| { + let key = did_key::from_existing_key::( + &key.public.clone(), + Some(&key.secret.clone()), + ); + key.sign(message) + }) + } + + pub fn lock(&mut self, passphrase: String) { + if let Some(keys) = &self.keys { + let string = serde_json::to_string(&keys).unwrap(); + let encrypted = encrypt(string, passphrase); + self.cipher = Some(encrypted); + self.keys = None; + } + } + + pub fn unlock(&mut self, passphrase: String) -> Result<(), AnyError> { + let string = decrypt(self.cipher.clone().expect("No cypher selected"), passphrase) + .map_err(|err| anyhow!(err))?; + let keys: Keys = serde_json::from_str(&string)?; + self.keys = Some(keys); + Ok(()) + } + + pub fn is_unlocked(&self) -> bool { + self.keys.is_some() + } + + pub fn export(&mut self, passphrase: String) -> String { + if let Some(keys) = &self.keys { + let string = serde_json::to_string(keys).unwrap(); + let encrypted = encrypt(string, passphrase); + self.cipher = Some(encrypted.clone()); + encrypted + } else { + String::new() + } + } + + pub fn load(&mut self, data: String) { + self.cipher = Some(data); + } +} + +#[cfg(test)] +mod tests { + //Test the encryption and decryption of a string + use super::*; + + #[test] + fn test_slice_to_u8_array() { + let slice: &[u8] = &[ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, + ]; + let result = slice_to_u8_array(slice).unwrap(); + assert_eq!(slice, &result); + + let slice_short: &[u8] = &[1, 2, 3]; + let result = slice_to_u8_array(slice_short).unwrap(); + let expected: [u8; 32] = [ + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, + ]; + assert_eq!(expected, result); + } + + #[test] + fn test_encrypt_decrypt_multiple() { + let passphrase = "test".to_string(); + let payload = "test".to_string(); + let encrypted = encrypt(payload.clone(), passphrase.clone()); + println!("Got encrypted: {}", encrypted); + let decrypted = decrypt(encrypted, passphrase); + println!("Got decrypted: {:?}", decrypted); + assert_eq!(payload, decrypted.unwrap()); + + let passphrase = "test".to_string(); + let payload = "test".to_string(); + let encrypted = encrypt(payload.clone(), passphrase.clone()); + println!("Got encrypted: {}", encrypted); + let decrypted = decrypt(encrypted, passphrase); + println!("Got decrypted: {:?}", decrypted); + assert_eq!(payload, decrypted.unwrap()); + } + + #[test] + fn test_encrypt_decrypt_wrong_passphrase() { + let passphrase = "test_passphrase".to_string(); + let wrong_passphrase = "wrong_passphrase".to_string(); + let payload = "test_payload".to_string(); + let encrypted = encrypt(payload.clone(), passphrase.clone()); + println!("Got encrypted: {}", encrypted); + assert_ne!(payload, encrypted); + let decrypted = decrypt(encrypted, wrong_passphrase); + assert!(decrypted.is_err()); + } + + #[test] + fn test_create_and_get_key() { + let mut wallet = Wallet::new(); + let name = "test".to_string(); + + wallet.generate_keypair(name.clone()); + + assert!(wallet.keys.is_some()); + assert!(wallet.keys.clone().unwrap().by_name.get(&name).is_some()); + assert!(wallet.get_public_key(&name).is_some()); + assert!(wallet.get_secret_key(&name).is_some()); + } + + #[test] + fn test_wallet_did_document_generation() { + let mut wallet = Wallet::new(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + let did_document = wallet.get_did_document(&key_name); + + assert!(did_document.is_some()); + } + + #[test] + fn test_wallet_signing() { + let mut wallet = Wallet::new(); + let key_name = "test_key".to_string(); + let message = b"test message"; + + wallet.generate_keypair(key_name.clone()); + let signature = wallet.sign(&key_name, message); + + assert!(signature.is_some()); + } + + #[test] + fn test_wallet_lock_unlock() { + let mut wallet = Wallet::new(); + let passphrase = "test_passphrase".to_string(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + wallet.lock(passphrase.clone()); + assert!(!wallet.is_unlocked()); + let unlock_result = wallet.unlock(passphrase.clone()); + assert!(unlock_result.is_ok()); + assert!(wallet.is_unlocked()); + } + + #[test] + fn test_wallet_lock_unlock_wrong_passphrase() { + let mut wallet = Wallet::new(); + let passphrase = "test_passphrase".to_string(); + let wrong_passphrase = "wrong_passphrase".to_string(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + wallet.lock(passphrase.clone()); + assert!(!wallet.is_unlocked()); + let unlock_result = wallet.unlock(wrong_passphrase); + assert!(unlock_result.is_err()); + assert!(!wallet.is_unlocked()); + } + + #[test] + fn test_wallet_export_and_load() { + let mut wallet = Wallet::new(); + let passphrase = "test_passphrase".to_string(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + let exported_data = wallet.export(passphrase.clone()); + assert!(!exported_data.is_empty()); + + let mut new_wallet = Wallet::new(); + new_wallet.load(exported_data); + let unlock_result = new_wallet.unlock(passphrase); + assert!(unlock_result.is_ok()); + assert!(new_wallet.is_unlocked()); + } + + #[test] + fn test_did_sign_and_verify() { + let mut wallet = Wallet::new(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + let did_document = wallet.get_did_document(&key_name); + assert!(did_document.is_some()); + + let did = did_document.unwrap().id; + + let message = b"test message"; + let signature = wallet.sign(&key_name, message); + assert!(signature.is_some()); + + let mut signature = signature.unwrap(); + { + let sig_bytes = signature.as_slice(); + let key_pair = PatchedKeyPair::try_from(did.as_str()).expect("Failed to get key pair"); + let result = key_pair.verify(message, sig_bytes); + assert!(result.is_ok()); + } + + signature[0] = 0; + { + let sig_bytes = signature.as_slice(); + let key_pair = PatchedKeyPair::try_from(did.as_str()).expect("Failed to get key pair"); + let result = key_pair.verify(message, sig_bytes); + assert!(result.is_err()); + } + } +} diff --git a/setVersion.js b/setVersion.js index d66067f0d..973d5de39 100644 --- a/setVersion.js +++ b/setVersion.js @@ -21,9 +21,11 @@ if (isPreRelease) { } let VERSION = process.argv[2] +let RUST_VERSION = process.argv[2] if (isPreRelease) { - VERSION = VERSION + ".prerelease"; + VERSION = VERSION + "-prerelease"; + RUST_VERSION = VERSION + ".0"; } const RAW_VERSION = process.argv[2]; @@ -35,10 +37,18 @@ console.log("Root repo version: " + rootRepo.version + " -> " + VERSION) rootRepo.version = VERSION fs.writeFileSync('package.json', JSON.stringify(rootRepo, null, 2) + '\n') -const cli = replaceVersionLine(fs.readFileSync('cli/Cargo.toml', 'utf8'), VERSION) -console.log("CLI version: " + cli.oldVersion + " -> " + VERSION) -const ad4mClient = replaceVersionLine(cli.newContent, VERSION, `ad4m-client = { path = "../rust-client", version = `, ` }`) -console.log(`CLI ad4m-client dep: ${ad4mClient.oldVersion} -> ${VERSION}`) +let ad4mClient; +if (isPreRelease) { + const cli = replaceVersionLine(fs.readFileSync('cli/Cargo.toml', 'utf8'), RUST_VERSION) + console.log("CLI version: " + cli.oldVersion + " -> " + RUST_VERSION) + ad4mClient = replaceVersionLine(cli.newContent, RUST_VERSION, `ad4m-client = { path = "../rust-client", version = `, ` }`) + console.log(`CLI ad4m-client dep: ${ad4mClient.oldVersion} -> ${RUST_VERSION}`) +} else { + const cli = replaceVersionLine(fs.readFileSync('cli/Cargo.toml', 'utf8'), RAW_VERSION) + console.log("CLI version: " + cli.oldVersion + " -> " + RAW_VERSION) + ad4mClient = replaceVersionLine(cli.newContent, RAW_VERSION, `ad4m-client = { path = "../rust-client", version = `, ` }`) + console.log(`CLI ad4m-client dep: ${ad4mClient.oldVersion} -> ${RAW_VERSION}`) +} fs.writeFileSync('cli/Cargo.toml', ad4mClient.newContent) const connect = JSON.parse(fs.readFileSync('connect/package.json', 'utf8')) @@ -56,6 +66,16 @@ console.log("Executor version: " + executor.version + " -> " + VERSION) executor.version = VERSION fs.writeFileSync('executor/package.json', JSON.stringify(executor, null, 2) + '\n') +const rustExecutor = JSON.parse(fs.readFileSync('rust-executor/package.json', 'utf8')) +console.log("Executor version: " + rustExecutor.version + " -> " + VERSION) +rustExecutor.version = VERSION +fs.writeFileSync('rust-executor/package.json', JSON.stringify(rustExecutor, null, 2) + '\n') + +const tests = JSON.parse(fs.readFileSync('tests/js/package.json', 'utf8')) +console.log("Executor version: " + tests.version + " -> " + VERSION) +tests.version = VERSION +fs.writeFileSync('tests/js/package.json', JSON.stringify(tests, null, 2) + '\n') + const executorHardWired = replaceVersionLine( fs.readFileSync('executor/src/core/Config.ts', 'utf8'), @@ -65,41 +85,49 @@ const executorHardWired = replaceVersionLine( console.log("Hard-wired version string in executor's Config.ts: " + executorHardWired.oldVersion + " -> " + VERSION) fs.writeFileSync('executor/src/core/Config.ts', executorHardWired.newContent) -const host = JSON.parse(fs.readFileSync('host/package.json', 'utf8')) -console.log("Host version: " + host.version + " -> " + VERSION) -host.version = VERSION -fs.writeFileSync('host/package.json', JSON.stringify(host, null, 2) + '\n') - const rustClient = replaceVersionLine(fs.readFileSync('rust-client/Cargo.toml', 'utf8'), VERSION) console.log("rust-client version: " + rustClient.oldVersion + " -> " + VERSION) fs.writeFileSync('rust-client/Cargo.toml', rustClient.newContent) +const rustExecutorCargo = replaceVersionLine(fs.readFileSync('rust-executor/Cargo.toml', 'utf8'), VERSION) +console.log("rust-executor version: " + rustExecutorCargo.oldVersion + " -> " + VERSION) +fs.writeFileSync('rust-executor/Cargo.toml', rustExecutorCargo.newContent) + +const globalsRs = replaceVersionLine( + fs.readFileSync('rust-executor/src/globals.rs', 'utf8'), + VERSION, + ` pub static ref AD4M_VERSION: String = String::from(`, + `);` + ) +console.log("globals.rs version: " + globalsRs.oldVersion + " -> " + VERSION) +fs.writeFileSync('rust-executor/src/globals.rs', globalsRs.newContent) + const uiPackage = JSON.parse(fs.readFileSync('ui/package.json', 'utf8')) if (isPreRelease) { - console.log("UI version: " + uiPackage.version + " -> " + RAW_VERSION) - uiPackage.version = RAW_VERSION -} else { console.log("UI version: " + uiPackage.version + " -> " + VERSION) uiPackage.version = VERSION +} else { + console.log("UI version: " + uiPackage.version + " -> " + RAW_VERSION) + uiPackage.version = RAW_VERSION } fs.writeFileSync('ui/package.json', JSON.stringify(uiPackage, null, 2) + '\n') const uiTauri = JSON.parse(fs.readFileSync('ui/src-tauri/tauri.conf.json', 'utf8')) if (isPreRelease) { - console.log("UI Tauri version: " + uiTauri.package.version + " -> " + RAW_VERSION) - uiTauri.package.version = RAW_VERSION -} else { console.log("UI Tauri version: " + uiTauri.package.version + " -> " + VERSION) uiTauri.package.version = VERSION +} else { + console.log("UI Tauri version: " + uiTauri.package.version + " -> " + RAW_VERSION) + uiTauri.package.version = RAW_VERSION } fs.writeFileSync('ui/src-tauri/tauri.conf.json', JSON.stringify(uiTauri, null, 2) + '\n') let uiTauriCargo; if (isPreRelease) { - uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), RAW_VERSION) - console.log("UI Cargo version: " + uiTauriCargo.oldVersion + " -> " + RAW_VERSION) + uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), RUST_VERSION) + console.log("UI Cargo version: " + uiTauriCargo.oldVersion + " -> " + RUST_VERSION) } else { - uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), VERSION) + uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), RAW_VERSION) console.log("UI Cargo version: " + uiTauriCargo.oldVersion + " -> " + VERSION) } fs.writeFileSync('ui/src-tauri/Cargo.toml', uiTauriCargo.newContent) diff --git a/test-runner/package.json b/test-runner/package.json index 3d13e90d8..b94e4afbf 100644 --- a/test-runner/package.json +++ b/test-runner/package.json @@ -1,13 +1,13 @@ { "name": "@perspect3vism/ad4m-test", - "version": "0.5.1", + "version": "0.6.0", "description": "Testing library to test ad4m languages", "license": "MIT", "bin": "./build/cli.js", "scripts": { "build": "tsc", "build:util": "browserify build/client.js --standalone Bundle -p esmify > public/client.js", - "test": "yarn run test-expression", + "test": "echo \"Test runner integration tests disabled\"", "test-expression": "node build/cli.js --test ./example/expression.test.js --bundle \"example/languages/note-ipfs.js\" --meta '{\"name\":\"note-ipfs\",\"description\":\"IPFS based language for storing data\",\"sourceCodeLink\":\"https://github.com/perspect3vism/note-ipfs\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", "test-link": "node build/cli.js --test ./example/link.test.js --bundle \"example/languages/social-context.js\" --meta '{\"name\":\"social-context\",\"description\":\"Shortform expression for flux application\",\"sourceCodeLink\":\"https://github.com/juntofoundation/ad4m-languages\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", "test-ui": "node build/cli.js --ui --bundle \"example/languages/note-ipfs.js\" --meta '{\"name\":\"note-ipfs\",\"description\":\"Shortform expression for flux application\",\"sourceCodeLink\":\"https://github.com/juntofoundation/ad4m-languages\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 000000000..4bc5812b0 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,10 @@ +js/tst-tmp + +!cleanTestingData.js +!cleanup.js +!get-builtin-test-langs.js +!injectLanguageLanguageBundle.js +!injectPublishingAgent.js + +js/scripts/note-ipfs-hash +js/scripts/perspective-diff-sync-hash \ No newline at end of file diff --git a/tests/binaries.bats b/tests/binaries.bats index f97f0be89..bc6e50495 100644 --- a/tests/binaries.bats +++ b/tests/binaries.bats @@ -3,10 +3,6 @@ setup() { load 'test_helper/bats-assert/load' } -@test "can run ad4m-host" { - ./host/dist/ad4m-macos-x64 -} - get_ad4m_cli_banner() { ./target/release/ad4m 2>&1 } diff --git a/tests/integration.bats b/tests/integration.bats index 6e9226f31..bfb0923a9 100644 --- a/tests/integration.bats +++ b/tests/integration.bats @@ -1,11 +1,12 @@ setup_file() { + current_dir=$(pwd) echo "Creating test agent 1" >&3 echo "Initalizing data directory..." >&3 rm -rf ./tests/ad4m1 - ./host/dist/ad4m-macos-x64 init --dataPath ./tests/ad4m1 + ./target/release/ad4m init --data-path ${current_dir}/tests/ad4m1 echo "done." >&3 echo "Starting agent 1..." >&3 - ./host/dist/ad4m-macos-x64 serve --dataPath ./tests/ad4m1 & + ./target/release/ad4m run --app-data-path ${current_dir}/tests/ad4m1 --gql-port 4000 & sleep 5 echo "done." >&3 @@ -17,10 +18,10 @@ setup_file() { #echo "Creating test agent 2" >&3 #echo "Initalizing data directory..." >&3 #rm -rf ./tests/ad4m2 - #./host/dist/ad4m-macos-x64 init --dataPath ./tests/ad4m2 + #./target/release/ad4m init --data-path ${current_dir}/tests/ad4m2 #echo "done." >&3 #echo "Starting agent 2..." >&3 - #./host/dist/ad4m-macos-x64 serve --dataPath ./tests/ad4m2 --port 4001 --ipfsPort 15000 --hcAdminPort 2337 --hcAppPort 2338 & + #./target/release/ad4m run --app-data-path ${current_dir}/tests/ad4m2 --gql-port 4001 --ipfs-swarm-port 15000 --hc-admin-port 2337 --hc-app-port 2338 & #sleep 5 #echo "done." >&3 @@ -30,8 +31,7 @@ setup_file() { } teardown_file() { - killall ad4m-macos-x64 - killall holochain + killall ad4m } setup() { @@ -51,6 +51,7 @@ setup() { } @test "can use subjects and run potluck example sdna" { + skip # Create perspective perspective_id=`./target/release/ad4m -n -e http://localhost:4000/graphql perspectives add "sdna subject test"` run ./target/release/ad4m -n -e http://localhost:4000/graphql perspectives set-dna $perspective_id ./tests/potluck.pl @@ -152,6 +153,7 @@ setup() { } @test "can create and get expressions, using note-ipfs language" { + skip wget https://github.com/perspect3vism/lang-note-ipfs/releases/download/0.0.4/bundle.js -O ./tests/note-ipfs.js pwd=`pwd` publish_output=`./target/release/ad4m -n -e http://localhost:4000/graphql languages publish $pwd/tests/note-ipfs.js -n "note-ipfs" -d "Stores text expressions in IPFS" -p "", -s "https://github.com/perspect3vism/lang-note-ipfs"` diff --git a/tests/js/.mocharc.json b/tests/js/.mocharc.json new file mode 100644 index 000000000..13f9b99ad --- /dev/null +++ b/tests/js/.mocharc.json @@ -0,0 +1,6 @@ +{ + "node-option": [ + "experimental-specifier-resolution=node", + "loader=ts-node/esm" + ] +} \ No newline at end of file diff --git a/tests/js/bootstrapSeed.json b/tests/js/bootstrapSeed.json new file mode 100644 index 000000000..8c7b92871 --- /dev/null +++ b/tests/js/bootstrapSeed.json @@ -0,0 +1 @@ +{"trustedAgents":["did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n"],"knownLinkLanguages":["QmzSYwdfRBC1tKP9XcQSgimWSbWyGyVmck4MMmPPC1Gokr3tq26"],"directMessageLanguage":"QmzSYwdcZPQToRt7653T2zAq8BEt8u7dZ7jyzWMaRTsSxMc4HuZ","agentLanguage":"QmzSYwdfHAE9cvfvCkNZFWH9L5y2QcKBiivNZYU53UR4hE8a8Dx","perspectiveLanguage":"QmzSYwdeBLCn99QU7DSnJuTFrp7TQGRZkrTDRXvxiv2XAbUFeEx","neighbourhoodLanguage":"QmzSYwdexVtzt8GEY37qzRy15mNL59XrpjvZJjgYXa43j6CewKE","languageLanguageBundle":""} \ No newline at end of file diff --git a/tests/js/languages/note-store/esbuild.ts b/tests/js/languages/note-store/esbuild.ts new file mode 100644 index 000000000..63cd58ab1 --- /dev/null +++ b/tests/js/languages/note-store/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'note.store', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/tests/js/languages/note-store/index.ts b/tests/js/languages/note-store/index.ts new file mode 100644 index 000000000..4114ba1fb --- /dev/null +++ b/tests/js/languages/note-store/index.ts @@ -0,0 +1,45 @@ +import type { Address, Interaction, Expression, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import { exists } from "https://deno.land/std@0.184.0/fs/mod.ts"; +import { join } from "https://deno.land/std@0.184.0/path/mod.ts"; + +export default function create(context: LanguageContext): Language { + const expressions = new Array() + + let storagePath = ""; + + //@ts-ignore + if ("storagePath" in context.customSettings) { storagePath = context.customSettings["storagePath"] } else { storagePath = "./tst-tmp/note" }; + + function interactions(expressionAddress: Address): Interaction[] { + return [] + } + + return { + name: "note-store", + interactions, + expressionAdapter: { + get: async (address: Address) => { + let path = join(storagePath, `${address}.txt`) + console.log("note-store language trying to get at path:", path); + try { + await exists(path) + return JSON.parse(Deno.readTextFileSync(path)); + } catch (e) { + console.error("caught error", e); + return null; + } + }, + putAdapter: { + createPublic: async (content: object): Promise
=> { + const expr = context.agent.createSignedExpression(content) + const exprString = JSON.stringify(expr) + // @ts-ignore + const hash = UTILS.hash(exprString); + Deno.writeTextFileSync(join(storagePath, `${hash}.txt`), exprString); + return hash + } + } + } + } as Language +} + diff --git a/tests/js/languages/note-store/package.json b/tests/js/languages/note-store/package.json new file mode 100644 index 000000000..160592e53 --- /dev/null +++ b/tests/js/languages/note-store/package.json @@ -0,0 +1,17 @@ +{ + "name": "test-language", + "version": "0.0.1", + "description": "An AD4M Language for testing AD4M-executor", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "deno run --allow-all esbuild.ts" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "tslib": "^2.0.0", + "typescript": "^4.6.2", + "uint8arrays": "^3.0.0" + } +} diff --git a/executor/src/tests/test-language/tsconfig.json b/tests/js/languages/note-store/tsconfig.json similarity index 100% rename from executor/src/tests/test-language/tsconfig.json rename to tests/js/languages/note-store/tsconfig.json diff --git a/tests/js/languages/note-store/yarn.lock b/tests/js/languages/note-store/yarn.lock new file mode 100644 index 000000000..42c13965a --- /dev/null +++ b/tests/js/languages/note-store/yarn.lock @@ -0,0 +1,25 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +multiformats@^9.4.2: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +tslib@^2.0.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + +typescript@^4.6.2: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +uint8arrays@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" diff --git a/executor/src/tests/test-language/.gitignore b/tests/js/languages/test-language/.gitignore similarity index 100% rename from executor/src/tests/test-language/.gitignore rename to tests/js/languages/test-language/.gitignore diff --git a/tests/js/languages/test-language/esbuild.ts b/tests/js/languages/test-language/esbuild.ts new file mode 100644 index 000000000..b3ed385d8 --- /dev/null +++ b/tests/js/languages/test-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'test.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/executor/src/tests/test-language/index.ts b/tests/js/languages/test-language/index.ts similarity index 95% rename from executor/src/tests/test-language/index.ts rename to tests/js/languages/test-language/index.ts index e0c77ae12..ae0fe4e0f 100644 --- a/executor/src/tests/test-language/index.ts +++ b/tests/js/languages/test-language/index.ts @@ -1,4 +1,4 @@ -import type { Address, Interaction, Expression, Language, LanguageContext, PublicSharing } from "@perspect3vism/ad4m"; +import type { Address, Interaction, Expression, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; export default function create(context: LanguageContext): Language { const expressions = new Array() diff --git a/tests/js/languages/test-language/package.json b/tests/js/languages/test-language/package.json new file mode 100644 index 000000000..a18739caa --- /dev/null +++ b/tests/js/languages/test-language/package.json @@ -0,0 +1,18 @@ +{ + "name": "test-language", + "version": "0.0.1", + "description": "An AD4M Language for testing AD4M-executor", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "deno-bundle": "deno bundle index.ts build/bundle.js", + "build": "deno run --allow-all esbuild.ts" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "tslib": "^2.0.0", + "typescript": "^4.6.2", + "uint8arrays": "^3.0.0" + } +} diff --git a/tests/js/languages/test-language/tsconfig.json b/tests/js/languages/test-language/tsconfig.json new file mode 100644 index 000000000..68e2f4be1 --- /dev/null +++ b/tests/js/languages/test-language/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "types": ["node"], + }, + "include": ["*.ts"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"], + "allowJs": true + } \ No newline at end of file diff --git a/tests/js/languages/test-language/yarn.lock b/tests/js/languages/test-language/yarn.lock new file mode 100644 index 000000000..c0ebdcb56 --- /dev/null +++ b/tests/js/languages/test-language/yarn.lock @@ -0,0 +1,25 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +multiformats@^9.4.2: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +tslib@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +typescript@^4.6.2: + version "4.8.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== + +uint8arrays@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" diff --git a/tests/js/package.json b/tests/js/package.json index 7044848ba..314e6368f 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -1,38 +1,55 @@ { - "name": "ad4m-integration-tests", - "version": "0.1.0", - "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", - "type": "module", - "scripts": { - "test": "ts-mocha -n loader=ts-node/esm --timeout 1200000 --exit integration.test.ts" - }, - "devDependencies": { - "@apollo/client": "3.7.10", - "@peculiar/webcrypto": "^1.1.7", - "@perspect3vism/ad4m": "link:../../core", - "@types/chai": "*", - "@types/chai-as-promised": "*", - "@types/expect": "*", - "@types/faker": "^5.5.7", - "@types/fs-extra": "^9.0.12", - "@types/js-yaml": "^4.0.2", - "@types/lowdb": "^1.0.11", - "@types/mocha": "*", - "@types/node": "^14.14.22", - "@types/node-fetch": "^2.5.11", - "@types/sinon": "*", - "chai": "*", - "chai-as-promised": "*", - "faker": "^5.1.0", - "mocha": "*", - "node-fetch": "^3.3.0", - "node-wget-js": "^1.0.1", - "react": "^17.0.1", - "sinon": "*", - "ts-mocha": "*", - "ts-node": "10.9.1", - "typescript": "^4.6.2", - "unzipper": "^0.10.11", - "ws": "8.13.0" - } + "name": "@perspect3vism/ad4m-integration-tests", + "version": "0.6.0", + "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", + "type": "module", + "scripts": { + "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", + "test:windows": "yarn run prepare-test:windows && yarn run test-all:windows && node scripts/cleanTestingData.js", + "test-all:windows": "node scripts/cleanup.js && yarn run test-simple && node scripts/cleanup.js && yarn run test-app && node scripts/cleanup.js && yarn run test-auth && node scripts/cleanup.js && yarn run test-integration && node scripts/cleanup.js && yarn run test-prolog-and-literals", + "test-all": "yarn run test-simple && yarn run test-app && yarn run test-auth && yarn run test-integration && yarn run test-prolog-and-literals", + "test-simple": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts", + "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", + "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", + "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", + "test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", + "prepare-test": "run-script-os", + "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", + "prepare-test:linux": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", + "prepare-test:windows": "powershell -ExecutionPolicy Bypass -File ./scripts/build-test-language.ps1 && powershell -ExecutionPolicy Bypass -File ./scripts/prepareTestDirectory.ps1 && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", + "inject-language-language": "node scripts/injectLanguageLanguageBundle.js", + "inject-publishing-agent": "node scripts/injectPublishingAgent.js", + "publish-test-languages": "ts-node-esm --experimental-specifier-resolution=node --files ./utils/publishTestLangs.ts" + }, + "devDependencies": { + "@apollo/client": "3.7.10", + "@peculiar/webcrypto": "^1.1.7", + "@perspect3vism/ad4m": "*", + "@types/chai": "*", + "@types/chai-as-promised": "*", + "@types/expect": "*", + "@types/faker": "^5.5.7", + "@types/fs-extra": "^9.0.12", + "@types/js-yaml": "^4.0.2", + "@types/lowdb": "^1.0.11", + "@types/mocha": "*", + "@types/node": "^14.14.22", + "@types/node-fetch": "^2.5.11", + "@types/sinon": "*", + "chai": "*", + "chai-as-promised": "*", + "faker": "^5.1.0", + "mocha": "*", + "node-fetch": "^3.3.0", + "node-wget-js": "^1.0.1", + "react": "^17.0.1", + "run-script-os": "^1.1.6", + "sinon": "*", + "ts-mocha": "*", + "ts-node": "10.9.1", + "typescript": "^4.6.2", + "unzipper": "^0.10.11", + "ws": "8.13.0", + "kill-process-by-name": "^1.0.5" + } } diff --git a/tests/js/publishBootstrapSeed.json b/tests/js/publishBootstrapSeed.json new file mode 100644 index 000000000..44fa4b0ea --- /dev/null +++ b/tests/js/publishBootstrapSeed.json @@ -0,0 +1 @@ +{"trustedAgents":[],"knownLinkLanguages":[],"directMessageLanguage":"","agentLanguage":"","perspectiveLanguage":"","neighbourhoodLanguage":"","languageLanguageBundle":""} \ No newline at end of file diff --git a/tests/js/schema.gql b/tests/js/schema.gql new file mode 100644 index 000000000..c86982286 --- /dev/null +++ b/tests/js/schema.gql @@ -0,0 +1,379 @@ +type LinkExpressionMutations { + additions: [LinkExpression!]! + removals: [LinkExpression!]! +} + +type InteractionMeta { + label: String! + name: String! + parameters: [InteractionParameter!]! +} + +type Neighbourhood { + linkLanguage: String! + meta: Perspective! +} + +input InteractionCall { + name: String! + parametersStringified: String! +} + +input CapabilityInput { + can: [String!]! + with: ResourceInput! +} + +type RuntimeInfo { + ad4mExecutorVersion: String! + isInitialized: Boolean! + isUnlocked: Boolean! +} + +input LinkInput { + predicate: String + source: String! + target: String! +} + +type ExpressionRendered { + author: String! + data: String! + icon: Icon! + language: LanguageRef! + proof: ExpressionProof! + timestamp: String! +} + +type LanguageMeta { + address: String! + author: String! + description: String + name: String! + possibleTemplateParams: [String!] + sourceCodeLink: String + templateAppliedParams: String + templateSourceLanguageAddress: String + templated: Boolean +} + +enum LinkStatus { + SHARED + LOCAL +} + +input EntanglementProofInput { + deviceKey: String! + deviceKeySignedByDid: String! + deviceKeyType: String! + did: String! + didSignedByDeviceKey: String! + didSigningKeyId: String! +} + +type Resource { + domain: String! + pointers: [String!]! +} + +type Perspective { + links: [LinkExpression!]! +} + +input LinkQuery { + fromDate: DateTime + limit: Float + predicate: String + source: String + target: String + untilDate: DateTime +} + +type AgentSignature { + publicKey: String! + signature: String! +} + +input ExpressionProofInput { + invalid: Boolean + key: String + signature: String + valid: Boolean +} + +input LinkMutations { + additions: [LinkInput!]! + removals: [LinkExpressionInput!]! +} + +type AgentStatus { + did: String + didDocument: String + error: String + isInitialized: Boolean! + isUnlocked: Boolean! +} + +type LanguageHandle { + address: String! + constructorIcon: Icon + icon: Icon + name: String! + settings: String + settingsIcon: Icon +} + +input LinkExpressionInput { + author: String! + data: LinkInput! + proof: ExpressionProofInput! + timestamp: String! + status: LinkStatus +} + +type ExceptionInfo { + addon: String + message: String! + title: String! + type: Float! +} + +scalar DateTime + +type OnlineAgent { + did: String! + status: PerspectiveExpression! +} + +type LanguageRef { + address: String! + name: String! +} + +input AuthInfoInput { + appDesc: String! + appDomain: String! + appIconPath: String + appName: String! + appUrl: String + capabilities: [CapabilityInput!] +} + +type LinkUpdated { + newLink: LinkExpression! + oldLink: LinkExpression! +} + +type ExpressionProof { + invalid: Boolean + key: String + signature: String + valid: Boolean +} + +type Mutation { + addTrustedAgents(agents: [String!]!): [String!]! + agentAddEntanglementProofs(proofs: [EntanglementProofInput!]!): [EntanglementProof!]! + agentDeleteEntanglementProofs(proofs: [EntanglementProofInput!]!): [EntanglementProof!]! + agentEntanglementProofPreFlight(deviceKey: String!, deviceKeyType: String!): EntanglementProof! + agentGenerate(passphrase: String!): AgentStatus! + agentGenerateJwt(rand: String!, requestId: String!): String! + agentLock(passphrase: String!): AgentStatus! + agentPermitCapability(auth: String!): String! + agentRemoveApp(requestId: String!): [Apps!]! + agentRequestCapability(authInfo: AuthInfoInput!): String! + agentRevokeToken(requestId: String!): [Apps!]! + agentSignMessage(message: String!): AgentSignature! + agentUnlock(passphrase: String!): AgentStatus! + agentUpdateDirectMessageLanguage(directMessageLanguage: String!): Agent! + agentUpdatePublicPerspective(perspective: PerspectiveInput!): Agent! + deleteTrustedAgents(agents: [String!]!): [String!]! + expressionCreate(content: String!, languageAddress: String!): String! + expressionInteract(interactionCall: InteractionCall!, url: String!): String! + languageApplyTemplateAndPublish(sourceLanguageHash: String!, templateData: String!): LanguageRef! + languagePublish(languageMeta: LanguageMetaInput!, languagePath: String!): LanguageMeta! + languageRemove(address: String!): Boolean! + languageWriteSettings(languageAddress: String!, settings: String!): Boolean! + neighbourhoodJoinFromUrl(url: String!): PerspectiveHandle! + neighbourhoodPublishFromPerspective(linkLanguage: String!, meta: PerspectiveInput!, perspectiveUUID: String!): String! + neighbourhoodSendBroadcast(payload: PerspectiveInput!, perspectiveUUID: String!): Boolean! + neighbourhoodSendBroadcastU(payload: PerspectiveUnsignedInput!, perspectiveUUID: String!): Boolean! + neighbourhoodSendSignal(payload: PerspectiveInput!, perspectiveUUID: String!, remoteAgentDid: String!): Boolean! + neighbourhoodSendSignalU(payload: PerspectiveUnsignedInput!, perspectiveUUID: String!, remoteAgentDid: String!): Boolean! + neighbourhoodSetOnlineStatus(perspectiveUUID: String!, status: PerspectiveInput!): Boolean! + neighbourhoodSetOnlineStatusU(perspectiveUUID: String!, status: PerspectiveUnsignedInput!): Boolean! + perspectiveAdd(name: String!): PerspectiveHandle! + perspectiveAddLink(link: LinkInput!, uuid: String!, status: String): LinkExpression! + perspectiveAddLinkExpression(link: LinkExpressionInput!, uuid: String!, status: String): LinkExpression! + perspectiveAddLinks(links: [LinkInput!]!, uuid: String!, status: String): [LinkExpression!]! + perspectiveLinkMutations(mutations: LinkMutations!, uuid: String!, status: String): LinkExpressionMutations! + perspectivePublishSnapshot(uuid: String!): String! + perspectiveRemove(uuid: String!): Boolean! + perspectiveRemoveLink(link: LinkExpressionInput!, uuid: String!): Boolean! + perspectiveRemoveLinks(links: [LinkExpressionInput!]!, uuid: String!): [LinkExpression!]! + perspectiveUpdate(name: String!, uuid: String!): PerspectiveHandle! + perspectiveUpdateLink(newLink: LinkInput!, oldLink: LinkExpressionInput!, uuid: String!): LinkExpression! + runtimeAddFriends(dids: [String!]!): [String!]! + runtimeAddKnownLinkLanguageTemplates(addresses: [String!]!): [String!]! + runtimeFriendSendMessage(did: String!, message: PerspectiveInput!): Boolean! + runtimeHcAddAgentInfos(agentInfos: String!): Boolean! + runtimeOpenLink(url: String!): Boolean! + runtimeQuit: Boolean! + runtimeRemoveFriends(dids: [String!]!): [String!]! + runtimeRemoveKnownLinkLanguageTemplates(addresses: [String!]!): [String!]! + runtimeSetStatus(status: PerspectiveInput!): Boolean! +} + +type PerspectiveExpression { + author: String! + data: Perspective! + proof: ExpressionProof! + timestamp: String! +} + +type SentMessage { + message: PerspectiveExpression! + recipient: String! +} + +type Query { + agent: Agent! + agentByDID(did: String!): Agent + agentGetApps: [Apps!]! + agentGetEntanglementProofs: [EntanglementProof!]! + agentIsLocked: Boolean! + agentStatus: AgentStatus! + expression(url: String!): ExpressionRendered + expressionInteractions(url: String!): [InteractionMeta!]! + expressionMany(urls: [String!]!): [ExpressionRendered]! + expressionRaw(url: String!): String + getTrustedAgents: [String!]! + language(address: String!): LanguageHandle! + languageMeta(address: String!): LanguageMeta! + languageSource(address: String!): String! + languages(filter: String): [LanguageHandle!]! + neighbourhoodHasTelepresenceAdapter(perspectiveUUID: String!): Boolean! + neighbourhoodOnlineAgents(perspectiveUUID: String!): [OnlineAgent!]! + neighbourhoodOtherAgents(perspectiveUUID: String!): [String!]! + perspective(uuid: String!): PerspectiveHandle + perspectiveQueryLinks(query: LinkQuery!, uuid: String!): [LinkExpression!]! + perspectiveQueryProlog(query: String!, uuid: String!): String! + perspectiveSnapshot(uuid: String!): Perspective! + perspectives: [PerspectiveHandle!]! + runtimeFriendStatus(did: String!): PerspectiveExpression! + runtimeFriends: [String!]! + runtimeHcAgentInfos: String! + runtimeInfo: RuntimeInfo! + runtimeKnownLinkLanguageTemplates: [String!]! + runtimeMessageInbox(filter: String): [PerspectiveExpression!]! + runtimeMessageOutbox(filter: String): [SentMessage!]! + runtimeVerifyStringSignedByDid(data: String!, did: String!, didSigningKeyId: String!, signedData: String!): Boolean! +} + +type Apps { + auth: AuthInfo! + requestId: String! + revoked: Boolean + token: String! +} + +type Agent { + did: String! + directMessageLanguage: String + perspective: Perspective +} + +type Icon { + code: String +} + +type LinkExpression { + author: String! + data: Link! + proof: ExpressionProof! + timestamp: String! + status: LinkStatus +} + +type Link { + predicate: String + source: String! + target: String! +} + +type Capability { + can: [String!]! + with: Resource! +} + +type AuthInfo { + appDesc: String! + appIconPath: String + appName: String! + appUrl: String! + capabilities: [Capability!]! +} + +input PerspectiveUnsignedInput { + links: [LinkInput!]! +} + +type Subscription { + agentStatusChanged: AgentStatus! + agentAppsChanged: Apps + agentUpdated: Agent! + exceptionOccurred: ExceptionInfo! + neighbourhoodSignal(perspectiveUUID: String!): PerspectiveExpression! + perspectiveAdded: PerspectiveHandle! + perspectiveLinkAdded(uuid: String!): LinkExpression! + perspectiveLinkRemoved(uuid: String!): LinkExpression! + perspectiveLinkUpdated(uuid: String!): LinkUpdated! + perspectiveRemoved: String! + perspectiveSyncStateChange(uuid: String!): String! + perspectiveUpdated: PerspectiveHandle! + runtimeMessageReceived: PerspectiveExpression! +} + +type PerspectiveHandle { + name: String + neighbourhood: Neighbourhood + sharedUrl: String + state: String! + uuid: String! +} + +type InteractionParameter { + name: String! + type: String! +} + +input ResourceInput { + domain: String! + pointers: [String!]! +} + +input PerspectiveInput { + links: [LinkExpressionInput!]! +} + +type EntanglementProof { + deviceKey: String! + deviceKeySignedByDid: String! + deviceKeyType: String! + did: String! + didSignedByDeviceKey: String + didSigningKeyId: String! +} + +input LanguageMetaInput { + description: String! + name: String! + possibleTemplateParams: [String!] + sourceCodeLink: String +} + +schema { + query: Query + mutation: Mutation + subscription: Subscription +} diff --git a/tests/js/scripts/build-test-language.ps1 b/tests/js/scripts/build-test-language.ps1 new file mode 100644 index 000000000..b1c768a15 --- /dev/null +++ b/tests/js/scripts/build-test-language.ps1 @@ -0,0 +1,7 @@ +Set-Location languages/test-language +yarn install +yarn run build + +Set-Location ../note-store +yarn install +yarn run build diff --git a/tests/js/scripts/build-test-language.sh b/tests/js/scripts/build-test-language.sh new file mode 100755 index 000000000..81ce2b599 --- /dev/null +++ b/tests/js/scripts/build-test-language.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +cd languages/test-language +yarn install +yarn run build + +cd ../note-store +yarn install +yarn run build diff --git a/executor/scripts/cleanTestingData.js b/tests/js/scripts/cleanTestingData.js similarity index 88% rename from executor/scripts/cleanTestingData.js rename to tests/js/scripts/cleanTestingData.js index 6a356eae0..8db208ce4 100644 --- a/executor/scripts/cleanTestingData.js +++ b/tests/js/scripts/cleanTestingData.js @@ -1,8 +1,8 @@ //Remove languageLanguage bundle so that when running tests & making commit to github, the languageLanguage bundle is not comitted also import * as fs from "fs"; -const bootstrapSeedPath = "./src/tests/bootstrapSeed.json"; -const publishingBootstrapSeedPath = "./src/tests/publishBootstrapSeed.json"; +const bootstrapSeedPath = "./bootstrapSeed.json"; +const publishingBootstrapSeedPath = "./publishBootstrapSeed.json"; async function main() { if (fs.existsSync(bootstrapSeedPath)) { diff --git a/tests/js/scripts/cleanup.js b/tests/js/scripts/cleanup.js new file mode 100644 index 000000000..2fa3f78ad --- /dev/null +++ b/tests/js/scripts/cleanup.js @@ -0,0 +1,11 @@ +import killProcess from 'kill-process-by-name'; + +async function cleanup() { + try { + killProcess('ad4m'); + } catch (e) { + console.log('Error: ', e) + } +} + +cleanup() \ No newline at end of file diff --git a/tests/js/scripts/download-languages-path b/tests/js/scripts/download-languages-path new file mode 100644 index 000000000..83a70df32 --- /dev/null +++ b/tests/js/scripts/download-languages-path @@ -0,0 +1 @@ +./tst-tmp/languages \ No newline at end of file diff --git a/executor/scripts/get-builtin-test-langs.js b/tests/js/scripts/get-builtin-test-langs.js similarity index 75% rename from executor/scripts/get-builtin-test-langs.js rename to tests/js/scripts/get-builtin-test-langs.js index f3c44265f..f1aa09a33 100644 --- a/executor/scripts/get-builtin-test-langs.js +++ b/tests/js/scripts/get-builtin-test-langs.js @@ -6,25 +6,22 @@ import os from "os"; const languages = { "agent-expression-store": { - bundle: "https://github.com/perspect3vism/agent-language/releases/download/0.2.1/bundle.js", + bundle: "../../bootstrap-languages/agent-language/build/bundle.js", }, languages: { - bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.5/bundle.js", + bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.9/bundle.js", }, "neighbourhood-store": { - bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.2/bundle.js", + bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.6/bundle.js", }, "perspective-diff-sync": { - bundle: "../bootstrap-languages/p-diff-sync/build/bundle.js", - }, - "note-ipfs": { - bundle: "https://github.com/perspect3vism/lang-note-ipfs/releases/download/0.0.4/bundle.js", + bundle: "../../bootstrap-languages/p-diff-sync/build/bundle.js", }, "direct-message-language": { - bundle: "https://github.com/perspect3vism/direct-message-language/releases/download/0.1.0/bundle.js" + bundle: "../../bootstrap-languages/direct-message-language/build/bundle.js" }, "perspective-language": { - bundle: "https://github.com/perspect3vism/perspective-language/releases/download/0.0.1/bundle.js" + bundle: "../../bootstrap-languages/perspective-language/build/bundle.js" } }; diff --git a/executor/scripts/injectLanguageLanguageBundle.js b/tests/js/scripts/injectLanguageLanguageBundle.js similarity index 83% rename from executor/scripts/injectLanguageLanguageBundle.js rename to tests/js/scripts/injectLanguageLanguageBundle.js index ad3606ead..dd236a37d 100644 --- a/executor/scripts/injectLanguageLanguageBundle.js +++ b/tests/js/scripts/injectLanguageLanguageBundle.js @@ -1,8 +1,8 @@ import fs from "fs"; -const languageLanguagePath = "./src/tst-tmp/languages/languages/build/bundle.js"; -const bootstrapSeedPath = "./src/tests/bootstrapSeed.json"; -const publishingBootstrapSeedPath = "./src/tests/publishBootstrapSeed.json"; +const languageLanguagePath = "./tst-tmp/languages/languages/build/bundle.js"; +const bootstrapSeedPath = "./bootstrapSeed.json"; +const publishingBootstrapSeedPath = "./publishBootstrapSeed.json"; async function main() { if (fs.existsSync(languageLanguagePath)) { diff --git a/executor/scripts/injectPublishingAgent.js b/tests/js/scripts/injectPublishingAgent.js similarity index 84% rename from executor/scripts/injectPublishingAgent.js rename to tests/js/scripts/injectPublishingAgent.js index 05516f726..1316a1462 100644 --- a/executor/scripts/injectPublishingAgent.js +++ b/tests/js/scripts/injectPublishingAgent.js @@ -1,7 +1,7 @@ import fs from "fs"; -const publishingAgentPath = "./src/tst-tmp/agents/p/ad4m/agent.json"; -const bootstrapSeedPath = "./src/tests/bootstrapSeed.json"; +const publishingAgentPath = "./tst-tmp/agents/p/ad4m/agent.json"; +const bootstrapSeedPath = "./bootstrapSeed.json"; async function main() { if (fs.existsSync(publishingAgentPath)) { diff --git a/tests/js/scripts/prepareTestDirectory.ps1 b/tests/js/scripts/prepareTestDirectory.ps1 new file mode 100644 index 000000000..765852fc8 --- /dev/null +++ b/tests/js/scripts/prepareTestDirectory.ps1 @@ -0,0 +1,15 @@ +choco install wget --no-progress +# $env:path += ";C:\Program Files\swipl\bin" + +mkdir tst-tmp +cd tst-tmp +mkdir agents +mkdir languages +mkdir note + +wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./hc.exe + +# wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-windows-0.1.0.exe -O ./holochain.exe + +# $SwiplPath = Get-Command swipl.exe | Select-Object -ExpandProperty Definition +# Copy-Item $SwiplPath -Destination swipl.exe diff --git a/tests/js/scripts/prepareTestDirectory.sh b/tests/js/scripts/prepareTestDirectory.sh new file mode 100755 index 000000000..2a731767e --- /dev/null +++ b/tests/js/scripts/prepareTestDirectory.sh @@ -0,0 +1,17 @@ +#!/bin/bash +[ -d "tst-tmp" ] && rm -rf tst-tmp +mkdir tst-tmp +cd tst-tmp +mkdir agents +mkdir languages +mkdir note + +ln -s ../../../executor/temp/binary/hc ./hc +# ln -s ../../../executor/temp/binary/holochain ./holochain +#ln -s ../../../executor/temp/swipl/bin/swipl ./swipl +# homedir=`echo "$(cd ../../../executor/temp/swipl/lib/swipl; pwd)"` +# echo '#!/bin/bash' > ./swipl +# echo 'cd ../../../executor/temp/swipl/bin' >> ./swipl +# echo -n "./swipl --home=${homedir} " >> ./swipl +# echo '"$@"' >> ./swipl +# chmod +x ./swipl diff --git a/tests/js/scripts/run-all-test.ps1 b/tests/js/scripts/run-all-test.ps1 new file mode 100644 index 000000000..8b5cb2517 --- /dev/null +++ b/tests/js/scripts/run-all-test.ps1 @@ -0,0 +1 @@ +$env:PATH = '.\tst-tmp;'+ $env:PATH \ No newline at end of file diff --git a/tests/js/subject.pl b/tests/js/sdna/subject.pl similarity index 100% rename from tests/js/subject.pl rename to tests/js/sdna/subject.pl diff --git a/executor/src/tests/sdna/todo.pl b/tests/js/sdna/todo.pl similarity index 100% rename from executor/src/tests/sdna/todo.pl rename to tests/js/sdna/todo.pl diff --git a/executor/src/tests/agent-language.ts b/tests/js/tests/agent-language.ts similarity index 91% rename from executor/src/tests/agent-language.ts rename to tests/js/tests/agent-language.ts index 0f9dbe5df..d9abb7371 100644 --- a/executor/src/tests/agent-language.ts +++ b/tests/js/tests/agent-language.ts @@ -1,14 +1,13 @@ import { TestContext } from './integration.test' -import sleep from './sleep' +import { sleep } from '../utils/utils' import { expect } from "chai"; export default function agentLanguageTests(testContext: TestContext) { return () => { it("works across remote agents", async () => { - const alice = testContext.alice! const didAlice = (await alice.agent.status()).did! - const bob = testContext.bob! + const bob = testContext.bob! const didBob = (await bob.agent.status()).did! const aliceHerself = await alice.agent.me() diff --git a/executor/src/tests/agent.ts b/tests/js/tests/agent.ts similarity index 75% rename from executor/src/tests/agent.ts rename to tests/js/tests/agent.ts index 8daafeacf..f74a56ca1 100644 --- a/executor/src/tests/agent.ts +++ b/tests/js/tests/agent.ts @@ -1,6 +1,6 @@ -import { Perspective, LinkExpression, Link, ExpressionProof } from "@perspect3vism/ad4m"; +import { Perspective, LinkExpression, Link, ExpressionProof, EntanglementProofInput } from "@perspect3vism/ad4m"; import { TestContext } from './integration.test' -import sleep from './sleep' +import { sleep } from '../utils/utils' import { expect } from "chai"; import * as sinon from "sinon"; @@ -128,6 +128,41 @@ export default function agentTests(testContext: TestContext) { expect(currentAgentPostDeletion.perspective).not.to.be.undefined; expect(currentAgentPostDeletion.perspective!.links.length).to.equal(1); }) + it('can create entanglementProofPreFlight', async () => { + const ad4mClient = testContext.ad4mClient!; + + //Check can generate a preflight key + const preFlight = await ad4mClient.agent.entanglementProofPreFlight("ethAddr", "ethereum"); + expect(preFlight.deviceKey).to.equal("ethAddr"); + expect(preFlight.deviceKeyType).to.equal("ethereum"); + expect(preFlight.didSignedByDeviceKey).to.be.null; + + const verify = await ad4mClient.runtime.verifyStringSignedByDid(preFlight.did, preFlight.didSigningKeyId, "ethAddr", preFlight.deviceKeySignedByDid); + expect(verify).to.be.true; + + //Check can save a entanglement proof + preFlight.didSignedByDeviceKey = "ethSignedDID"; + const addProof = await ad4mClient.agent.addEntanglementProofs([preFlight as EntanglementProofInput]); + expect(addProof[0]).to.deep.equal(preFlight); + + //Check can get entanglment proofs + const getProofs = await ad4mClient.agent.getEntanglementProofs(); + expect(getProofs[0]).to.deep.equal(preFlight); + + //Check can delete entanglement proofs + const deleteProofs = await ad4mClient.agent.deleteEntanglementProofs([preFlight as EntanglementProofInput]); + expect(deleteProofs.length).to.be.equal(0); + + //Check entanglement proof is deleted on get + const getProofsPostDelete = await ad4mClient.agent.getEntanglementProofs(); + expect(getProofsPostDelete.length).to.be.equal(0); + }) + it('can signMessage', async () => { + const ad4mClient = testContext.ad4mClient!; + + const signed = await ad4mClient.agent.signMessage("test"); + expect(signed).to.not.be.null; + }) }) } } \ No newline at end of file diff --git a/executor/src/tests/app.test.ts b/tests/js/tests/app.test.ts similarity index 59% rename from executor/src/tests/app.test.ts rename to tests/js/tests/app.test.ts index f5719e88a..8e15e601d 100644 --- a/executor/src/tests/app.test.ts +++ b/tests/js/tests/app.test.ts @@ -1,16 +1,15 @@ -import { ApolloClient, InMemoryCache } from "@apollo/client/core"; -import Websocket from "ws"; -import main from "../main"; import path from "path"; -import { OuterConfig } from "../types"; import { Ad4mClient, CapabilityInput, AuthInfoInput } from "@perspect3vism/ad4m"; -import fs from "fs-extra"; -import PerspectivismCore from "../core/PerspectivismCore"; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; +import fs from "fs"; import { fileURLToPath } from 'url'; import * as chai from "chai"; import chaiAsPromised from "chai-as-promised"; +import { apolloClient, sleep, startExecutor } from "../utils/utils"; +import fetch from 'node-fetch' +import { ChildProcess } from "child_process"; + +//@ts-ignore +global.fetch = fetch const expect = chai.expect; chai.use(chaiAsPromised); @@ -18,88 +17,46 @@ chai.use(chaiAsPromised); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: token - } - } - }, - })); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); -} - describe("Apps integration tests", () => { - const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "apps-agent"); - const bootstrapSeedPath = path.join(`${__dirname}/../../src/tests/bootstrapSeed.json`); - const ipfsRepoPath = path.join(appDataPath); + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); const gqlPort = 15000 - const hcPortAdmin = 15001 - const hcPortApp = 15002 - const ipfsSwarmPort = 15003 + const hcAdminPort = 15001 + const hcAppPort = 15002 - let agentCore: PerspectivismCore | null = null let adminAd4mClient: Ad4mClient | null = null let unAuthenticatedAppAd4mClient: Ad4mClient | null = null let requestId: string; - before(async () => { - if (!fs.existsSync(appDataPath)) { - fs.mkdirSync(appDataPath, { recursive: true }); - } - - agentCore = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: bootstrapSeedPath, - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - gqlPort, - hcPortAdmin, - hcPortApp, - ipfsSwarmPort, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true, - reqCredential: "123" - } as OuterConfig) - - // @ts-ignore - adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123")) - await adminAd4mClient.agent.generate("passphrase") - // await agentCore.waitForAgent(); - // agentCore.initControllers() - // await agentCore.initLanguages() - + let executorProcess: ChildProcess | null = null - // @ts-ignore - unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort)) + before(async () => { + if(!fs.existsSync(TEST_DIR)) { + throw Error("Please ensure that prepare-test is run before running tests!"); + } + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(appDataPath)) + fs.mkdirSync(appDataPath) + + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort , false, "123"); + + adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123"), false) + await adminAd4mClient.agent.generate("passphrase") + + unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort), false) }) after(async () => { - await agentCore!.exit(); + if (executorProcess) { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } + } }) it("once token issued user can get all authenticated apps", async () => { @@ -118,11 +75,10 @@ describe("Apps integration tests", () => { } ] as CapabilityInput[] } as AuthInfoInput) - let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appUrl":"demo-url","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) + let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appDomain": "test.ad4m.org","appUrl":"https://demo-link","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) - - // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { return await authenticatedAppAd4mClient!.agent.getApps(); @@ -135,6 +91,7 @@ describe("Apps integration tests", () => { const oldApps = await adminAd4mClient!.agent.getApps(); expect(oldApps.length).to.be.equal(1); + expect(oldApps[0].revoked).to.be.equal(null); const newApps = await adminAd4mClient!.agent.revokeToken(requestId); @@ -157,11 +114,10 @@ describe("Apps integration tests", () => { } ] as CapabilityInput[] } as AuthInfoInput) - let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appUrl":"demo-url","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) + let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appDomain":"test.ad4m.org","appUrl":"https://demo-link","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) - // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { return await authenticatedAppAd4mClient!.agent.getApps(); @@ -195,11 +151,11 @@ describe("Apps integration tests", () => { } ] as CapabilityInput[] } as AuthInfoInput) - let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appUrl":"demo-url","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) + let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appDomain":"test.ad4m.org","appUrl":"https://demo-link","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { return await authenticatedAppAd4mClient!.agent.getApps(); diff --git a/executor/src/tests/authentication.test.ts b/tests/js/tests/authentication.test.ts similarity index 70% rename from executor/src/tests/authentication.test.ts rename to tests/js/tests/authentication.test.ts index ed4def3f2..08fdf37b1 100644 --- a/executor/src/tests/authentication.test.ts +++ b/tests/js/tests/authentication.test.ts @@ -1,16 +1,15 @@ -import { ApolloClient, InMemoryCache } from "@apollo/client/core"; -import Websocket from "ws"; -import main from "../main"; import path from "path"; -import { OuterConfig } from "../types"; import { Ad4mClient, AuthInfoInput, CapabilityInput } from "@perspect3vism/ad4m"; import fs from "fs-extra"; -import PerspectivismCore from "../core/PerspectivismCore"; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; import { fileURLToPath } from 'url'; import * as chai from "chai"; import chaiAsPromised from "chai-as-promised"; +import { apolloClient, sleep, startExecutor } from "../utils/utils"; +import { ChildProcess } from 'node:child_process'; +import fetch from 'node-fetch' + +//@ts-ignore +global.fetch = fetch const expect = chai.expect; chai.use(chaiAsPromised); @@ -18,45 +17,16 @@ chai.use(chaiAsPromised); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: token - } - } - }, - })); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); -} - describe("Authentication integration tests", () => { describe("admin credential is not set", () => { - const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "unauth-agent"); - const bootstrapSeedPath = path.join(`${__dirname}/../../src/tests/bootstrapSeed.json`); - const ipfsRepoPath = path.join(appDataPath); - const gqlPort = 16000 - const hcPortAdmin = 16001 - const hcPortApp = 16002 - const ipfsSwarmPort = 16003 - - let core: PerspectivismCore | null = null + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const gqlPort = 15100 + const hcAdminPort = 15101 + const hcAppPort = 15102 + + let executorProcess: ChildProcess | null = null let ad4mClient: Ad4mClient | null = null before(async () => { @@ -64,33 +34,21 @@ describe("Authentication integration tests", () => { fs.mkdirSync(appDataPath, { recursive: true }); } - core = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: bootstrapSeedPath, - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - gqlPort, - hcPortAdmin, - hcPortApp, - ipfsSwarmPort, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true - } as OuterConfig) + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort); - // @ts-ignore - ad4mClient = new Ad4mClient(apolloClient(gqlPort)) + ad4mClient = new Ad4mClient(apolloClient(gqlPort), false) await ad4mClient.agent.generate("passphrase") }) after(async () => { - await core!.exit(); + if (executorProcess) { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } + } }) it("unauthenticated user has all the capabilities", async () => { @@ -123,16 +81,14 @@ describe("Authentication integration tests", () => { }) describe("admin credential is set", () => { - const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "auth-agent"); - const bootstrapSeedPath = path.join(`${__dirname}/../../src/tests/bootstrapSeed.json`); - const ipfsRepoPath = path.join(appDataPath); - const gqlPort = 15000 - const hcPortAdmin = 15001 - const hcPortApp = 15002 - const ipfsSwarmPort = 15003 - - let agentCore: PerspectivismCore | null = null + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const gqlPort = 15200 + const hcAdminPort = 15202 + const hcAppPort = 15203 + + let executorProcess: ChildProcess | null = null let adminAd4mClient: Ad4mClient | null = null let unAuthenticatedAppAd4mClient: Ad4mClient | null = null @@ -141,41 +97,19 @@ describe("Authentication integration tests", () => { fs.mkdirSync(appDataPath, { recursive: true }); } - agentCore = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: bootstrapSeedPath, - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - gqlPort, - hcPortAdmin, - hcPortApp, - ipfsSwarmPort, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true, - reqCredential: "123" - } as OuterConfig) - - // @ts-ignore - adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123")) + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, false, "123"); + + adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123"), false) await adminAd4mClient.agent.generate("passphrase") - // await agentCore.waitForAgent(); - // agentCore.initControllers() - // await agentCore.initLanguages() - - // @ts-ignore - unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort)) + unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort), false) }) after(async () => { - await agentCore!.exit(); + if (executorProcess) { + executorProcess.kill() + } }) it("unauthenticated user can not query agent status", async () => { @@ -276,19 +210,19 @@ describe("Authentication integration tests", () => { let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) expect((await authenticatedAppAd4mClient!.agent.status()).isUnlocked).to.be.true; }) it("user with invalid jwt can not query agent status", async () => { // @ts-ignore - let ad4mClient = new Ad4mClient(apolloClient(gqlPort, "invalid-jwt")) + let ad4mClient = new Ad4mClient(apolloClient(gqlPort, "invalid-jwt"), false) const call = async () => { return await ad4mClient!.agent.status() } - await expect(call()).to.be.rejectedWith("Invalid Compact JWS"); + await expect(call()).to.be.rejectedWith("InvalidToken"); }) it("authenticated user can not query agent status if capability is not matched", async () => { @@ -311,7 +245,7 @@ describe("Authentication integration tests", () => { let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { return await authenticatedAppAd4mClient!.agent.status() diff --git a/executor/src/tests/direct-messages.ts b/tests/js/tests/direct-messages.ts similarity index 99% rename from executor/src/tests/direct-messages.ts rename to tests/js/tests/direct-messages.ts index 419500626..2dc831d56 100644 --- a/executor/src/tests/direct-messages.ts +++ b/tests/js/tests/direct-messages.ts @@ -1,6 +1,6 @@ import { ExpressionProof, Link, LinkExpressionInput, Literal, Perspective } from '@perspect3vism/ad4m' import { TestContext } from './integration.test' -import sleep from './sleep' +import { sleep } from '../utils/utils' import { expect } from "chai"; import * as sinon from "sinon"; diff --git a/executor/src/tests/expression.ts b/tests/js/tests/expression.ts similarity index 89% rename from executor/src/tests/expression.ts rename to tests/js/tests/expression.ts index 6f62db0b5..0d405a663 100644 --- a/executor/src/tests/expression.ts +++ b/tests/js/tests/expression.ts @@ -6,6 +6,17 @@ import { expect } from "chai"; export default function expressionTests(testContext: TestContext) { return () => { describe('Expressions', () => { + let noteLangAddress = ""; + + before(async () => { + const ad4mClient = testContext.ad4mClient! + + //Publish mocking interactions language so it can be used + const publish = await ad4mClient.languages.publish("./languages/note-store/build/bundle.js", {name: "note-store", description: "A test language for saving simple strings"} as LanguageMetaInput) + + noteLangAddress = publish.address; + }) + it('can get() my agent expression', async () => { const ad4mClient = testContext.ad4mClient! const me = await ad4mClient.agent.me() @@ -47,10 +58,8 @@ export default function expressionTests(testContext: TestContext) { it('can create valid signatures', async () => { const ad4mClient = testContext.ad4mClient! - //@ts-ignore - const noteIpfs = fs.readFileSync("./scripts/note-ipfs-hash").toString(); - const exprAddr = await ad4mClient.expression.create("test note", noteIpfs) + const exprAddr = await ad4mClient.expression.create("test note", noteLangAddress) expect(exprAddr).not.to.be.undefined; const expr = await ad4mClient.expression.get(exprAddr) @@ -60,9 +69,8 @@ export default function expressionTests(testContext: TestContext) { it('can get expression from cache', async () => { const ad4mClient = testContext.ad4mClient! - const noteIpfs = fs.readFileSync("./scripts/note-ipfs-hash").toString(); - const exprAddr = await ad4mClient.expression.create("test note", noteIpfs) + const exprAddr = await ad4mClient.expression.create("test note", noteLangAddress) expect(exprAddr).not.to.be.undefined; const expr = await ad4mClient.expression.get(exprAddr) @@ -75,7 +83,7 @@ export default function expressionTests(testContext: TestContext) { expect(exprCacheHit.proof.valid).to.be.true; expect(exprCacheHit.data).to.be.equal("\"test note\""); - const objExpr = await ad4mClient.expression.create(JSON.stringify({"key": "value"}), noteIpfs) + const objExpr = await ad4mClient.expression.create({"key": "value"}, noteLangAddress) expect(objExpr).not.to.be.undefined; const exprObj = await ad4mClient.expression.get(objExpr) @@ -92,7 +100,7 @@ export default function expressionTests(testContext: TestContext) { it('can use expression interactions', async () => { const ad4mClient = testContext.ad4mClient! //Publish mocking interactions language so it can be used - const publish = await ad4mClient.languages.publish("./src/tst-tmp/languages/test-language/build/bundle.js", {name: "test-language", description: "A test language for interactions"} as LanguageMetaInput) + const publish = await ad4mClient.languages.publish("./languages/test-language/build/bundle.js", {name: "test-language", description: "A test language for interactions"} as LanguageMetaInput) //@ts-ignore const testLangAddress = publish.address; diff --git a/tests/js/tests/integration.test.ts b/tests/js/tests/integration.test.ts new file mode 100644 index 000000000..99d526136 --- /dev/null +++ b/tests/js/tests/integration.test.ts @@ -0,0 +1,179 @@ +import fs from 'fs-extra' +import path from 'path' +import { isProcessRunning, sleep } from "../utils/utils"; +import { Ad4mClient } from "@perspect3vism/ad4m"; +import { fileURLToPath } from 'url'; +import { expect } from "chai"; +import { startExecutor, apolloClient, runHcLocalServices } from "../utils/utils"; +import { ChildProcess } from 'child_process'; +import perspectiveTests from "./perspective"; +import agentTests from "./agent"; +import languageTests from "./language"; +import expressionTests from "./expression"; +import neighbourhoodTests from "./neighbourhood"; +import runtimeTests from "./runtime"; +import { Crypto } from "@peculiar/webcrypto" +import directMessageTests from "./direct-messages"; +import agentLanguageTests from "./agent-language"; +import socialDNATests from "./social-dna-flow"; +import fetch from "node-fetch"; + +//@ts-ignore +global.fetch = fetch + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +//@ts-ignore +global.crypto = new Crypto(); + +const TEST_DIR = `${__dirname}/../tst-tmp` + +export class TestContext { + //#ad4mClient: Ad4mClient | undefined + #alice: Ad4mClient | undefined + #bob: Ad4mClient | undefined + + #aliceCore: ChildProcess | undefined + #bobCore: ChildProcess | undefined + + get ad4mClient(): Ad4mClient { + return this.#alice! + } + + get alice(): Ad4mClient { + return this.#alice! + } + + get bob(): Ad4mClient { + return this.#bob! + } + + set alice(client: Ad4mClient) { + this.#alice = client + } + + set bob(client: Ad4mClient) { + this.#bob = client + } + + set aliceCore(aliceCore: ChildProcess) { + this.#aliceCore = aliceCore + } + + set bobCore(bobCore: ChildProcess) { + this.#bobCore = bobCore + } + + async makeAllNodesKnown() { + const aliceAgentInfo = await this.#alice!.runtime.hcAgentInfos(); + const bobAgentInfo = await this.#bob!.runtime.hcAgentInfos(); + await this.#alice!.runtime.hcAddAgentInfos(bobAgentInfo); + await this.#bob!.runtime.hcAddAgentInfos(aliceAgentInfo); + } +} +let testContext: TestContext = new TestContext() + +describe("Integration tests", function () { + //@ts-ignore + this.timeout(200000) + const appDataPath = path.join(TEST_DIR, 'agents', 'alice') + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const gqlPort = 15300 + const hcAdminPort = 15301 + const hcAppPort = 15302 + + let executorProcess: ChildProcess | null = null + + let proxyUrl: string | null = null; + let bootstrapUrl: string | null = null; + let localServicesProcess: ChildProcess | null = null; + + before(async () => { + if(!fs.existsSync(TEST_DIR)) { + throw Error("Please ensure that prepare-test is run before running tests!"); + } + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(appDataPath)) + fs.mkdirSync(appDataPath) + + let localServices = await runHcLocalServices(); + proxyUrl = localServices.proxyUrl; + bootstrapUrl = localServices.bootstrapUrl; + localServicesProcess = localServices.process; + + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, false, undefined, proxyUrl!, bootstrapUrl!); + + testContext.alice = new Ad4mClient(apolloClient(gqlPort)) + testContext.aliceCore = executorProcess + }) + + after(async () => { + if (executorProcess) { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } + } + if (localServicesProcess) { + while (!localServicesProcess?.killed) { + let status = localServicesProcess?.kill(); + console.log("killed local services with", status); + await sleep(500); + } + } + }) + + describe('Agent / Agent-Setup', agentTests(testContext)) + describe('Runtime', runtimeTests(testContext)) + describe('Expression', expressionTests(testContext)) + describe('Perspective', perspectiveTests(testContext)) + describe('Social DNA', socialDNATests(testContext)) + + describe('with Alice and Bob', () => { + let bobExecutorProcess: ChildProcess | null = null + before(async () => { + const bobAppDataPath = path.join(TEST_DIR, 'agents', 'bob') + const bobBootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const bobGqlPort = 15400 + const bobHcAdminPort = 15401 + const bobHcAppPort = 15402 + + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(bobAppDataPath)) + fs.mkdirSync(bobAppDataPath) + + bobExecutorProcess = await startExecutor(bobAppDataPath, bobBootstrapSeedPath, + bobGqlPort, bobHcAdminPort, bobHcAppPort, false, undefined, proxyUrl!, bootstrapUrl!); + + testContext.bob = new Ad4mClient(apolloClient(bobGqlPort)) + testContext.bobCore = bobExecutorProcess + await testContext.bob.agent.generate("passphrase") + + const status = await testContext.bob.agent.status() + + expect(status.isInitialized).to.be.true; + expect(status.isUnlocked).to.be.true; + //await testContext.makeAllNodesKnown() + }) + + after(async () => { + if (executorProcess) { + while (!bobExecutorProcess?.killed) { + let status = bobExecutorProcess?.kill(); + console.log("killed bobs executor with", status); + await sleep(500); + } + } + }) + + describe('Agent Language', agentLanguageTests(testContext)) + describe('Direct Messages', directMessageTests(testContext)) + describe('Language', languageTests(testContext)) + describe('Neighbourhood', neighbourhoodTests(testContext)) + }) +}) \ No newline at end of file diff --git a/executor/src/tests/language.ts b/tests/js/tests/language.ts similarity index 87% rename from executor/src/tests/language.ts rename to tests/js/tests/language.ts index f75a86d31..8340873d4 100644 --- a/executor/src/tests/language.ts +++ b/tests/js/tests/language.ts @@ -1,7 +1,7 @@ import { TestContext } from './integration.test' import path from "path"; import fs from "fs"; -import sleep from './sleep'; +import { sleep } from '../utils/utils'; import { Ad4mClient, LanguageMetaInput, LanguageRef } from '@perspect3vism/ad4m'; import { expect } from "chai"; import { fileURLToPath } from 'url'; @@ -25,13 +25,13 @@ export default function languageTests(testContext: TestContext) { bobAd4mClient = testContext.bob; //First edit bundle for perspective-diff-sync so we get a unique hash which does not clash with existing loaded perspective-diff-sync object in LanguageController - let socialContextData = fs.readFileSync("./src/tst-tmp/languages/perspective-diff-sync/build/bundle.js").toString(); + let socialContextData = fs.readFileSync("./tst-tmp/languages/perspective-diff-sync/build/bundle.js").toString(); socialContextData = socialContextData + "\n//Test"; - fs.writeFileSync("./src/tst-tmp/languages/perspective-diff-sync/build/bundle.js", socialContextData); + fs.writeFileSync("./tst-tmp/languages/perspective-diff-sync/build/bundle.js", socialContextData); //Publish a source language to start working from sourceLanguage = await ad4mClient.languages.publish( - path.join(__dirname, "../tst-tmp/languages/perspective-diff-sync/build/bundle.js"), + path.join(__dirname, "../tst-tmp/languages/perspective-diff-sync/build/bundle.js").replace(/\\/g, "/"), sourceLanguageMeta ) expect(sourceLanguage.name).to.be.equal(sourceLanguageMeta.name); @@ -54,13 +54,13 @@ export default function languageTests(testContext: TestContext) { it('Alice can install her own non HC published language', async () => { let sourceLanguageMeta: LanguageMetaInput = new LanguageMetaInput("Newly published perspective-language", "..here for you template"); - let socialContextData = fs.readFileSync("./src/tst-tmp/languages/perspective-language/build/bundle.js").toString(); + let socialContextData = fs.readFileSync("./tst-tmp/languages/perspective-language/build/bundle.js").toString(); socialContextData = socialContextData + "\n//Test"; - fs.writeFileSync("./src/tst-tmp/languages/perspective-language/build/bundle.js", socialContextData); + fs.writeFileSync("./tst-tmp/languages/perspective-language/build/bundle.js", socialContextData); //Publish a source language to start working from nonHCSourceLanguage = await ad4mClient.languages.publish( - path.join(__dirname, "../tst-tmp/languages/perspective-language/build/bundle.js"), + path.join(__dirname, "../tst-tmp/languages/perspective-language/build/bundle.js").replace(/\\/g, "/"), sourceLanguageMeta ) expect(nonHCSourceLanguage.name).to.be.equal(nonHCSourceLanguage.name); @@ -91,23 +91,23 @@ export default function languageTests(testContext: TestContext) { }) it('can publish and template a non-Holochain language and provide correct meta data', async() => { - const ipfsMetaInfo = new LanguageMetaInput("Newly published note language", "Just to test non-HC language work as well"); + const noteMetaInfo = new LanguageMetaInput("Newly published note language", "Just to test non-HC language work as well"); //Publish a source language without a holochain DNA const canPublishNonHolochainLang = await ad4mClient.languages.publish( - path.join(__dirname, "../tst-tmp/languages/note-ipfs/build/bundle.js"), - ipfsMetaInfo + path.join(__dirname, "../languages/note-store/build/bundle.js").replace(/\\/g, "/"), + noteMetaInfo ); - expect(canPublishNonHolochainLang.name).to.be.equal(ipfsMetaInfo.name); - //TODO/NOTE: this will break if the note-ipfs language version is changed - expect(canPublishNonHolochainLang.address).to.be.equal("QmbWg5VBFB1Zzce8X33GiGpMDXFPQjFQKS2T2rJtSYt7TJ"); + expect(canPublishNonHolochainLang.name).to.be.equal(noteMetaInfo.name); + //TODO/NOTE: this will break if the note language version is changed + expect(canPublishNonHolochainLang.address).to.be.equal("QmzSYwdmAKKivFm8sp7zLDPnT2kwyk2to8Ey1hqEb25DCPaJoRA"); //Get meta for source language above and make sure it is correct const sourceLanguageMetaNonHC = await ad4mClient.expression.get(`lang://${canPublishNonHolochainLang.address}`); expect(sourceLanguageMetaNonHC.proof.valid).to.be.true; const sourceLanguageMetaNonHCData = JSON.parse(sourceLanguageMetaNonHC.data); - expect(sourceLanguageMetaNonHCData.name).to.be.equal(ipfsMetaInfo.name) - expect(sourceLanguageMetaNonHCData.description).to.be.equal(ipfsMetaInfo.description) - expect(sourceLanguageMetaNonHCData.address).to.be.equal("QmbWg5VBFB1Zzce8X33GiGpMDXFPQjFQKS2T2rJtSYt7TJ") + expect(sourceLanguageMetaNonHCData.name).to.be.equal(noteMetaInfo.name) + expect(sourceLanguageMetaNonHCData.description).to.be.equal(noteMetaInfo.description) + expect(sourceLanguageMetaNonHCData.address).to.be.equal("QmzSYwdmAKKivFm8sp7zLDPnT2kwyk2to8Ey1hqEb25DCPaJoRA") }) @@ -127,8 +127,13 @@ export default function languageTests(testContext: TestContext) { error = e } + console.log("Response for non trust got error", error); + + //@ts-ignore + sourceLanguageMeta.sourceCodeLink = null; + //@ts-ignore - expect(error.toString()).to.be.equal(`ApolloError: Language not created by trusted agent: ${(await ad4mClient.agent.me()).did} and is not templated... aborting language install. Language metadata: ${stringify(sourceLanguageMeta)}`) + expect(error.toString()).to.contain(`ApolloError: Language not created by trusted agent: ${(await ad4mClient.agent.me()).did} and is not templated... aborting language install. Language metadata: ${stringify(sourceLanguageMeta)}`) }) describe('with Bob having added Alice to list of trusted agents', () => { diff --git a/executor/src/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts similarity index 90% rename from executor/src/tests/neighbourhood.ts rename to tests/js/tests/neighbourhood.ts index 39320ce5d..0cb7d90c6 100644 --- a/executor/src/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -1,11 +1,13 @@ -import { Link, Perspective, LinkExpression, ExpressionProof, LinkQuery, PerspectiveState, NeighbourhoodProxy, PerspectiveUnsignedInput } from "@perspect3vism/ad4m"; +import { Link, Perspective, LinkExpression, ExpressionProof, LinkQuery, PerspectiveState, NeighbourhoodProxy, PerspectiveUnsignedInput, PerspectiveProxy, PerspectiveHandle } from "@perspect3vism/ad4m"; import { TestContext } from './integration.test' -import sleep from "./sleep"; +import { sleep } from "../utils/utils"; import fs from "fs"; import { v4 as uuidv4 } from 'uuid'; import { expect } from "chai"; const DIFF_SYNC_OFFICIAL = fs.readFileSync("./scripts/perspective-diff-sync-hash").toString(); +let aliceP1: null | PerspectiveProxy = null; +let bobP1: null | PerspectiveHandle = null; export default function neighbourhoodTests(testContext: TestContext) { return () => { @@ -76,16 +78,17 @@ export default function neighbourhoodTests(testContext: TestContext) { await testContext.makeAllNodesKnown() expect(bobP1!.state).to.be.oneOf([PerspectiveState.LinkLanguageInstalledButNotSynced, PerspectiveState.Synced]); - await sleep(5000) + await sleep(1000) await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) - await sleep(5000) + await sleep(1000) let bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) let tries = 1 while(bobLinks.length < 1 && tries < 20) { + console.log("Bob retrying getting links..."); await sleep(1000) bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) tries++ @@ -98,24 +101,25 @@ export default function neighbourhoodTests(testContext: TestContext) { const alice = testContext.alice const bob = testContext.bob - const aliceP1 = await alice.perspective.add("friends") + aliceP1 = await alice.perspective.add("friends") const socialContext = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood with Bob test local links"})); const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, socialContext.address, new Perspective()) - - let bobP1 = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); + console.log("neighbourhoodUrl", neighbourhoodUrl); + bobP1 = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); await testContext.makeAllNodesKnown() - await sleep(5000) + await sleep(1000) await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}, 'local') - await sleep(5000) + await sleep(1000) let bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) let tries = 1 - while(bobLinks.length < 1 && tries < 20) { + while(bobLinks.length < 1 && tries < 5) { + console.log("Bob retrying getting NOT received links..."); await sleep(1000) bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) tries++ @@ -123,6 +127,19 @@ export default function neighbourhoodTests(testContext: TestContext) { expect(bobLinks.length).to.be.equal(0) }) + + it('can delete neighbourhood', async () => { + const alice = testContext.alice; + const bob = testContext.bob; + + const deleteNeighbourhood = await alice.perspective.remove(aliceP1!.uuid); + expect(deleteNeighbourhood.perspectiveRemove).to.be.true; + + const bobDeleteNeighbourhood = await bob.perspective.remove(bobP1!.uuid); + expect(bobDeleteNeighbourhood.perspectiveRemove).to.be.true; + + const perspectives = await alice.perspective.all(); + }) // it('can get the correct state change signals', async () => { // const aliceP1 = await testContext.alice.perspective.add("state-changes") @@ -196,6 +213,7 @@ export default function neighbourhoodTests(testContext: TestContext) { const aliceP1 = await alice.perspective.add("telepresence") const linkLang = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood for Telepresence"})); const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, linkLang.address, new Perspective()) + await sleep(5000) const bobP1Handle = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); const bobP1 = await bob.perspective.byUUID(bobP1Handle.uuid) await testContext.makeAllNodesKnown() @@ -208,9 +226,11 @@ export default function neighbourhoodTests(testContext: TestContext) { }) it('they see each other in `otherAgents`', async () => { - await sleep(1000); + await sleep(10000); const aliceAgents = await aliceNH!.otherAgents() + console.log("alice agents", aliceAgents); const bobAgents = await bobNH!.otherAgents() + console.log("bob agents", bobAgents); expect(aliceAgents.length).to.be.equal(1) expect(aliceAgents[0]).to.be.equal(bobDID) expect(bobAgents.length).to.be.equal(1) @@ -287,7 +307,7 @@ export default function neighbourhoodTests(testContext: TestContext) { await aliceNH!.sendSignal(bobDID!, aliceSignal) - await sleep(2000) + await sleep(1000) expect(bobCalls).to.be.equal(1) expect(aliceCalls).to.be.equal(0) @@ -303,7 +323,7 @@ export default function neighbourhoodTests(testContext: TestContext) { await bobNH!.sendBroadcastU(bobSignal) - await sleep(2000) + await sleep(1000) expect(aliceCalls).to.be.equal(1) diff --git a/executor/src/tests/perspective.ts b/tests/js/tests/perspective.ts similarity index 99% rename from executor/src/tests/perspective.ts rename to tests/js/tests/perspective.ts index 3f6936435..5ba9f9bce 100644 --- a/executor/src/tests/perspective.ts +++ b/tests/js/tests/perspective.ts @@ -2,7 +2,7 @@ import { Ad4mClient, Link, LinkQuery, PerspectiveProxy, PerspectiveState } from import { TestContext } from './integration.test' import { expect } from "chai"; import * as sinon from "sinon"; -import sleep from "./sleep"; +import { sleep } from "../utils/utils"; export default function perspectiveTests(testContext: TestContext) { return () => { @@ -73,7 +73,7 @@ export default function perspectiveTests(testContext: TestContext) { const links = await create.get({} as LinkQuery); expect(links.length).to.equal(1); - expect(links[0].status).to.equal('local') + expect(links[0].status).to.equal('LOCAL') await create.remove(linkAdd); diff --git a/tests/js/integration.test.ts b/tests/js/tests/prolog-and-literals.test.ts similarity index 89% rename from tests/js/integration.test.ts rename to tests/js/tests/prolog-and-literals.test.ts index c83a9968e..35221abd2 100644 --- a/tests/js/integration.test.ts +++ b/tests/js/tests/prolog-and-literals.test.ts @@ -1,10 +1,5 @@ import { expect } from "chai"; -import { exec, execSync, ChildProcess } from 'node:child_process'; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions/index.js"; -import { ApolloClient, InMemoryCache } from "@apollo/client/core/index.js"; -import { HttpLink } from "@apollo/client/link/http/index.js"; -import Websocket from "ws"; -import { createClient } from "graphql-ws"; +import { ChildProcess } from 'node:child_process'; import { Ad4mClient, Link, LinkQuery, Literal, PerspectiveProxy, SmartLiteral, SMART_LITERAL_CONTENT_PREDICATE, instanceQuery, Subject, subjectProperty, @@ -12,88 +7,48 @@ import { Ad4mClient, Link, LinkQuery, Literal, PerspectiveProxy, SDNAClass, SubjectEntity, } from "@perspect3vism/ad4m"; -import { rmSync, readFileSync } from "node:fs"; -import fetch from 'node-fetch'; - - -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - })); - - const link = new HttpLink({ - uri: "http://localhost:4000/graphql", - //@ts-ignore - fetch - }); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); - } +import { readFileSync } from "node:fs"; +import { startExecutor, apolloClient } from "../utils/utils"; +import path from "path"; +import fs from "fs"; +import { fileURLToPath } from 'url'; +import fetch from 'node-fetch' -describe("Integration", () => { - let ad4m: Ad4mClient | null = null - let executorProcess: ChildProcess | null = null +//@ts-ignore +global.fetch = fetch - before(async () => { - //ad4m = new Ad4mClient(apolloClient(4000)) - //return - - rmSync("../ad4mJS", { recursive: true, force: true }) - console.log("Initialzing executor data directory") - //@ts-ignore - execSync('../../host/dist/ad4m-macos-x64 init --dataPath ../ad4mJS', {}) - - console.log("Starting executor") - try { - execSync("killall holochain") - } catch (e) { - console.log("No holochain process running") - } +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); - //@ts-ignore - executorProcess = exec('../../host/dist/ad4m-macos-x64 serve --dataPath ../ad4mJS', {}) +describe("Prolog + Literals", () => { + let ad4m: Ad4mClient | null = null + let executorProcess: ChildProcess | null = null - let executorReady = new Promise((resolve, reject) => { - executorProcess!.stdout!.on('data', (data) => { - if (data.includes("GraphQL server started")) { - resolve() - } - }); - }) + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); + const appDataPath = path.join(TEST_DIR, "agents", "prolog-agent"); + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const gqlPort = 16600 + const hcAdminPort = 16601 + const hcAppPort = 16602 - executorProcess!.stdout!.on('data', (data) => { - console.log(`${data}`); - }); - executorProcess!.stderr!.on('data', (data) => { - console.log(`${data}`); - }); + before(async () => { + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort); - console.log("Waiting for executor to settle...") - await executorReady console.log("Creating ad4m client") - // @ts-ignore - ad4m = new Ad4mClient(apolloClient(4000)) + ad4m = new Ad4mClient(apolloClient(gqlPort)) console.log("Generating agent") await ad4m.agent.generate("secret") console.log("Done") - }) - after(() => { + after(async () => { if (executorProcess) { - executorProcess.kill() + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } } }) @@ -114,7 +69,7 @@ describe("Integration", () => { let classes = await perspective.subjectClasses(); expect(classes.length).to.equal(0) - let sdna = readFileSync("./subject.pl").toString() + let sdna = readFileSync("./sdna/subject.pl").toString() await perspective.setSdna(sdna) let retrievedSdna = await perspective.getSdna() @@ -234,13 +189,13 @@ describe("Integration", () => { let todos = await perspective!.getAllSubjectInstances("Todo") as unknown as Subject[] expect(todos.length).to.equal(2) //@ts-ignore - expect(await todos[1].state).to.equal("todo://done") + expect(await todos[1].state).to.exist }) }) describe("TypeScript compatibility", () => { - // This class mathces the SDNA in ./subject.pl + // This class mathces the SDNA in ./sdna/subject.pl class Todo { state: string = "" title: string = "" @@ -252,7 +207,7 @@ describe("Integration", () => { setCollectionComments(comment: string) {} } - // This class doesn not match the SDNA in ./subject.pl + // This class doesn not match the SDNA in ./sdna/subject.pl class UnknownSubject { name: string = "" x: string = "" @@ -297,7 +252,7 @@ describe("Integration", () => { // todos is an array of Todo objects // note how we don't need @ts-ignore here: expect(todos.length).to.equal(2) - expect(await todos[1].state).to.equal("todo://done") + expect(await todos[1].state).to.exist }) }) @@ -327,7 +282,7 @@ describe("Integration", () => { body: string = "" } - // This class matches the SDNA in ./subject.pl + // This class matches the SDNA in ./sdna/subject.pl // and this test proves the decorators create the exact same SDNA code @SDNAClass({ name: "Todo" @@ -414,7 +369,7 @@ describe("Integration", () => { const matches = regExp.exec(sdna); const value = matches![1]; - const equal = readFileSync("./subject.pl").toString().replace(/c\)/g, `${value})`).replace(/\(c/g, `(${value}`); + const equal = readFileSync("./sdna/subject.pl").toString().replace(/c\)/g, `${value})`).replace(/\(c/g, `(${value}`); expect(sdna.normalize('NFC')).to.equal(equal.normalize('NFC')) }) @@ -679,7 +634,7 @@ describe("Integration", () => { recipe.name = "recipe://collection_test"; - recipe.comments = ['test', 'test1'] + recipe.comments = ['recipe://test', 'recipe://test1'] await recipe.save() @@ -695,7 +650,7 @@ describe("Integration", () => { const recipe = new Recipe(perspective!, root) recipe.name = "recipe://locallink"; - recipe.local = 'test' + recipe.local = 'recipe://test' await recipe.save(); @@ -704,7 +659,7 @@ describe("Integration", () => { await recipe2.get(); expect(recipe2.name).to.equal("recipe://locallink") - expect(recipe2.local).to.equal("test") + expect(recipe2.local).to.equal("recipe://test") // @ts-ignore const links = await perspective?.get({ @@ -713,7 +668,7 @@ describe("Integration", () => { }) expect(links!.length).to.equal(1) - expect(links![0].status).to.equal('local') + expect(links![0].status).to.equal('LOCAL') }) it("delete()", async () => { @@ -736,7 +691,7 @@ describe("Integration", () => { recipe.entries = [recipeEntries] // @ts-ignore - recipe.comments = ['test', 'test1'] + recipe.comments = ['recipe://test', 'recipe://test1'] recipe.name = "recipe://collection_test"; await recipe.save() diff --git a/executor/src/tests/runtime.ts b/tests/js/tests/runtime.ts similarity index 98% rename from executor/src/tests/runtime.ts rename to tests/js/tests/runtime.ts index abfd0f473..6910e0a44 100644 --- a/executor/src/tests/runtime.ts +++ b/tests/js/tests/runtime.ts @@ -4,7 +4,7 @@ import { expect } from "chai"; const PERSPECT3VISM_AGENT = "did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n" const DIFF_SYNC_OFFICIAL = fs.readFileSync("./scripts/perspective-diff-sync-hash").toString(); -const PUBLISHING_AGENT = JSON.parse(fs.readFileSync("./src/tst-tmp/agents/p/ad4m/agent.json").toString())["did"]; +const PUBLISHING_AGENT = JSON.parse(fs.readFileSync("./tst-tmp/agents/p/ad4m/agent.json").toString())["did"]; export default function runtimeTests(testContext: TestContext) { return () => { diff --git a/tests/js/tests/simple.test.ts b/tests/js/tests/simple.test.ts new file mode 100644 index 000000000..bcde9a53c --- /dev/null +++ b/tests/js/tests/simple.test.ts @@ -0,0 +1,52 @@ +import { expect } from "chai"; +import { ChildProcess } from 'node:child_process'; +import { Ad4mClient } from "@perspect3vism/ad4m"; +import { startExecutor, apolloClient, sleep } from "../utils/utils"; +import path from "path"; +import fetch from 'node-fetch' +import { fileURLToPath } from 'url'; + +//@ts-ignore +global.fetch = fetch + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +describe("Integration", () => { + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); + const appDataPath = path.join(TEST_DIR, "agents", "simpleAlice"); + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const gqlPort = 15600 + const hcAdminPort = 15601 + const hcAppPort = 15602 + + let ad4m: Ad4mClient | null = null + let executorProcess: ChildProcess | null = null + + before(async () => { + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort); + + console.log("Creating ad4m client") + ad4m = new Ad4mClient(apolloClient(gqlPort)) + console.log("Generating agent") + await ad4m.agent.generate("secret") + console.log("Done") + }) + + after(async () => { + if (executorProcess) { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } + } + }) + + it("should get agent status", async () => { + let result = await ad4m!.agent.status() + expect(result).to.not.be.null + expect(result!.isInitialized).to.be.true + }) +}) \ No newline at end of file diff --git a/executor/src/tests/social-dna-flow.ts b/tests/js/tests/social-dna-flow.ts similarity index 100% rename from executor/src/tests/social-dna-flow.ts rename to tests/js/tests/social-dna-flow.ts diff --git a/tests/js/tests/triple-agent-test.ts b/tests/js/tests/triple-agent-test.ts new file mode 100644 index 000000000..77c7924af --- /dev/null +++ b/tests/js/tests/triple-agent-test.ts @@ -0,0 +1,145 @@ +import { Link, Perspective, LinkExpression, ExpressionProof, LinkQuery, PerspectiveState, NeighbourhoodProxy, PerspectiveUnsignedInput, PerspectiveProxy, PerspectiveHandle } from "@perspect3vism/ad4m"; +import fs from "fs"; +import { TestContext } from './integration.test' +import { sleep } from '../utils/utils' +import { expect } from "chai"; +import { v4 as uuidv4 } from 'uuid'; + +const DIFF_SYNC_OFFICIAL = fs.readFileSync("./scripts/perspective-diff-sync-hash").toString(); + +export default function tripleAgentTests(testContext: TestContext) { + return () => { + it("three agents can join and use a neighbourhood", async () => { + const alice = testContext.alice + const bob = testContext.bob + const jim = testContext.jim + + const aliceP1 = await alice.perspective.add("three-agents") + const socialContext = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood with Bob"})); + expect(socialContext.name).to.be.equal("Alice's neighbourhood with Bob"); + const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, socialContext.address, new Perspective()) + + let bobP1 = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); + let jimP1 = await jim.neighbourhood.joinFromUrl(neighbourhoodUrl); + + await testContext.makeAllThreeNodesKnown() + + expect(bobP1!.name).not.to.be.undefined; + expect(bobP1!.sharedUrl).to.be.equal(neighbourhoodUrl) + expect(bobP1!.neighbourhood).not.to.be.undefined;; + expect(bobP1!.neighbourhood!.linkLanguage).to.be.equal(socialContext.address); + expect(bobP1!.neighbourhood!.meta.links.length).to.be.equal(0); + + expect(jimP1!.name).not.to.be.undefined; + expect(jimP1!.sharedUrl).to.be.equal(neighbourhoodUrl) + expect(jimP1!.neighbourhood).not.to.be.undefined;; + expect(jimP1!.neighbourhood!.linkLanguage).to.be.equal(socialContext.address); + expect(jimP1!.neighbourhood!.meta.links.length).to.be.equal(0); + + await sleep(1000) + + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + + await sleep(1000) + + let bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + let tries = 1 + + while(bobLinks.length < 10 && tries < 20) { + console.log("Bob retrying getting links..."); + await sleep(1000) + bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + tries++ + } + + expect(bobLinks.length).to.be.equal(10) + + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + + let jimLinks = await jim.perspective.queryLinks(jimP1!.uuid, new LinkQuery({source: 'root'})) + let jimRetries = 1 + + while(jimLinks.length < 20 && jimRetries < 20) { + console.log("Jim retrying getting links..."); + await sleep(1000) + jimLinks = await jim.perspective.queryLinks(jimP1!.uuid, new LinkQuery({source: 'root'})) + jimRetries++ + } + + expect(jimLinks.length).to.be.equal(20) + + //Alice bob and jim all collectively add 10 links and then check can be received by all agents + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await jim.perspective.addLink(jimP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await jim.perspective.addLink(jimP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await jim.perspective.addLink(jimP1.uuid, {source: 'root', target: 'test://test'}) + await jim.perspective.addLink(jimP1.uuid, {source: 'root', target: 'test://test'}) + + let aliceLinks = await alice.perspective.queryLinks(aliceP1!.uuid, new LinkQuery({source: 'root'})) + tries = 1 + + while(aliceLinks.length < 30 && tries < 20) { + console.log("Alice retrying getting links..."); + await sleep(1000) + aliceLinks = await alice.perspective.queryLinks(aliceP1!.uuid, new LinkQuery({source: 'root'})) + tries++ + } + + expect(aliceLinks.length).to.be.equal(30) + + + + + bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + tries = 1 + + while(bobLinks.length < 30 && tries < 20) { + console.log("Bob retrying getting links..."); + await sleep(1000) + bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + tries++ + } + + expect(bobLinks.length).to.be.equal(30) + + + + + jimLinks = await jim.perspective.queryLinks(jimP1!.uuid, new LinkQuery({source: 'root'})) + tries = 1 + + while(jimLinks.length < 30 && tries < 20) { + console.log("Jim retrying getting links..."); + await sleep(1000) + jimLinks = await jim.perspective.queryLinks(jimP1!.uuid, new LinkQuery({source: 'root'})) + tries++ + } + + expect(jimLinks.length).to.be.equal(30) + + }) + } +} \ No newline at end of file diff --git a/tests/js/tsconfig.json b/tests/js/tsconfig.json index 00719fcde..68b7eee54 100644 --- a/tests/js/tsconfig.json +++ b/tests/js/tsconfig.json @@ -1,9 +1,6 @@ { "include": [ - "src/**/*.ts", - "src/**/*.d.ts", - "src/**/*.vue" - ], + "*.ts", "tests/agent-language.ts", "tests/agent.ts", "tests/app.test.ts", "tests/authentication.test.ts", "tests/direct-messages.ts", "tests/expression.ts", "tests/integration.test.ts", "tests/prolog-and-literals.test.ts", "tests/language.ts", "tests/neighbourhood.ts", "tests/perspective.ts", "tests/runtime.ts", "tests/simple.test.ts", "tests/social-dna-flow.ts", "utils/utils.ts" ], "exclude": ["./src/tests/*", "./src/**/*.test.ts", "./src/testsutils/*"], "compilerOptions": { /* Visit https://aka.ms/tsconfig.json to read more about this file */ @@ -77,7 +74,8 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "allowSyntheticDefaultImports": true, - "resolveJsonModule": true + "resolveJsonModule": true, + "declaration": true }, "typedef": [ true, "call-signature", "arrow-call-signature" ], "ts-node": { diff --git a/tests/js/utils/expression.ts b/tests/js/utils/expression.ts new file mode 100644 index 000000000..67f4bbaff --- /dev/null +++ b/tests/js/utils/expression.ts @@ -0,0 +1,14 @@ +import { Expression } from "@perspect3vism/ad4m"; +import faker from 'faker' + +export function createMockExpression(did: string, data: object): Expression { + return { + author: did, + timestamp: faker.date.recent().toISOString(), + data, + proof: { + signature: "abcdefgh", + key: `${did}#primary` + } + } +} diff --git a/tests/js/utils/links.ts b/tests/js/utils/links.ts new file mode 100644 index 000000000..0c93fc495 --- /dev/null +++ b/tests/js/utils/links.ts @@ -0,0 +1,10 @@ +import { Link } from '@perspect3vism/ad4m' +import faker from 'faker' + +export function createLink(): Link { + return { + source: faker.internet.url(), + target: faker.internet.url(), + predicate: faker.internet.url(), + } as Link +} \ No newline at end of file diff --git a/executor/src/testutils/publishTestLangs.ts b/tests/js/utils/publishTestLangs.ts similarity index 57% rename from executor/src/testutils/publishTestLangs.ts rename to tests/js/utils/publishTestLangs.ts index 50fde8e1b..414bbe360 100644 --- a/executor/src/testutils/publishTestLangs.ts +++ b/tests/js/utils/publishTestLangs.ts @@ -1,34 +1,32 @@ -import { ApolloClient, InMemoryCache } from "@apollo/client/core"; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; -import Websocket from "ws"; -import main from "../main"; import path from "path"; -import { OuterConfig } from "../types"; import { Ad4mClient, LanguageMetaInput } from "@perspect3vism/ad4m"; import fs from "fs-extra"; import { exit } from "process"; import { fileURLToPath } from 'url'; +import { apolloClient, sleep, startExecutor } from "./utils"; +import fetch from 'node-fetch' + +//@ts-ignore +global.fetch = fetch const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); -const appDataPath = path.join(TEST_DIR, "agents", "p"); -const ipfsRepoPath = path.join(appDataPath); -const publishLanguagesPath = path.join(TEST_DIR, "languages"); -const publishingAgentPath = path.join(`${__dirname}/../../src/tests/p`); -const publishingBootstrapSeedPath = path.join(`${__dirname}/../../src/tests/publishBootstrapSeed.json`); -const bootstrapSeedPath = path.join(`${__dirname}/../../src/tests/bootstrapSeed.json`); -const noteIpfsHashPath = path.join(`${__dirname}/../../scripts/note-ipfs-hash`); -const perspectiveDiffSyncHashPath = path.join(`${__dirname}/../../scripts/perspective-diff-sync-hash`); +const TEST_DIR = path.resolve(__dirname, '..', 'tst-tmp'); +const appDataPath = path.resolve(TEST_DIR, "agents", "p"); +const publishLanguagesPath = path.resolve(TEST_DIR, "languages"); +const publishingBootstrapSeedPath = path.resolve(__dirname, '..', 'publishBootstrapSeed.json'); +const bootstrapSeedPath = path.resolve(__dirname, '..', 'bootstrapSeed.json'); +const perspectiveDiffSyncHashPath = path.resolve(__dirname, '..', 'scripts', 'perspective-diff-sync-hash'); +const gqlPort = 15700; +const hcAdminPort = 15701; +const hcAppPort = 15702; //Update this as new languages are needed within testing code const languagesToPublish = { "agent-expression-store": {name: "agent-expression-store", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, "direct-message-language": {name: "direct-message-language", description: "", possibleTemplateParams: ["uid", "recipient_did", "recipient_hc_agent_pubkey"]} as LanguageMetaInput, "neighbourhood-store": {name: "neighbourhood-store", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, - "note-ipfs": {name: "note-ipfs", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, "perspective-diff-sync": {name: "perspective-diff-sync", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, "perspective-language": {name: "perspective-language", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, } @@ -38,37 +36,9 @@ const languageHashes = { "agentLanguage": "", "perspectiveLanguage": "", "neighbourhoodLanguage": "", - "noteIpfs": "", "perspectiveDiffSync": "" } -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: token - } - } - }, - })); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); -} - function createTestingAgent() { if (!fs.existsSync(appDataPath)) { fs.mkdirSync(appDataPath); @@ -90,38 +60,19 @@ function injectSystemLanguages() { } function injectLangAliasHashes() { - fs.writeFileSync(noteIpfsHashPath, languageHashes["noteIpfs"]); fs.writeFileSync(perspectiveDiffSyncHashPath, languageHashes["perspectiveDiffSync"]); } async function publish() { createTestingAgent(); - const core = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: publishingBootstrapSeedPath, - languageLanguageOnly: true, - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true - } as OuterConfig) + + const executorProcess = await startExecutor(appDataPath, publishingBootstrapSeedPath, gqlPort, hcAdminPort, hcAppPort, true); - const ad4mClient = new Ad4mClient(apolloClient(4000)); + const ad4mClient = new Ad4mClient(apolloClient(gqlPort)); await ad4mClient.agent.generate("passphrase"); - - await core.waitForAgent(); - core.initControllers() - await core.initLanguages() for (const [language, languageMeta] of Object.entries(languagesToPublish)) { - let bundlePath = path.join(publishLanguagesPath, language, "build", "bundle.js"); + let bundlePath = path.join(publishLanguagesPath, language, "build", "bundle.js").replace(/\\/g, "/"); console.log("Attempting to publish language", bundlePath); let publishedLang = await ad4mClient.languages.publish(bundlePath, languageMeta); console.log("Published with result", publishedLang); @@ -137,16 +88,21 @@ async function publish() { if (language === "perspective-language") { languageHashes["perspectiveLanguage"] = publishedLang.address; } - if (language === "note-ipfs") { - languageHashes["noteIpfs"] = publishedLang.address; - } if (language === "perspective-diff-sync") { languageHashes["perspectiveDiffSync"] = publishedLang.address; } } injectSystemLanguages() injectLangAliasHashes(); - await core!.exit(); + + if (executorProcess) { + while (!executorProcess.killed){ + let status = executorProcess.kill() + console.log("killed executor with", status); + await sleep(500); + } + } + exit(); } diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts new file mode 100644 index 000000000..19b74463b --- /dev/null +++ b/tests/js/utils/utils.ts @@ -0,0 +1,157 @@ +import { ChildProcess, exec, ExecException, execSync } from "node:child_process"; +import { rmSync } from "node:fs"; +import { GraphQLWsLink } from "@apollo/client/link/subscriptions/index.js"; +import { ApolloClient, InMemoryCache } from "@apollo/client/core/index.js"; +import Websocket from "ws"; +import { createClient } from "graphql-ws"; +import path from "path"; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +export async function isProcessRunning(processName: string): Promise { + const cmd = (() => { + switch (process.platform) { + case 'win32': return `tasklist` + case 'darwin': return `ps -ax | grep ${processName}` + case 'linux': return `ps -A` + default: return false + } + })() + + if (!cmd) throw new Error("Invalid OS"); + + return new Promise((resolve, reject) => { + //@ts-ignore + exec(cmd, (err: ExecException, stdout: string, stderr: string) => { + if (err) reject(err) + + resolve(stdout.toLowerCase().indexOf(processName.toLowerCase()) > -1) + }) + }) +} + +export async function runHcLocalServices(): Promise<{proxyUrl: string | null, bootstrapUrl: string | null, process: ChildProcess}> { + const command = path.resolve(__dirname, '..', '..', '..','target', 'release', 'ad4m'); + let servicesProcess = exec(`${command} run-local-hc-services`); + + let proxyUrl: string | null = null; + let bootstrapUrl: string | null = null; + + let servicesReady = new Promise((resolve, reject) => { + servicesProcess.stdout!.on('data', (data) => { + if (data.includes("HC BOOTSTRAP - ADDR")) { + const regex = /(http:\/\/|ws:\/\/)[^\s]+/g; + const matches = data.match(regex); + bootstrapUrl = matches![0]; + } + + if (data.includes("HC SIGNAL - ADDR")) { + const regex = /(http:\/\/|ws:\/\/)[^\s]+/g; + const matches = data.match(regex); + proxyUrl = matches![0]; + resolve(); + } + }); + }); + + await servicesReady; + return {proxyUrl, bootstrapUrl, process: servicesProcess}; +} + +export async function startExecutor(dataPath: string, + bootstrapSeedPath: string, + gqlPort: number, + hcAdminPort: number, + hcAppPort: number, + languageLanguageOnly: boolean = false, + adminCredential?: string, + proxyUrl: string = "wss://signal.holotest.net", + bootstrapUrl: string = "https://bootstrap.holo.host", +): Promise { + const command = path.resolve(__dirname, '..', '..', '..','target', 'release', 'ad4m'); + + console.log(bootstrapSeedPath); + console.log(dataPath); + let executorProcess = null as ChildProcess | null; + rmSync(dataPath, { recursive: true, force: true }) + execSync(`${command} init --data-path ${dataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {cwd: process.cwd()}) + + console.log("Starting executor") + + console.log("USING LOCAL BOOTSTRAP & PROXY URL: ", bootstrapUrl, proxyUrl); + + if (!adminCredential) { + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap false --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + } else { + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap false --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + } + let executorReady = new Promise((resolve, reject) => { + executorProcess!.stdout!.on('data', (data) => { + if (data.includes(`listening on http://127.0.0.1:${gqlPort}`)) { + resolve() + } + }); + executorProcess!.stderr!.on('data', (data) => { + if (data.includes(`listening on http://127.0.0.1:${gqlPort}`)) { + resolve() + } + }); + }) + + executorProcess!.stdout!.on('data', (data) => { + console.log(`${data}`); + }); + executorProcess!.stderr!.on('data', (data) => { + console.log(`${data}`); + }); + + console.log("Waiting for executor to settle...") + await executorReady + return executorProcess; +} + +export function apolloClient(port: number, token?: string): ApolloClient { + const wsLink = new GraphQLWsLink(createClient({ + url: `ws://127.0.0.1:${port}/graphql`, + webSocketImpl: Websocket, + connectionParams: () => { + return { + headers: { + authorization: token || "" + } + } + }, + })); + wsLink.client.on('message' as any, (data: any) => { + if (data.payload) { + if (data.payload.errors) { + console.dir(data.payload.errors, { depth: null }); + } + } + }); + + let client = new ApolloClient({ + link: wsLink, + cache: new InMemoryCache({ resultCaching: false, addTypename: false }), + defaultOptions: { + watchQuery: { + fetchPolicy: "no-cache", + }, + query: { + fetchPolicy: "no-cache", + }, + mutate: { + fetchPolicy: "no-cache" + } + }, + }); + + return client; +} + +export function sleep(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} \ No newline at end of file diff --git a/tests/js/yarn.lock b/tests/js/yarn.lock deleted file mode 100644 index d15331f33..000000000 --- a/tests/js/yarn.lock +++ /dev/null @@ -1,2516 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@apollo/client@3.7.10": - version "3.7.10" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.7.10.tgz#addc5fcebaf016981d9476268a06d529be83f568" - integrity sha512-/k1MfrqPKYiPNdHcOzdxg9cEx96vhAGxAcSorzfBvV29XtFQcYW2cPNQOTjK/fpSMtqVo8UNmu5vwQAWD1gfCg== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - "@wry/context" "^0.7.0" - "@wry/equality" "^0.5.0" - "@wry/trie" "^0.3.0" - graphql-tag "^2.12.6" - hoist-non-react-statics "^3.3.2" - optimism "^0.16.1" - prop-types "^15.7.2" - response-iterator "^0.2.6" - symbol-observable "^4.0.0" - ts-invariant "^0.10.3" - tslib "^2.3.0" - zen-observable-ts "^1.2.5" - -"@babel/code-frame@^7.12.13": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/helper-validator-identifier@^7.18.6": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@graphql-typed-document-node/core@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" - integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== - -"@holochain/client@0.12.5": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" - integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/serialization@^0.1.0-beta-rc.3": - version "0.1.0-beta-rc.3" - resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" - integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== - -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== - dependencies: - jest-get-type "^29.2.0" - -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== - dependencies: - "@jest/schemas" "^29.0.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@msgpack/msgpack@^2.7.2": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" - integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== - -"@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz#21418e1f3819e0b353ceff0c2dad8ccb61acd777" - integrity sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ== - dependencies: - asn1js "^3.0.5" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -"@peculiar/json-schema@^1.1.12": - version "1.1.12" - resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" - integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== - dependencies: - tslib "^2.0.0" - -"@peculiar/webcrypto@^1.1.7": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz#821493bd5ad0f05939bd5f53b28536f68158360a" - integrity sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw== - dependencies: - "@peculiar/asn1-schema" "^2.3.0" - "@peculiar/json-schema" "^1.1.12" - pvtsutils "^1.3.2" - tslib "^2.4.1" - webcrypto-core "^1.7.4" - -"@perspect3vism/ad4m@link:../../core": - version "0.0.0" - uid "" - -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== - -"@sinonjs/commons@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" - integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@10.0.2", "@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== - dependencies: - "@sinonjs/commons" "^2.0.0" - -"@sinonjs/samsam@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-7.0.1.tgz#5b5fa31c554636f78308439d220986b9523fc51f" - integrity sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw== - dependencies: - "@sinonjs/commons" "^2.0.0" - lodash.get "^4.4.2" - type-detect "^4.0.8" - -"@sinonjs/text-encoding@^0.7.1": - version "0.7.2" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" - integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== - -"@tauri-apps/api@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" - integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== - -"@types/chai-as-promised@*": - version "7.1.5" - resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz#6e016811f6c7a64f2eed823191c3a6955094e255" - integrity sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ== - dependencies: - "@types/chai" "*" - -"@types/chai@*": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== - -"@types/expect@*": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@types/expect/-/expect-24.3.0.tgz#d7cab8b3c10c2d92a0cbb31981feceb81d3486f1" - integrity sha512-aq5Z+YFBz5o2b6Sp1jigx5nsmoZMK5Ceurjwy6PZmRv7dEi1jLtkARfvB1ME+OXJUG+7TZUDcv3WoCr/aor6dQ== - dependencies: - expect "*" - -"@types/faker@^5.5.7": - version "5.5.9" - resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" - integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== - -"@types/fs-extra@^9.0.12": - version "9.0.13" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" - integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== - dependencies: - "@types/node" "*" - -"@types/glob@^7.1.3": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^26.0.14": - version "26.0.24" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" - integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== - dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" - -"@types/js-yaml@^4.0.2": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" - integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/lodash@*": - version "4.14.191" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" - integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== - -"@types/lowdb@^1.0.11": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@types/lowdb/-/lowdb-1.0.11.tgz#d8336a635ea0dbd48a7f6f62fb9fccc5ec358ae3" - integrity sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg== - dependencies: - "@types/lodash" "*" - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/mocha@*": - version "10.0.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" - integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== - -"@types/node-fetch@^2.5.11": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node@*": - version "18.11.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" - integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== - -"@types/node@^14.11.2", "@types/node@^14.14.22": - version "14.18.36" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.36.tgz#c414052cb9d43fab67d679d5f3c641be911f5835" - integrity sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ== - -"@types/semver@^7.3.3": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== - -"@types/sinon@*": - version "10.0.13" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.13.tgz#60a7a87a70d9372d0b7b38cc03e825f46981fb83" - integrity sha512-UVjDqJblVNQYvVNUsj0PuYYw0ELRmgt1Nt5Vk0pT5f16ROGfcKJY8o1HVuMOJOpD727RrGB9EGvoaTQE5tgxZQ== - dependencies: - "@types/sinonjs__fake-timers" "*" - -"@types/sinonjs__fake-timers@*": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e" - integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^15.0.0": - version "15.0.15" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.15.tgz#e609a2b1ef9e05d90489c2f5f45bbfb2be092158" - integrity sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.19.tgz#8dbecdc9ab48bee0cb74f6e3327de3fa0d0c98ae" - integrity sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ== - dependencies: - "@types/yargs-parser" "*" - -"@wry/context@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.0.tgz#be88e22c0ddf62aeb0ae9f95c3d90932c619a5c8" - integrity sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ== - dependencies: - tslib "^2.3.0" - -"@wry/equality@^0.5.0": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" - integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== - dependencies: - tslib "^2.3.0" - -"@wry/trie@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" - integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== - dependencies: - tslib "^2.3.0" - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== - -ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -asn1js@^3.0.1, asn1js@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" - integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== - dependencies: - pvtsutils "^1.3.2" - pvutils "^1.1.3" - tslib "^2.4.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -big-integer@^1.6.17: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -binary@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" - integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - -bluebird@~3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -buffer-from@^1.0.0, buffer-from@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-indexof-polyfill@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" - integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== - -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" - integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chai-as-promised@*: - version "7.1.1" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" - integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== - dependencies: - check-error "^1.0.2" - -chai@*: - version "4.3.7" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" - integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^4.1.2" - get-func-name "^2.0.0" - loupe "^2.3.1" - pathval "^1.1.1" - type-detect "^4.0.5" - -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" - integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== - dependencies: - traverse ">=0.3.0 <0.4" - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== - -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - 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" - optionalDependencies: - fsevents "~2.3.2" - -ci-info@^3.2.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" - integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== - -class-validator@^0.13.1: - version "0.13.2" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.13.2.tgz#64b031e9f3f81a1e1dcd04a5d604734608b24143" - integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== - dependencies: - libphonenumber-js "^1.9.43" - validator "^13.7.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -data-uri-to-buffer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b" - integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" - integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== - dependencies: - type-detect "^4.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -diff-sequences@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" - integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" - integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== - -duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== - dependencies: - readable-stream "^2.0.2" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -emittery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" - integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -expect@*: - version "29.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== - dependencies: - "@jest/expect-utils" "^29.3.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - -express@4.18.2: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -faker@^5.1.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/faker/-/faker-5.5.3.tgz#c57974ee484431b25205c2c8dc09fda861e51e0e" - integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== - -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - 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" - -graceful-fs@^4.1.2, graceful-fs@^4.2.2, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graphql-query-complexity@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" - integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== - dependencies: - lodash.get "^4.4.2" - -graphql-subscriptions@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" - integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== - dependencies: - iterall "^1.3.0" - -graphql-tag@^2.12.6: - version "2.12.6" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" - integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== - dependencies: - tslib "^2.1.0" - -graphql@15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.7.2.tgz#85ab0eeb83722977151b3feb4d631b5f2ab287ef" - integrity sha512-AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@~2.0.0, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isomorphic-ws@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" - integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -iterall@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - -jest-diff@^26.0.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== - -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== - dependencies: - chalk "^4.0.0" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.3.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -js-base64@^3.7.3: - version "3.7.3" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.3.tgz#2e784bb0851636bf1e99ef12e4f3a8a8c9b7639f" - integrity sha512-PAr6Xg2jvd7MCR6Ld9Jg3BmTcjYsHEBx1VlwEwULb/qowPf5VD9kEMagj23Gm7JRnSvE/Da/57nChZjnvL8v6A== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -just-extend@^4.0.2: - version "4.2.1" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" - integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== - -libphonenumber-js@^1.9.43: - version "1.10.15" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.15.tgz#cad454adb5bf271bc820bbf7dd66776afcda7be6" - integrity sha512-sLeVLmWX17VCKKulc+aDIRHS95TxoTsKMRJi5s5gJdwlqNzMWcBCtSHHruVyXjqfi67daXM2SnLf2juSrdx5Sg== - -listenercount@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" - integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loupe@^2.3.1: - version "2.3.6" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" - integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== - dependencies: - get-func-name "^2.0.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -"mkdirp@>=0.5 0", mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mocha@*: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -nise@^5.1.2: - version "5.1.4" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.4.tgz#491ce7e7307d4ec546f5a659b2efe94a18b4bbc0" - integrity sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - path-to-regexp "^1.7.0" - -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.0.tgz#37e71db4ecc257057af828d523a7243d651d91e4" - integrity sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-wget-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/node-wget-js/-/node-wget-js-1.0.1.tgz#2390bf9c9f99f280cc7a221d07d096103161e78c" - integrity sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw== - dependencies: - request "^2.88.0" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optimism@^0.16.1: - version "0.16.2" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.2.tgz#519b0c78b3b30954baed0defe5143de7776bf081" - integrity sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ== - dependencies: - "@wry/context" "^0.7.0" - "@wry/trie" "^0.3.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -prop-types@^15.7.2: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pvtsutils@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" - integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== - dependencies: - tslib "^2.4.0" - -pvutils@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" - integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^16.13.1, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -react@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -readable-stream@^2.0.2, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - 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" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -response-iterator@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" - integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== - -rimraf@2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver@^7.3.2: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -setimmediate@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -sinon@*: - version "15.0.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.0.1.tgz#ce062611a0b131892e2c18f03055b8eb6e8dc234" - integrity sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers" "10.0.2" - "@sinonjs/samsam" "^7.0.1" - diff "^5.0.0" - nise "^5.1.2" - supports-color "^7.2.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - 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" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0, supports-color@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -symbol-observable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" - integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" - integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== - -ts-invariant@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" - integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== - dependencies: - tslib "^2.1.0" - -ts-mocha@*: - version "10.0.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.0.0.tgz#41a8d099ac90dbbc64b06976c5025ffaebc53cb9" - integrity sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw== - dependencies: - ts-node "7.0.1" - optionalDependencies: - tsconfig-paths "^3.5.0" - -ts-node@10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -ts-node@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" - integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== - dependencies: - arrify "^1.0.0" - buffer-from "^1.1.0" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.5.6" - yn "^2.0.0" - -tsconfig-paths@^3.5.0: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-graphql@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" - integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== - dependencies: - "@types/glob" "^7.1.3" - "@types/node" "^14.11.2" - "@types/semver" "^7.3.3" - glob "^7.1.6" - graphql-query-complexity "^0.7.0" - graphql-subscriptions "^1.1.0" - semver "^7.3.2" - tslib "^2.0.1" - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typescript@^4.6.2: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unzipper@^0.10.11: - version "0.10.11" - resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" - integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== - dependencies: - big-integer "^1.6.17" - binary "~0.3.0" - bluebird "~3.4.1" - buffer-indexof-polyfill "~1.0.0" - duplexer2 "~0.1.4" - fstream "^1.0.12" - graceful-fs "^4.2.2" - listenercount "~1.0.1" - readable-stream "~2.3.6" - setimmediate "~1.0.4" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -validator@^13.7.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - -webcrypto-core@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4" - integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A== - dependencies: - "@peculiar/asn1-schema" "^2.1.6" - "@peculiar/json-schema" "^1.1.12" - asn1js "^3.0.1" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" - integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zen-observable-ts@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" - integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== - dependencies: - zen-observable "0.8.15" - -zen-observable@0.8.15: - version "0.8.15" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/turbo.json b/turbo.json index 786dd94c2..7047c342d 100644 --- a/turbo.json +++ b/turbo.json @@ -6,7 +6,7 @@ "outputs": ["dist/**", "lib/**", "build/**"] }, "build-libs": { - "dependsOn": ["@perspect3vism/ad4m#build", "@perspect3vism/ad4m-connect#build", "@perspect3vism/ad4m-executor#build", "@perspect3vism/ad4m-test#build"], + "dependsOn": ["@perspect3vism/ad4m#build", "@perspect3vism/ad4m-connect#build", "@perspect3vism/ad4m-executor#build", "@perspect3vism/ad4m-test#build", "@perspect3vism/ad4m-cli#build", "@perspect3vism/dapp#build"], "outputs": ["dist/**", "lib/**", "build/**"] }, "build-languages": { @@ -17,6 +17,11 @@ "outputs": ["dist/**", "lib/**", "build/**"] }, + "ad4m-launcher#package-ad4m": { + "dependsOn": ["build-libs"], + "outputs": ["dist/**"] + }, + "lint": { "outputs": [] }, @@ -28,51 +33,20 @@ }, "test": { - "dependsOn": ["build-libs", "build-languages"], + "dependsOn": ["^test"], "outputs": [] }, - "test:windows": { - "dependsOn": ["build-libs", "build-languages"], + "test:macos": { + "dependsOn": ["test"], "outputs": [] }, - - "ad4m-host#package-linux": { - "dependsOn": ["^lint", "@perspect3vism/ad4m#build", "@perspect3vism/ad4m-executor#build", "ad4m-host#build"], - "outputs": ["dist/**", "lib/**", "build/**"] - }, - "ad4m-host#package-macos": { - "dependsOn": ["^lint", "@perspect3vism/ad4m#build", "@perspect3vism/ad4m-executor#build", "ad4m-host#build"], - "outputs": ["dist/**", "lib/**", "build/**"] - }, - "ad4m-host#package-windows": { - "dependsOn": ["^lint", "@perspect3vism/ad4m#build", "@perspect3vism/ad4m-executor#build", "ad4m-host#build"], - "outputs": ["dist/**", "lib/**", "build/**"] - }, - - "ad4m-launcher#build-linux": { - "dependsOn": ["ad4m-host#package-linux"], - "outputs": ["dist/**"] - }, - "ad4m-launcher#build-macos": { - "dependsOn": ["ad4m-host#package-macos"], - "outputs": ["dist/**"] - }, - "ad4m-launcher#build-windows": { - "dependsOn": ["ad4m-host#package-windows"], - "outputs": ["dist/**"] - }, - - "ad4m-launcher#build-all-linux": { - "dependsOn": ["ad4m-host#package-linux"], - "outputs": ["dist/**"] - }, - "ad4m-launcher#build-all-macos": { - "dependsOn": ["ad4m-host#package-macos"], - "outputs": ["dist/**"] + "test:linux": { + "dependsOn": ["test"], + "outputs": [] }, - "ad4m-launcher#build-all-windows": { - "dependsOn": ["ad4m-host#package-windows"], - "outputs": ["dist/**"] + "test:windows": { + "dependsOn": ["test"], + "outputs": [] } } } diff --git a/ui/package.json b/ui/package.json index addc2368d..01a8a1b6a 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-launcher", - "version": "0.5.1", + "version": "0.6.0", "private": true, "type": "module", "dependencies": { @@ -8,7 +8,7 @@ "@junto-foundation/junto-elements": "^0.5.5", "@perspect3vism/ad4m": "*", "@preact/preset-vite": "^2.4.0", - "@tauri-apps/api": "^1.2.0", + "@tauri-apps/api": "^1.4.0", "apollo-boost": "^0.4.9", "graphql": "15.7.2", "graphql-ws": "5.12.0", @@ -28,13 +28,7 @@ "tauri": "tauri", "eject": "vite eject", "build": "vite build", - "build-all": "yarn run build && yarn run tauri -- build -v", - "build-linux": "./scripts/copy-ad4m-host.sh && yarn run build-all", - "build-macos": "./scripts/copy-ad4m-host.sh && yarn run build-all", - "build-windows": "powershell -ExecutionPolicy Bypass -File ./scripts/copy-ad4m-host.ps1 && yarn run build-all", - "build-all-linux": "rm -rf ../target && yarn run build-linux", - "build-all-macos": "rm -rf ../target && yarn run build-macos", - "build-all-windows": "rm -rf ../target && yarn run build-windows" + "package-ad4m": "yarn run build && yarn tauri build" }, "eslintConfig": { "extends": [ @@ -55,15 +49,15 @@ ] }, "devDependencies": { + "@prefresh/vite": "^2.2.9", + "@tauri-apps/cli": "1.4.0", + "@testing-library/jest-dom": "^5.16.2", + "@testing-library/react": "^12.1.4", + "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.4.1", "@types/node": "^18.0.0", "@types/react": "^17.0.40", "@types/react-dom": "^18.0.9", - "@testing-library/jest-dom": "^5.16.2", - "@testing-library/react": "^12.1.4", - "@testing-library/user-event": "^13.5.0", - "@prefresh/vite": "^2.2.9", - "@tauri-apps/cli": "1.2.1", "@vitejs/plugin-react-refresh": "^1.3.6", "customize-cra": "1.0.0", "react-app-rewired": "^2.2.1", diff --git a/ui/scripts/copy-ad4m-host.ps1 b/ui/scripts/copy-ad4m-host.ps1 deleted file mode 100644 index 2a3d94cd4..000000000 --- a/ui/scripts/copy-ad4m-host.ps1 +++ /dev/null @@ -1,5 +0,0 @@ -rm -rf src-tauri/bins -mkdir src-tauri/bins - -Copy-Item ../host/dist/ad4m-windows-x64.exe -Destination src-tauri/bins/ad4m-host-x86_64-pc-windows-gnu.exe -Copy-Item ../host/dist/ad4m-windows-x64.exe -Destination src-tauri/bins/ad4m-host-x86_64-pc-windows-msvc.exe \ No newline at end of file diff --git a/ui/scripts/copy-ad4m-host.sh b/ui/scripts/copy-ad4m-host.sh deleted file mode 100755 index 8fcbb1023..000000000 --- a/ui/scripts/copy-ad4m-host.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -set -e - -rm -rf src-tauri/bins -mkdir src-tauri/bins - -TARGET_TRIPLE=$(rustc -vV | sed -n 's/^.*host: \(.*\)*$/\1/p') - -unameOut="$(uname -s)" -case "${unameOut}" in - Linux*) AD4M_HOST_BINARY=../host/dist/ad4m-linux-x64;; - Darwin*) AD4M_HOST_BINARY=../host/dist/ad4m-macos-x64;; - *) echo "Machine is not supported: ${unameOut}" && exit 1;; -esac -echo "Got ad4m-host binaries for machine type: ${unameOut}" - -cp $AD4M_HOST_BINARY src-tauri/bins/ad4m-host-$TARGET_TRIPLE - -chmod 755 src-tauri/bins/ad4m-host-$TARGET_TRIPLE diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index b38c23931..d63498bbf 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-launcher" -version = "0.5.1" +version = "0.6.0" description = "Administration of ad4m services" authors = ["Kaichao Sun"] license = "" @@ -26,15 +26,21 @@ libc = "0.2.121" directories = "4.0.1" opener = "0.5.0" open = "2.0.1" -sysinfo = "0.23.12" -tauri = { version = "1.2.1", features = ["api-all", "system-tray"] } +sysinfo = "0.29.7" +tauri = { version = "1.4.1", features = [ "updater", "api-all", "system-tray"] } uuid = { version = "0.8", features = ["v4"] } localtunnel-client = "0.0.12" tokio = { version = "1.19.2", features = ["full"] } tauri-plugin-positioner = { version = "1.0", features = ["system-tray"] } remove_dir_all = "0.7.0" -reqwest = { version = "0.11", features = ["json"] } +reqwest = { version = "0.11.18", features = ["json", "native-tls"] } ad4m-client = { path = "../../rust-client" } +rust-executor = { path = "../../rust-executor" } +chrono = "0.4" +env_logger = "0.10.0" +colored = "2.0" +tracing = { version = "0.1.37", features = ["log-always"] } +tracing-subscriber = "0.2" [features] # by default Tauri runs in production mode diff --git a/ui/src-tauri/src/commands/app.rs b/ui/src-tauri/src/commands/app.rs index 9e8667e7a..6bf660283 100644 --- a/ui/src-tauri/src/commands/app.rs +++ b/ui/src-tauri/src/commands/app.rs @@ -2,7 +2,7 @@ extern crate remove_dir_all; use std::time::{Duration, SystemTime}; use crate::Payload; -use crate::{config::data_path, get_main_window, util::find_and_kill_processes}; +use crate::{config::data_path, get_main_window}; use remove_dir_all::*; @@ -65,10 +65,6 @@ pub fn open_tray_message(app_handle: tauri::AppHandle) { #[tauri::command] pub fn clear_state(app_handle: tauri::AppHandle) { - find_and_kill_processes("ad4m-host"); - - find_and_kill_processes("holochain"); - let _ = remove_dir_all(data_path()); app_handle.restart(); diff --git a/ui/src-tauri/src/config.rs b/ui/src-tauri/src/config.rs index 58104db68..fbe3ffd83 100644 --- a/ui/src-tauri/src/config.rs +++ b/ui/src-tauri/src/config.rs @@ -10,18 +10,6 @@ pub fn log_path() -> PathBuf { data_path().join("ad4m.log") } -pub fn binary_path() -> PathBuf { - data_path().join("binary") -} - -pub fn holochain_binary_path() -> PathBuf { - if cfg!(windows) { - binary_path().join("holochain.exe") - } else { - binary_path().join("holochain") - } -} - #[cfg(feature = "custom-protocol")] pub fn app_url() -> String { "index.html".to_string() diff --git a/ui/src-tauri/src/logs.rs b/ui/src-tauri/src/logs.rs deleted file mode 100644 index dfa33a675..000000000 --- a/ui/src-tauri/src/logs.rs +++ /dev/null @@ -1,28 +0,0 @@ -use log::LevelFilter; -use log4rs::{ - append::file::FileAppender, - config::{Appender, Root}, - encode::pattern::PatternEncoder, - Config, -}; -use std::fs; - -use crate::config::{log_path}; - -pub fn setup_logs() -> Result<(), String> { - let _ = fs::remove_file(log_path()); - - let logfile = FileAppender::builder() - .encoder(Box::new(PatternEncoder::new("[{d}] {l} - {m}\n"))) - .build(log_path()) - .map_err(|err| format!("Could not build log config: {:?}", err))?; - - let config = Config::builder() - .appender(Appender::builder().build("logfile", Box::new(logfile))) - .build(Root::builder().appender("logfile").build(LevelFilter::Info)) - .map_err(|err| format!("Could not init log config: {:?}", err))?; - - log4rs::init_config(config).map_err(|err| format!("Could not init log config: {:?}", err))?; - - Ok(()) -} \ No newline at end of file diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 56cd837f1..49ba1d262 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -3,20 +3,33 @@ windows_subsystem = "windows" )] +extern crate env_logger; +use chrono::Local; +use log::LevelFilter; +use log::{info, error, debug}; +use rust_executor::Ad4mConfig; use tauri::LogicalSize; use tauri::Size; +use std::env; +use std::fs; +use std::fs::File; use std::sync::Mutex; +use libc::{rlimit, RLIMIT_NOFILE, setrlimit}; +use std::io; +use std::io::Write; +use colored::Colorize; +use tracing_subscriber::EnvFilter; +use tracing_subscriber::fmt::format; + + + extern crate remove_dir_all; -use remove_dir_all::*; -use config::holochain_binary_path; use config::app_url; -use logs::setup_logs; use menu::build_menu; use system_tray::{ build_system_tray, handle_system_tray_event }; use tauri::{ AppHandle, - api::process::{Command, CommandEvent}, RunEvent, SystemTrayEvent, Window }; @@ -26,22 +39,22 @@ use uuid::Uuid; mod config; mod util; -mod logs; mod system_tray; mod menu; mod commands; -use tauri::api::dialog; use tauri::Manager; use crate::commands::proxy::{get_proxy, login_proxy, setup_proxy, stop_proxy}; use crate::commands::state::{get_port, request_credential}; use crate::commands::app::{close_application, close_main_window, clear_state, open_tray, open_tray_message}; use crate::config::data_path; +use crate::config::log_path; use crate::util::create_tray_message_windows; use crate::util::find_port; use crate::menu::{handle_menu_event, open_logs_folder}; use crate::util::has_processes_running; -use crate::util::{find_and_kill_processes, create_main_window, save_executor_port}; +use crate::util::{create_main_window, save_executor_port}; + // the payload type must implement `Serialize` and `Clone`. #[derive(Clone, serde::Serialize)] @@ -64,58 +77,107 @@ pub struct AppState { } fn main() { - let app_name = if std::env::consts::OS == "windows" { "AD4M.exe" } else { "AD4M" }; - if has_processes_running(app_name) > 1 { - println!("AD4M is already running"); - return; + env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); + + let mut rlim: rlimit = rlimit { rlim_cur: 0, rlim_max: 0 }; + + // Get the current file limit + unsafe { + if libc::getrlimit(RLIMIT_NOFILE, &mut rlim) != 0 { + panic!("{}", io::Error::last_os_error()); + } } - if data_path().exists() && !data_path().join("ad4m").join("agent.json").exists() { - let _ = remove_dir_all(data_path()); + let rlim_max = 1000 as u64; + println!("Current RLIMIT_NOFILE: current: {}, max: {}", rlim.rlim_cur, rlim_max); + + // Attempt to increase the limit + rlim.rlim_cur = rlim_max; + + unsafe { + if setrlimit(RLIMIT_NOFILE, &rlim) != 0 { + panic!("{}", io::Error::last_os_error()); + } } - let mut waited_seconds = 0; - while data_path().join("ipfs").join("repo.lock").exists() { - println!("IPFS repo.lock exists, waiting..."); - std::thread::sleep(std::time::Duration::from_secs(1)); - waited_seconds = waited_seconds + 1; - if waited_seconds > 10 { - println!("Waited long enough, removing lock..."); - let _ = remove_dir_all(data_path().join("ipfs").join("repo.lock")); - let _ = remove_dir_all(data_path().join("ipfs").join("datastore").join("LOCK")); + // Check the updated limit + unsafe { + if libc::getrlimit(RLIMIT_NOFILE, &mut rlim) != 0 { + panic!("{}", io::Error::last_os_error()); } } - if let Err(err) = setup_logs() { - println!("Error setting up the logs: {:?}", err); + println!("Updated RLIMIT_NOFILE: current: {}, max: {}", rlim.rlim_cur, rlim_max); + + if !data_path().exists() { + let _ = fs::create_dir_all(data_path()); + } + + if log_path().exists() { + let _ = fs::remove_file(log_path()); } + + let target = Box::new(File::create(log_path()).expect("Can't create file")); + + env_logger::Builder::new() + .target(env_logger::Target::Pipe(target)) + .filter(Some("holochain"), LevelFilter::Warn) + .filter(Some("wasmer_compiler_cranelift"), LevelFilter::Warn) + .filter(Some("rust_executor"), LevelFilter::Debug) + .filter(Some("warp::server"), LevelFilter::Debug) + .format(|buf, record| { + let level = match record.level() { + log::Level::Error => record.level().as_str().red(), + log::Level::Warn => record.level().as_str().yellow(), + log::Level::Info => record.level().as_str().green(), + log::Level::Debug => record.level().as_str().blue(), + log::Level::Trace => record.level().as_str().purple(), + }; + writeln!( + buf, + "[{} {} {}:{}] {}", + Local::now().format("%Y-%m-%d %H:%M:%S%.3f").to_string().as_str().dimmed(), + level, + record.file().unwrap_or("unknown").to_string().as_str().dimmed(), + record.line().unwrap_or(0).to_string().as_str().dimmed(), + record.args().to_string().as_str().bold(), + ) + }) + .init(); + + let format = format::debug_fn(move |writer, _field, value| { + debug!("TRACE: {:?}", value); + write!(writer, "{:?}", value) + }); + + let filter = EnvFilter::from_default_env(); + + let subscriber = tracing_subscriber::fmt() + .with_env_filter(filter) + .fmt_fields(format) + .finish(); + + tracing::subscriber::set_global_default(subscriber) + .expect("Failed to set tracing subscriber"); let free_port = find_port(12000, 13000); - log::info!("Free port: {:?}", free_port); + info!("Free port: {:?}", free_port); save_executor_port(free_port); - find_and_kill_processes("ad4m-host"); - - find_and_kill_processes("holochain"); - - let prepare = Command::new_sidecar("ad4m-host") - .expect("Failed to create ad4m command") - .args(["prepare"]) - .status() - .expect("Failed to run ad4m prepare"); - assert!(prepare.success()); - - if !holochain_binary_path().exists() { - log::info!("init command by copy holochain binary"); - let status = Command::new_sidecar("ad4m-host") - .expect("Failed to create ad4m command") - .args(["init"]) - .status() - .expect("Failed to run ad4m init"); - assert!(status.success()); - } + match rust_executor::init::init( + Some(String::from(data_path().to_str().unwrap())), + None + ) { + Ok(()) => { + println!("Ad4m initialized sucessfully"); + }, + Err(e) => { + println!("Ad4m initialization failed: {}", e); + std::process::exit(1); + } + }; let req_credential = Uuid::new_v4().to_string(); @@ -151,65 +213,45 @@ fn main() { let splashscreen = app.get_window("splashscreen").unwrap(); - let splashscreen_clone = splashscreen.clone(); - let _id = splashscreen.listen("copyLogs", |event| { - log::info!("got window event-name with payload {:?} {:?}", event, event.payload()); + info!("got window event-name with payload {:?} {:?}", event, event.payload()); open_logs_folder(); }); - let (mut rx, _child) = Command::new_sidecar("ad4m-host") - .expect("Failed to create ad4m command") - .args([ - "serve", - "--port", &free_port.to_string(), - "--reqCredential", &req_credential, - ]) - .spawn() - .expect("Failed to spawn ad4m serve"); + let mut config = Ad4mConfig::default(); + config.admin_credential = Some(req_credential.to_string()); + config.app_data_path = Some(String::from(data_path().to_str().unwrap())); + config.gql_port = Some(free_port); + config.network_bootstrap_seed = None; + config.run_dapp_server = Some(false); + config.hc_use_bootstrap = Some(true); + config.hc_use_mdns = Some(false); + config.hc_use_proxy = Some(true); let handle = app.handle(); - tauri::async_runtime::spawn(async move { - while let Some(event) = rx.recv().await { - match event.clone() { - CommandEvent::Stdout(line) => { - log::info!("{}", line); - - if line.contains("GraphQL server started, Unlock the agent to start holohchain") { - let url = app_url(); - log::info!("Executor started on: {:?}", url); - let _ = splashscreen_clone.hide(); - create_tray_message_windows(&handle); - let main = get_main_window(&handle); - main.emit("ready", Payload { message: "ad4m-executor is ready".into() }).unwrap(); - } - }, - CommandEvent::Stderr(line) => { - let is_prolog_redefined_line = line.starts_with("Warning: /var") || line.starts_with("Warning: Redefined") || line.starts_with("Warning: Previously"); - if !is_prolog_redefined_line { - log::error!("{}", line); - } - } - CommandEvent::Terminated(line) => { - log::info!("Terminated {:?}", line); - let main = get_main_window(&handle); - - if let Ok(true) = &splashscreen_clone.is_visible() { - log_error(&splashscreen_clone, "Something went wrong while starting ad4m-executor please check the logs"); - } - - if let Ok(true) = main.is_visible() { - log_error(&main, "There was an error with the AD4M Launcher. Restarting may fix this, otherwise please contact the AD4M team for support."); - } - - log::info!("Terminated {:?}", line); - }, - CommandEvent::Error(line) => log::info!("Error {:?}", line), - _ => log::error!("{:?}", event), + async fn spawn_executor(config: Ad4mConfig, splashscreen_clone: Window, handle: &AppHandle) { + let my_closure = || { + let url = app_url(); + info!("Executor clone on: {:?}", url); + let _ = splashscreen_clone.hide(); + create_tray_message_windows(&handle); + let main = get_main_window(&handle); + main.emit("ready", Payload { message: "ad4m-executor is ready".into() }).unwrap(); + }; + + match rust_executor::run_with_tokio(config.clone()).await { + () => { + my_closure(); + + info!("GraphQL server stopped.") } } + } + + tauri::async_runtime::spawn(async move { + spawn_executor(config.clone(), splashscreen.clone(), &handle).await }); Ok(()) @@ -247,7 +289,7 @@ fn main() { }; }); } - Err(err) => log::error!("Error building the app: {:?}", err), + Err(err) => error!("Error building the app: {:?}", err), } } @@ -261,11 +303,3 @@ fn get_main_window(handle: &AppHandle) -> Window { main.expect("Couldn't get main window right after creating it") } } - -fn log_error(window: &Window, message: &str) { - dialog::message( - Some(window), - "Error", - message - ); -} \ No newline at end of file diff --git a/ui/src-tauri/src/system_tray.rs b/ui/src-tauri/src/system_tray.rs index 8f8f36b94..3f8d199ad 100644 --- a/ui/src-tauri/src/system_tray.rs +++ b/ui/src-tauri/src/system_tray.rs @@ -1,6 +1,5 @@ use crate::config::executor_port_path; use crate::create_main_window; -use crate::util::find_and_kill_processes; use crate::Payload; use std::env; use std::fs::remove_file; @@ -49,10 +48,6 @@ pub fn handle_system_tray_event(app: &AppHandle, event_id: String) { } } "quit" => { - find_and_kill_processes("ad4m-host"); - - find_and_kill_processes("holochain"); - let _ = remove_file(executor_port_path()); app.exit(0); diff --git a/ui/src-tauri/src/util.rs b/ui/src-tauri/src/util.rs index 6a32f4997..5c2cd2a39 100644 --- a/ui/src-tauri/src/util.rs +++ b/ui/src-tauri/src/util.rs @@ -5,10 +5,8 @@ use crate::menu::open_logs_folder; use std::fs::remove_file; use std::fs::File; use std::io::prelude::*; -use std::time::Duration; -use std::time::SystemTime; use sysinfo::Process; -use sysinfo::{ProcessExt, Signal, System, SystemExt}; +use sysinfo::{System, SystemExt}; use tauri::{AppHandle, Manager, WindowBuilder, WindowEvent, WindowUrl, Wry}; use tauri_plugin_positioner::Position; use tauri_plugin_positioner::WindowExt; @@ -26,18 +24,6 @@ pub fn find_port(start_port: u16, end_port: u16) -> u16 { ); } -pub fn find_and_kill_processes(name: &str) { - let processes = System::new_all(); - - for process in processes.processes_by_exact_name(name) { - log::info!("Prosses running: {} {}", process.pid(), process.name()); - - if process.kill_with(Signal::Term) == None { - log::error!("This signal isn't supported on this platform"); - } - } -} - pub fn has_processes_running(name: &str) -> usize { let processes = System::new_all(); let processes_by_name: Vec<&Process> = processes.processes_by_exact_name(name).collect(); diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index 0ae8b9db5..02a6d5e57 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "package": { - "productName": "AD4M", - "version": "0.5.1" + "productName": "ADAM Launcher", + "version": "0.6.0" }, "build": { "distDir": "../dist", @@ -18,9 +18,11 @@ "bundle": { "active": true, "targets": [ + "appimage", "deb", "msi", "dmg", + "app", "updater" ], "identifier": "dev.ad4m.ad4min", @@ -32,9 +34,6 @@ "icons/icon.ico" ], "resources": [], - "externalBin": [ - "bins/ad4m-host" - ], "copyright": "", "category": "DeveloperTool", "shortDescription": "", @@ -42,6 +41,9 @@ "deb": { "depends": [] }, + "appimage": { + "bundleMediaFramework": true + }, "macOS": { "frameworks": [], "minimumSystemVersion": "", @@ -57,7 +59,12 @@ } }, "updater": { - "active": false + "active": true, + "endpoints": [ + "https://launcher-update-worker.perspect3vism.workers.dev/update/{{target}}/{{current_version}}" + ], + "dialog": false, + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEM1OTBGNDkzMkI2MTczMEMKUldRTWMyRXJrL1NReGFTUVBTMjRhQWlEVTFuOHBkcEZwbmEwSG9DdWczeDdtRUdNK3hMMm1GUnoK" }, "allowlist": { "all": true @@ -65,7 +72,7 @@ "windows": [ { "label": "splashscreen", - "title": "AD4M Launcher", + "title": "ADAM Launcher", "width": 1000, "height": 700, "resizable": true, diff --git a/ui/src/components/Connect.tsx b/ui/src/components/Connect.tsx index aa1448612..511c4fd41 100644 --- a/ui/src/components/Connect.tsx +++ b/ui/src/components/Connect.tsx @@ -35,7 +35,7 @@ export function Connect() { setURLError("Invalid websocket URL"); } else { try { - const client = await buildAd4mClient(url!); + const client = await buildAd4mClient(url!, false); const id = setTimeout(() => { resolve(true); @@ -45,7 +45,8 @@ export function Connect() { setLoading(false); }, 2000); - await client.runtime.hcAgentInfos(); + let ad4mInfo = await client.runtime.info(); + console.log("AD4M JS Client built, got info: ", ad4mInfo); clearTimeout(id); diff --git a/ui/src/components/Profile.tsx b/ui/src/components/Profile.tsx index 0890ba763..9568e6a55 100644 --- a/ui/src/components/Profile.tsx +++ b/ui/src/components/Profile.tsx @@ -4,6 +4,8 @@ import { AgentContext } from "../context/AgentContext"; import { invoke } from "@tauri-apps/api"; import { buildAd4mClient } from "../util"; import { fetchProfile } from "./Settings"; +import { checkUpdate, installUpdate } from '@tauri-apps/api/updater' +import { relaunch } from '@tauri-apps/api/process' function Profile() { const { @@ -18,6 +20,7 @@ function Profile() { const [password, setPassword] = useState(""); const [showProfileInfo, setShowProfileInfo] = useState(false); const [lockAgentModalOpen, setLockAgentModalOpen] = useState(false); + const [installUpdateModelOpen, setInstallUpdateModelOpen] = useState(false); const [showPassword, setShowPassword] = useState(false); const [profile, setProfile] = useState({ firstName: "", @@ -27,7 +30,7 @@ function Profile() { const fetchCurrentAgentProfile = useCallback(async () => { if (url) { - const client = await buildAd4mClient(url); + const client = await buildAd4mClient(url, false); const agent = await client!.agent.me(); const profile = await fetchProfile(agent); @@ -55,6 +58,27 @@ function Profile() { setPassword(value); }; + const onCheckUpdate = async () => { + try { + const { shouldUpdate, manifest } = await checkUpdate() + if (shouldUpdate) { + setInstallUpdateModelOpen(true) + } + } catch (error) { + console.log(error) + } + } + + const onInstallUpdate = async () => { + try { + await installUpdate(); + + await relaunch(); + } catch (error) { + console.log(error) + } + } + return (
@@ -70,6 +94,10 @@ function Profile() { Lock Agent + onCheckUpdate()}> + Check updates + + setShowProfileInfo(true)}> Profile details @@ -158,6 +186,32 @@ function Profile() { )} + {installUpdateModelOpen && ( + setInstallUpdateModelOpen(e.target.open)} + > + + + + Install Update + + + Warning: App will restart once the update is installed. + + + + onInstallUpdate()} + loading={loading} + > + Install + + + + )}
); } diff --git a/ui/src/components/Settings.tsx b/ui/src/components/Settings.tsx index e2e8c0b8e..d2492865a 100644 --- a/ui/src/components/Settings.tsx +++ b/ui/src/components/Settings.tsx @@ -91,7 +91,7 @@ const Profile = (props: Props) => { const getTrustedAgents = useCallback(async () => { if (url) { - const client = await buildAd4mClient(url); + const client = await buildAd4mClient(url, false); const trustedAgents = await client!.runtime.getTrustedAgents(); const tempTempAgents = []; @@ -114,7 +114,7 @@ const Profile = (props: Props) => { const fetchCurrentAgentProfile = useCallback(async () => { if (url) { - const client = await buildAd4mClient(url); + const client = await buildAd4mClient(url, false); const agent = await client!.agent.me(); const profile = await fetchProfile(agent); diff --git a/ui/src/util.ts b/ui/src/util.ts index bead6a5d2..e0daf5537 100644 --- a/ui/src/util.ts +++ b/ui/src/util.ts @@ -5,13 +5,13 @@ import { invoke } from "@tauri-apps/api"; import { createClient } from "graphql-ws"; import { version } from "../package.json"; -export async function buildAd4mClient(server: string): Promise { +export async function buildAd4mClient(server: string, subscribe = true): Promise { let token: string = await invoke("request_credential"); - return buildClient(server, token); + return buildClient(server, token, subscribe); } -function buildClient(server: string, token: string): Ad4mClient { +function buildClient(server: string, token: string, subscribe: boolean): Ad4mClient { const wsLink = new GraphQLWsLink( createClient({ url: server, @@ -37,7 +37,7 @@ function buildClient(server: string, token: string): Ad4mClient { }, }); - return new Ad4mClient(apolloClient); + return new Ad4mClient(apolloClient, subscribe); } export function generateLanguageInitials(name: string) { diff --git a/ui/worker/package-lock.json b/ui/worker/package-lock.json new file mode 100644 index 000000000..b667b31f7 --- /dev/null +++ b/ui/worker/package-lock.json @@ -0,0 +1,3050 @@ +{ + "name": "worker", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "worker", + "version": "0.0.0", + "dependencies": { + "@octokit/rest": "^19.0.7" + }, + "devDependencies": { + "@cloudflare/workers-types": "^4.20230228.0", + "@types/node": "^18.14.6", + "typescript": "^4.9.5", + "wrangler": "2.12.0" + } + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", + "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", + "dev": true, + "dependencies": { + "mime": "^3.0.0" + } + }, + "node_modules/@cloudflare/workers-types": { + "version": "4.20230228.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230228.0.tgz", + "integrity": "sha512-tDaqH3DrKmDoe/YrCnzVSqjNH6GnUOOajv2Ztj2h7BPLFyYTb81iCkARgb+G4bpxhn7y4f1KxxDT2+Yp4rt7Hg==", + "dev": true + }, + "node_modules/@esbuild-plugins/node-globals-polyfill": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz", + "integrity": "sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==", + "dev": true, + "peerDependencies": { + "esbuild": "*" + } + }, + "node_modules/@esbuild-plugins/node-modules-polyfill": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz", + "integrity": "sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^4.0.0", + "rollup-plugin-node-polyfills": "^0.2.1" + }, + "peerDependencies": { + "esbuild": "*" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.3.tgz", + "integrity": "sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz", + "integrity": "sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.3.tgz", + "integrity": "sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz", + "integrity": "sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz", + "integrity": "sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz", + "integrity": "sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz", + "integrity": "sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz", + "integrity": "sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz", + "integrity": "sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz", + "integrity": "sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz", + "integrity": "sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz", + "integrity": "sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz", + "integrity": "sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz", + "integrity": "sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz", + "integrity": "sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz", + "integrity": "sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz", + "integrity": "sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz", + "integrity": "sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz", + "integrity": "sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz", + "integrity": "sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz", + "integrity": "sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz", + "integrity": "sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "node_modules/@miniflare/cache": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.12.1.tgz", + "integrity": "sha512-6Pj5avy53qULTa13gWxGTDBuwX0yAzr4Zkzb0ZBh40bcbHp4vRkOk7PvHBoxV0M76JxQDHotGaW+ik510z5Xrg==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "http-cache-semantics": "^4.1.0", + "undici": "5.20.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/cli-parser": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.12.1.tgz", + "integrity": "sha512-iCh4wEyQow8Dha+zpKhjCCXEp6QWbsvE18H5CgeUFT1pX4B+akYIHzdn47Cr5zpuYyjenoL78bAz0IIHIeyeWw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1", + "kleur": "^4.1.4" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/core": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.12.1.tgz", + "integrity": "sha512-729xXL6uoMgtja5J7B2WdWAjFfxb74Pk2QqM3VqkWqY3XNlKWI7+ofvb8S6kI6uFEPGj4ma263uYkEAgsvzBWg==", + "dev": true, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@miniflare/queues": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/watcher": "2.12.1", + "busboy": "^1.6.0", + "dotenv": "^10.0.0", + "kleur": "^4.1.4", + "set-cookie-parser": "^2.4.8", + "undici": "5.20.0", + "urlpattern-polyfill": "^4.0.3" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/d1": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/d1/-/d1-2.12.1.tgz", + "integrity": "sha512-2ldT7xEC7KxoaEJ7nCY9/AB/xwPjbm3mrmpiIspT0b5OgS640Pe9EU4c5bSmzGoUbLvwF+jb+LhLE1QaEbWkBw==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/durable-objects": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.12.1.tgz", + "integrity": "sha512-/n9WIxvHavVUgT+Nf280wNOcmJQBG+eZuqOlORWW9RmXXbAzqzS2Mk2lmRDCzbq3xTXAcsndx6cdarQLNRUzBg==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/storage-memory": "2.12.1", + "undici": "5.20.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/html-rewriter": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.12.1.tgz", + "integrity": "sha512-yezYzGRBxy7d/oomAUEftdnL4fq6YIek82LtQlXgzcdcbBDnkYADj8WqGV41tAI+V2+rjrFEc1RuCXx/I1yISw==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "html-rewriter-wasm": "^0.4.1", + "undici": "5.20.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/http-server": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.12.1.tgz", + "integrity": "sha512-nC6POgDKFHxnyXbKCdR9FGZSsu5frXQUETvSVcoETd5RP+Iws0xZ+XkzVMqiiIZk3ifUC9LzdGUOD0J2PlhHJw==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/web-sockets": "2.12.1", + "kleur": "^4.1.4", + "selfsigned": "^2.0.0", + "undici": "5.20.0", + "ws": "^8.2.2", + "youch": "^2.2.2" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/kv": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.12.1.tgz", + "integrity": "sha512-8h8wLDMEaWaKAqYTwrckOcNjAz52bzDyLmU4t/lh1/AQOE9eSg/T+H6xQCv0fPGrWPeHmG8iXaFI1JQ+CtkcHw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/queues": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/queues/-/queues-2.12.1.tgz", + "integrity": "sha512-L/YJkWWvg1RS3sCB5DLZOsf/kAmkwhvshpl+LmGQT7z/PYXlplbBmuhPwVBXaHqZdYE7063XfTzgAIhVPoo72Q==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/r2": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/r2/-/r2-2.12.1.tgz", + "integrity": "sha512-xp8fSSap6o5xSAWp9BtOGgZ4tuf5iHTqrfbAH66LF151j8y69eQtQJ5pxpSvrDJok/F1VOLGc4ihSLmUqxyXhw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1", + "undici": "5.20.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/runner-vm": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.12.1.tgz", + "integrity": "sha512-pGY/aoQzbvyXOGR6/d3hv5/QsyUXGGbOxAyXdvjlz8h7ZiKOX4dBRS5TUAPS0kb/ofUWCyoYJi8dCVwRGdTYRw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/scheduler": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.12.1.tgz", + "integrity": "sha512-AbOP8YpWNqR/t7zMuTmn6q27USCDBQaYaULRVaNNfCsxMTXAUjYfM85iFvnV9mshw+K0HIEU4zR4Xjd2FeJubg==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "cron-schedule": "^3.0.4" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/shared": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.12.1.tgz", + "integrity": "sha512-N8sHNM5vcvjvO+znQ7Mbqf0FChRlWxy/svUpQf1GGpii9aTXzOTWB+WkFvJrJNx44SUReEGxUAzxpdeWnHahmA==", + "dev": true, + "dependencies": { + "@types/better-sqlite3": "^7.6.0", + "kleur": "^4.1.4", + "npx-import": "^1.1.4", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/sites": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.12.1.tgz", + "integrity": "sha512-LW4r82cfGJvmJFwoBdXfsRcdDggVf8ppjMZGU3zk7xo+u5yD1uHzO2Arf3XbKNiOp7f9WyC/mXxs4zxF605iLA==", + "dev": true, + "dependencies": { + "@miniflare/kv": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/storage-file": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/storage-file": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.12.1.tgz", + "integrity": "sha512-eq5wzBwxQC5GVxBfji9svb9FRdSOlA8D8DTgzL29DDjuOYtG9j8ydOlo0J7/2MB/Gq0HYFUHYWHhrklzzwdKQQ==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1", + "@miniflare/storage-memory": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/storage-memory": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.12.1.tgz", + "integrity": "sha512-E9jbrX0L9N7YIHXj2G4td1EKboVLBdHkwh7RvKEZBwOhxDze5h+jMOou57NIbfC5kLOZPOC1fGXjzpp7xUUE6w==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/watcher": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.12.1.tgz", + "integrity": "sha512-3IG/6g38id5ppbZHB/gMfEvoIEFYdmTTLRsHaPNyWIk/r3LMhHLluVsMcs+Lr/fphkPk6Diou4cBLD2GeeoP7A==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/web-sockets": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.12.1.tgz", + "integrity": "sha512-Z+zqZqhVdrbmTQf+ETP5H1TPdXC2tUiYPiHRLWTHUks6VVkuwnUtIKxNPBEBXjCjKYYEm8VLclUAt+0yTucLWA==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "undici": "5.20.0", + "ws": "^8.2.2" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@octokit/auth-token": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", + "dependencies": { + "@octokit/types": "^9.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/core": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", + "dependencies": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/endpoint": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/graphql": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", + "dependencies": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", + "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", + "dependencies": { + "@octokit/types": "^9.0.0" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=4" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", + "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.3.1" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/request": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/rest": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", + "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", + "dependencies": { + "@octokit/core": "^4.1.0", + "@octokit/plugin-paginate-rest": "^6.0.0", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^7.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/types": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", + "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", + "dependencies": { + "@octokit/openapi-types": "^16.0.0" + } + }, + "node_modules/@types/better-sqlite3": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz", + "integrity": "sha512-YS64N9SNDT/NAvou3QNdzAu3E2om/W/0dhORimtPGLef+zSK5l1vDzfsWb4xgXOgfhtOI5ZDTRxnvRPb22AIVQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", + "dev": true + }, + "node_modules/@types/stack-trace": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz", + "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blake3-wasm": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cron-schedule": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz", + "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/esbuild": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz", + "integrity": "sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.3", + "@esbuild/android-arm64": "0.16.3", + "@esbuild/android-x64": "0.16.3", + "@esbuild/darwin-arm64": "0.16.3", + "@esbuild/darwin-x64": "0.16.3", + "@esbuild/freebsd-arm64": "0.16.3", + "@esbuild/freebsd-x64": "0.16.3", + "@esbuild/linux-arm": "0.16.3", + "@esbuild/linux-arm64": "0.16.3", + "@esbuild/linux-ia32": "0.16.3", + "@esbuild/linux-loong64": "0.16.3", + "@esbuild/linux-mips64el": "0.16.3", + "@esbuild/linux-ppc64": "0.16.3", + "@esbuild/linux-riscv64": "0.16.3", + "@esbuild/linux-s390x": "0.16.3", + "@esbuild/linux-x64": "0.16.3", + "@esbuild/netbsd-x64": "0.16.3", + "@esbuild/openbsd-x64": "0.16.3", + "@esbuild/sunos-x64": "0.16.3", + "@esbuild/win32-arm64": "0.16.3", + "@esbuild/win32-ia32": "0.16.3", + "@esbuild/win32-x64": "0.16.3" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-rewriter-wasm": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz", + "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/miniflare": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.12.1.tgz", + "integrity": "sha512-pym6gzg8AQZ1NRChRV1hC4K55N49wndoaDEVRMvZPJrFsmGkNnXkWmlvmZ7SB3BN5UkP5MZwKhLqiJ49Ry8tFA==", + "dev": true, + "dependencies": { + "@miniflare/cache": "2.12.1", + "@miniflare/cli-parser": "2.12.1", + "@miniflare/core": "2.12.1", + "@miniflare/d1": "2.12.1", + "@miniflare/durable-objects": "2.12.1", + "@miniflare/html-rewriter": "2.12.1", + "@miniflare/http-server": "2.12.1", + "@miniflare/kv": "2.12.1", + "@miniflare/queues": "2.12.1", + "@miniflare/r2": "2.12.1", + "@miniflare/runner-vm": "2.12.1", + "@miniflare/scheduler": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/sites": "2.12.1", + "@miniflare/storage-file": "2.12.1", + "@miniflare/storage-memory": "2.12.1", + "@miniflare/web-sockets": "2.12.1", + "kleur": "^4.1.4", + "semiver": "^1.1.0", + "source-map-support": "^0.5.20", + "undici": "5.20.0" + }, + "bin": { + "miniflare": "bootstrap.js" + }, + "engines": { + "node": ">=16.13" + }, + "peerDependencies": { + "@miniflare/storage-redis": "2.12.1", + "cron-schedule": "^3.0.4", + "ioredis": "^4.27.9" + }, + "peerDependenciesMeta": { + "@miniflare/storage-redis": { + "optional": true + }, + "cron-schedule": { + "optional": true + }, + "ioredis": { + "optional": true + } + } + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npx-import": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz", + "integrity": "sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==", + "dev": true, + "dependencies": { + "execa": "^6.1.0", + "parse-package-name": "^1.0.0", + "semver": "^7.3.7", + "validate-npm-package-name": "^4.0.0" + } + }, + "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==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-package-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz", + "integrity": "sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup-plugin-inject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", + "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1", + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + } + }, + "node_modules/rollup-plugin-node-polyfills": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", + "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", + "dev": true, + "dependencies": { + "rollup-plugin-inject": "^3.0.0" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semiver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undici": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", + "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", + "dev": true, + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=12.18" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "node_modules/urlpattern-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz", + "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==", + "dev": true + }, + "node_modules/validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrangler": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.12.0.tgz", + "integrity": "sha512-yAqv3JbJqkB1oaciI2CGEiEscQ98BXaFN+Z7VbWuepMqVL2UV2wUjA2mJLjWuoZOwSmC74MsDzZ+5hzDs/2Nkg==", + "dev": true, + "dependencies": { + "@cloudflare/kv-asset-handler": "^0.2.0", + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", + "@esbuild-plugins/node-modules-polyfill": "^0.1.4", + "@miniflare/core": "2.12.1", + "@miniflare/d1": "2.12.1", + "@miniflare/durable-objects": "2.12.1", + "blake3-wasm": "^2.1.5", + "chokidar": "^3.5.3", + "esbuild": "0.16.3", + "miniflare": "2.12.1", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.2.0", + "selfsigned": "^2.0.1", + "source-map": "^0.7.4", + "xxhash-wasm": "^1.0.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" + }, + "engines": { + "node": ">=16.13.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "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/xxhash-wasm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", + "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/youch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz", + "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==", + "dev": true, + "dependencies": { + "@types/stack-trace": "0.0.29", + "cookie": "^0.4.1", + "mustache": "^4.2.0", + "stack-trace": "0.0.10" + } + } + }, + "dependencies": { + "@cloudflare/kv-asset-handler": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", + "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", + "dev": true, + "requires": { + "mime": "^3.0.0" + } + }, + "@cloudflare/workers-types": { + "version": "4.20230228.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230228.0.tgz", + "integrity": "sha512-tDaqH3DrKmDoe/YrCnzVSqjNH6GnUOOajv2Ztj2h7BPLFyYTb81iCkARgb+G4bpxhn7y4f1KxxDT2+Yp4rt7Hg==", + "dev": true + }, + "@esbuild-plugins/node-globals-polyfill": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz", + "integrity": "sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==", + "dev": true, + "requires": {} + }, + "@esbuild-plugins/node-modules-polyfill": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz", + "integrity": "sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==", + "dev": true, + "requires": { + "escape-string-regexp": "^4.0.0", + "rollup-plugin-node-polyfills": "^0.2.1" + } + }, + "@esbuild/android-arm": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.3.tgz", + "integrity": "sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz", + "integrity": "sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.3.tgz", + "integrity": "sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz", + "integrity": "sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz", + "integrity": "sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz", + "integrity": "sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz", + "integrity": "sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz", + "integrity": "sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz", + "integrity": "sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz", + "integrity": "sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz", + "integrity": "sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz", + "integrity": "sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz", + "integrity": "sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz", + "integrity": "sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz", + "integrity": "sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz", + "integrity": "sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz", + "integrity": "sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz", + "integrity": "sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz", + "integrity": "sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz", + "integrity": "sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz", + "integrity": "sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz", + "integrity": "sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==", + "dev": true, + "optional": true + }, + "@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "@miniflare/cache": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.12.1.tgz", + "integrity": "sha512-6Pj5avy53qULTa13gWxGTDBuwX0yAzr4Zkzb0ZBh40bcbHp4vRkOk7PvHBoxV0M76JxQDHotGaW+ik510z5Xrg==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "http-cache-semantics": "^4.1.0", + "undici": "5.20.0" + } + }, + "@miniflare/cli-parser": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.12.1.tgz", + "integrity": "sha512-iCh4wEyQow8Dha+zpKhjCCXEp6QWbsvE18H5CgeUFT1pX4B+akYIHzdn47Cr5zpuYyjenoL78bAz0IIHIeyeWw==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1", + "kleur": "^4.1.4" + } + }, + "@miniflare/core": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.12.1.tgz", + "integrity": "sha512-729xXL6uoMgtja5J7B2WdWAjFfxb74Pk2QqM3VqkWqY3XNlKWI7+ofvb8S6kI6uFEPGj4ma263uYkEAgsvzBWg==", + "dev": true, + "requires": { + "@iarna/toml": "^2.2.5", + "@miniflare/queues": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/watcher": "2.12.1", + "busboy": "^1.6.0", + "dotenv": "^10.0.0", + "kleur": "^4.1.4", + "set-cookie-parser": "^2.4.8", + "undici": "5.20.0", + "urlpattern-polyfill": "^4.0.3" + } + }, + "@miniflare/d1": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/d1/-/d1-2.12.1.tgz", + "integrity": "sha512-2ldT7xEC7KxoaEJ7nCY9/AB/xwPjbm3mrmpiIspT0b5OgS640Pe9EU4c5bSmzGoUbLvwF+jb+LhLE1QaEbWkBw==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/durable-objects": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.12.1.tgz", + "integrity": "sha512-/n9WIxvHavVUgT+Nf280wNOcmJQBG+eZuqOlORWW9RmXXbAzqzS2Mk2lmRDCzbq3xTXAcsndx6cdarQLNRUzBg==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/storage-memory": "2.12.1", + "undici": "5.20.0" + } + }, + "@miniflare/html-rewriter": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.12.1.tgz", + "integrity": "sha512-yezYzGRBxy7d/oomAUEftdnL4fq6YIek82LtQlXgzcdcbBDnkYADj8WqGV41tAI+V2+rjrFEc1RuCXx/I1yISw==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "html-rewriter-wasm": "^0.4.1", + "undici": "5.20.0" + } + }, + "@miniflare/http-server": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.12.1.tgz", + "integrity": "sha512-nC6POgDKFHxnyXbKCdR9FGZSsu5frXQUETvSVcoETd5RP+Iws0xZ+XkzVMqiiIZk3ifUC9LzdGUOD0J2PlhHJw==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/web-sockets": "2.12.1", + "kleur": "^4.1.4", + "selfsigned": "^2.0.0", + "undici": "5.20.0", + "ws": "^8.2.2", + "youch": "^2.2.2" + } + }, + "@miniflare/kv": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.12.1.tgz", + "integrity": "sha512-8h8wLDMEaWaKAqYTwrckOcNjAz52bzDyLmU4t/lh1/AQOE9eSg/T+H6xQCv0fPGrWPeHmG8iXaFI1JQ+CtkcHw==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/queues": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/queues/-/queues-2.12.1.tgz", + "integrity": "sha512-L/YJkWWvg1RS3sCB5DLZOsf/kAmkwhvshpl+LmGQT7z/PYXlplbBmuhPwVBXaHqZdYE7063XfTzgAIhVPoo72Q==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/r2": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/r2/-/r2-2.12.1.tgz", + "integrity": "sha512-xp8fSSap6o5xSAWp9BtOGgZ4tuf5iHTqrfbAH66LF151j8y69eQtQJ5pxpSvrDJok/F1VOLGc4ihSLmUqxyXhw==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1", + "undici": "5.20.0" + } + }, + "@miniflare/runner-vm": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.12.1.tgz", + "integrity": "sha512-pGY/aoQzbvyXOGR6/d3hv5/QsyUXGGbOxAyXdvjlz8h7ZiKOX4dBRS5TUAPS0kb/ofUWCyoYJi8dCVwRGdTYRw==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/scheduler": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.12.1.tgz", + "integrity": "sha512-AbOP8YpWNqR/t7zMuTmn6q27USCDBQaYaULRVaNNfCsxMTXAUjYfM85iFvnV9mshw+K0HIEU4zR4Xjd2FeJubg==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "cron-schedule": "^3.0.4" + } + }, + "@miniflare/shared": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.12.1.tgz", + "integrity": "sha512-N8sHNM5vcvjvO+znQ7Mbqf0FChRlWxy/svUpQf1GGpii9aTXzOTWB+WkFvJrJNx44SUReEGxUAzxpdeWnHahmA==", + "dev": true, + "requires": { + "@types/better-sqlite3": "^7.6.0", + "kleur": "^4.1.4", + "npx-import": "^1.1.4", + "picomatch": "^2.3.1" + } + }, + "@miniflare/sites": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.12.1.tgz", + "integrity": "sha512-LW4r82cfGJvmJFwoBdXfsRcdDggVf8ppjMZGU3zk7xo+u5yD1uHzO2Arf3XbKNiOp7f9WyC/mXxs4zxF605iLA==", + "dev": true, + "requires": { + "@miniflare/kv": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/storage-file": "2.12.1" + } + }, + "@miniflare/storage-file": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.12.1.tgz", + "integrity": "sha512-eq5wzBwxQC5GVxBfji9svb9FRdSOlA8D8DTgzL29DDjuOYtG9j8ydOlo0J7/2MB/Gq0HYFUHYWHhrklzzwdKQQ==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1", + "@miniflare/storage-memory": "2.12.1" + } + }, + "@miniflare/storage-memory": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.12.1.tgz", + "integrity": "sha512-E9jbrX0L9N7YIHXj2G4td1EKboVLBdHkwh7RvKEZBwOhxDze5h+jMOou57NIbfC5kLOZPOC1fGXjzpp7xUUE6w==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/watcher": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.12.1.tgz", + "integrity": "sha512-3IG/6g38id5ppbZHB/gMfEvoIEFYdmTTLRsHaPNyWIk/r3LMhHLluVsMcs+Lr/fphkPk6Diou4cBLD2GeeoP7A==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/web-sockets": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.12.1.tgz", + "integrity": "sha512-Z+zqZqhVdrbmTQf+ETP5H1TPdXC2tUiYPiHRLWTHUks6VVkuwnUtIKxNPBEBXjCjKYYEm8VLclUAt+0yTucLWA==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "undici": "5.20.0", + "ws": "^8.2.2" + } + }, + "@octokit/auth-token": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", + "requires": { + "@octokit/types": "^9.0.0" + } + }, + "@octokit/core": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", + "requires": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/endpoint": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", + "requires": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/graphql": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", + "requires": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==" + }, + "@octokit/plugin-paginate-rest": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", + "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", + "requires": { + "@octokit/types": "^9.0.0" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "requires": {} + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", + "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.3.1" + } + }, + "@octokit/request": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", + "requires": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/rest": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", + "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", + "requires": { + "@octokit/core": "^4.1.0", + "@octokit/plugin-paginate-rest": "^6.0.0", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^7.0.0" + } + }, + "@octokit/types": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", + "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", + "requires": { + "@octokit/openapi-types": "^16.0.0" + } + }, + "@types/better-sqlite3": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz", + "integrity": "sha512-YS64N9SNDT/NAvou3QNdzAu3E2om/W/0dhORimtPGLef+zSK5l1vDzfsWb4xgXOgfhtOI5ZDTRxnvRPb22AIVQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", + "dev": true + }, + "@types/stack-trace": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz", + "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "blake3-wasm": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "requires": { + "semver": "^7.0.0" + } + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "requires": { + "streamsearch": "^1.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + } + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "cron-schedule": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz", + "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, + "esbuild": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz", + "integrity": "sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.16.3", + "@esbuild/android-arm64": "0.16.3", + "@esbuild/android-x64": "0.16.3", + "@esbuild/darwin-arm64": "0.16.3", + "@esbuild/darwin-x64": "0.16.3", + "@esbuild/freebsd-arm64": "0.16.3", + "@esbuild/freebsd-x64": "0.16.3", + "@esbuild/linux-arm": "0.16.3", + "@esbuild/linux-arm64": "0.16.3", + "@esbuild/linux-ia32": "0.16.3", + "@esbuild/linux-loong64": "0.16.3", + "@esbuild/linux-mips64el": "0.16.3", + "@esbuild/linux-ppc64": "0.16.3", + "@esbuild/linux-riscv64": "0.16.3", + "@esbuild/linux-s390x": "0.16.3", + "@esbuild/linux-x64": "0.16.3", + "@esbuild/netbsd-x64": "0.16.3", + "@esbuild/openbsd-x64": "0.16.3", + "@esbuild/sunos-x64": "0.16.3", + "@esbuild/win32-arm64": "0.16.3", + "@esbuild/win32-ia32": "0.16.3", + "@esbuild/win32-x64": "0.16.3" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "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 + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "html-rewriter-wasm": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz", + "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "miniflare": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.12.1.tgz", + "integrity": "sha512-pym6gzg8AQZ1NRChRV1hC4K55N49wndoaDEVRMvZPJrFsmGkNnXkWmlvmZ7SB3BN5UkP5MZwKhLqiJ49Ry8tFA==", + "dev": true, + "requires": { + "@miniflare/cache": "2.12.1", + "@miniflare/cli-parser": "2.12.1", + "@miniflare/core": "2.12.1", + "@miniflare/d1": "2.12.1", + "@miniflare/durable-objects": "2.12.1", + "@miniflare/html-rewriter": "2.12.1", + "@miniflare/http-server": "2.12.1", + "@miniflare/kv": "2.12.1", + "@miniflare/queues": "2.12.1", + "@miniflare/r2": "2.12.1", + "@miniflare/runner-vm": "2.12.1", + "@miniflare/scheduler": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/sites": "2.12.1", + "@miniflare/storage-file": "2.12.1", + "@miniflare/storage-memory": "2.12.1", + "@miniflare/web-sockets": "2.12.1", + "kleur": "^4.1.4", + "semiver": "^1.1.0", + "source-map-support": "^0.5.20", + "undici": "5.20.0" + } + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + } + } + }, + "npx-import": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz", + "integrity": "sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==", + "dev": true, + "requires": { + "execa": "^6.1.0", + "parse-package-name": "^1.0.0", + "semver": "^7.3.7", + "validate-npm-package-name": "^4.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "parse-package-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz", + "integrity": "sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rollup-plugin-inject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", + "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1", + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-node-polyfills": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", + "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", + "dev": true, + "requires": { + "rollup-plugin-inject": "^3.0.0" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + } + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "requires": { + "node-forge": "^1" + } + }, + "semiver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", + "dev": true + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "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 + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "undici": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", + "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", + "dev": true, + "requires": { + "busboy": "^1.6.0" + } + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "urlpattern-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz", + "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==", + "dev": true + }, + "validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dev": true, + "requires": { + "builtins": "^5.0.0" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrangler": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.12.0.tgz", + "integrity": "sha512-yAqv3JbJqkB1oaciI2CGEiEscQ98BXaFN+Z7VbWuepMqVL2UV2wUjA2mJLjWuoZOwSmC74MsDzZ+5hzDs/2Nkg==", + "dev": true, + "requires": { + "@cloudflare/kv-asset-handler": "^0.2.0", + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", + "@esbuild-plugins/node-modules-polyfill": "^0.1.4", + "@miniflare/core": "2.12.1", + "@miniflare/d1": "2.12.1", + "@miniflare/durable-objects": "2.12.1", + "blake3-wasm": "^2.1.5", + "chokidar": "^3.5.3", + "esbuild": "0.16.3", + "fsevents": "~2.3.2", + "miniflare": "2.12.1", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.2.0", + "selfsigned": "^2.0.1", + "source-map": "^0.7.4", + "xxhash-wasm": "^1.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "requires": {} + }, + "xxhash-wasm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", + "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "youch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz", + "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==", + "dev": true, + "requires": { + "@types/stack-trace": "0.0.29", + "cookie": "^0.4.1", + "mustache": "^4.2.0", + "stack-trace": "0.0.10" + } + } + } +} diff --git a/ui/worker/package.json b/ui/worker/package.json new file mode 100644 index 000000000..004402c93 --- /dev/null +++ b/ui/worker/package.json @@ -0,0 +1,18 @@ +{ + "name": "worker", + "version": "0.0.0", + "devDependencies": { + "@cloudflare/workers-types": "^4.20230228.0", + "@types/node": "^18.14.6", + "typescript": "^4.9.5", + "wrangler": "2.12.0" + }, + "private": true, + "scripts": { + "start": "wrangler dev", + "deploy": "wrangler publish" + }, + "dependencies": { + "@octokit/rest": "^19.0.7" + } +} diff --git a/ui/worker/src/index.ts b/ui/worker/src/index.ts new file mode 100644 index 000000000..fdfbfc908 --- /dev/null +++ b/ui/worker/src/index.ts @@ -0,0 +1,103 @@ +/** + * Welcome to Cloudflare Workers! This is your first worker. + * + * - Run `wrangler dev src/index.ts` in your terminal to start a development server + * - Open a browser tab at http://localhost:8787/ to see your worker in action + * - Run `wrangler publish src/index.ts --name my-worker` to publish your worker + * + * Learn more at https://developers.cloudflare.com/workers/ + */ + +import { Octokit } from "@octokit/rest"; + +export interface Env { + // Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/ + // MY_KV_NAMESPACE: KVNamespace; + // + // Example binding to Durable Object. Learn more at https://developers.cloudflare.com/workers/runtime-apis/durable-objects/ + // MY_DURABLE_OBJECT: DurableObjectNamespace; + // + // Example binding to R2. Learn more at https://developers.cloudflare.com/workers/runtime-apis/r2/ + // MY_BUCKET: R2Bucket; + // + // Example binding to a Service. Learn more at https://developers.cloudflare.com/workers/runtime-apis/service-bindings/ + // MY_SERVICE: Fetcher; +} + +export default { + async fetch( + request: Request, + env: Env, + ctx: ExecutionContext + ): Promise { + try { + const octokit = new Octokit(); + + const { data } = await octokit.rest.repos.getLatestRelease({ + owner: 'coasys', + repo: 'ad4m', + }); + + const [_, __, ___, ____,target, version] = request.url.split('/') + + console.log(target, version) + + if (target && version) { + if (target === 'darwin' || target === 'macos') { + const updates = data.assets.filter((asset: any) => asset.name.includes('dmg')); + const update = updates.find((asset: any) => !asset.name.includes('.sig')) + const sig = updates.find((asset: any) => asset.name.includes('.sig')) + + return Response.json({ + version: data['tag_name'], + url: update.browser_download_url, + signature: await getSignature(sig?.browser_download_url), + }) + } else if (target === 'linux') { + const updates = data.assets.filter((asset: any) => asset.name.includes('deb')); + const update = updates.find((asset: any) => !asset.name.includes('.sig')) + const sig = updates.find((asset: any) => asset.name.includes('.sig')) + + return Response.json({ + version: data['tag_name'], + url: update.browser_download_url, + signature: await getSignature(sig?.browser_download_url), + }) + } else if (target === 'windows') { + const updates = data.assets.filter((asset: any) => asset.name.includes('msi')); + const update = updates.find((asset: any) => !asset.name.includes('.sig')) + const sig = updates.find((asset: any) => asset.name.includes('.sig')) + + return Response.json({ + version: data['tag_name'], + url: update.browser_download_url, + signature: await getSignature(sig?.browser_download_url), + }) + } + + return Response.json({ + error: "invalid_platform", + message: "The specified platform is not valid" + }, { status: 500}) + } else { + return new Response("", {status: 404}) + } + } catch (e: any) { + return new Response(e.toString(), {status: 500}) + } + }, +}; + +const getSignature = async (url: string) => { + let response = await fetch(url, { redirect: 'follow' }); + + let { readable, writable } = new TransformStream(); + + await response.body!.pipeTo(writable); + + const reader = readable.getReader(); + + const uint8array = await reader.read() + + return new TextDecoder().decode(uint8array.value) +} \ No newline at end of file diff --git a/ui/worker/tsconfig.json b/ui/worker/tsconfig.json new file mode 100644 index 000000000..1a44b9b51 --- /dev/null +++ b/ui/worker/tsconfig.json @@ -0,0 +1,106 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Projects */ + // "incremental": true, /* Enable incremental compilation */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2021" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + "lib": [ + "es2021" + ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, + "jsx": "react" /* Specify what JSX code is generated. */, + // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ + // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + + /* Modules */ + "module": "es2022" /* Specify what module code is generated. */, + // "rootDir": "./", /* Specify the root folder within your source files. */ + "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + "types": [ + "@cloudflare/workers-types", + "vitest" + ] /* Specify type package names to be included without being referenced in a source file. */, + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + "resolveJsonModule": true /* Enable importing .json files */, + // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */, + "checkJs": false /* Enable error reporting in type-checked JavaScript files. */, + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + "noEmit": true /* Disable emitting files from a compilation. */, + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + "isolatedModules": true /* Ensure that each file can be safely transpiled without relying on other imports. */, + "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, + // "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + + /* Type Checking */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ + // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ + // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} diff --git a/ui/worker/wrangler.toml b/ui/worker/wrangler.toml new file mode 100644 index 000000000..9feaea8d2 --- /dev/null +++ b/ui/worker/wrangler.toml @@ -0,0 +1,4 @@ +name = "launcher-update-worker" +main = "src/index.ts" +compatibility_date = "2023-03-06" +node_compat = true \ No newline at end of file diff --git a/ui/worker/yarn.lock b/ui/worker/yarn.lock new file mode 100644 index 000000000..2c1ba7d53 --- /dev/null +++ b/ui/worker/yarn.lock @@ -0,0 +1,1017 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@cloudflare/kv-asset-handler@^0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz" + integrity sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A== + dependencies: + mime "^3.0.0" + +"@cloudflare/workers-types@^4.20230228.0": + version "4.20230228.0" + resolved "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230228.0.tgz" + integrity sha512-tDaqH3DrKmDoe/YrCnzVSqjNH6GnUOOajv2Ztj2h7BPLFyYTb81iCkARgb+G4bpxhn7y4f1KxxDT2+Yp4rt7Hg== + +"@esbuild-plugins/node-globals-polyfill@^0.1.1": + version "0.1.1" + resolved "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz" + integrity sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg== + +"@esbuild-plugins/node-modules-polyfill@^0.1.4": + version "0.1.4" + resolved "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz" + integrity sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg== + dependencies: + escape-string-regexp "^4.0.0" + rollup-plugin-node-polyfills "^0.2.1" + +"@esbuild/android-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz#6af6d16be6d534d776a51fc215bfd81a68906d2c" + integrity sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg== + +"@esbuild/android-arm@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.3.tgz#2a091222f3b1928e3246fb3c5202eaca88baab67" + integrity sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA== + +"@esbuild/android-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.3.tgz#a6d749c58b022d371dc40d50ac1bb4aebd1eb953" + integrity sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ== + +"@esbuild/darwin-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz#92d1826ed2f21dcac5830b70d7215c6afbb744e2" + integrity sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw== + +"@esbuild/darwin-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz#7fc3570c2b16e9ff4fc178593a0a4adb1ae8ea57" + integrity sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ== + +"@esbuild/freebsd-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz#16735ce16f8c9a4e7289e9e259aa01a8d9874307" + integrity sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw== + +"@esbuild/freebsd-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz#f4edd1464cb072799ed6b8ab5178478e71c13459" + integrity sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug== + +"@esbuild/linux-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz#4b7ae6fe3618d9a40d6ca39c6edc991ac1447203" + integrity sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ== + +"@esbuild/linux-arm@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz#4b3e9f849822e16a76a70844c4db68075b259a58" + integrity sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ== + +"@esbuild/linux-ia32@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz#2ff3936b91bfff62f9ecf7f6411ef399b29ed22d" + integrity sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA== + +"@esbuild/linux-loong64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz#ff8aa59f49d9ccbc1ff952ba1f5cd01a534562df" + integrity sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw== + +"@esbuild/linux-mips64el@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz#5dd5e118071c3912df69beedbfd11fb117f0fe5e" + integrity sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw== + +"@esbuild/linux-ppc64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz#36c62e24eae7fa3f0d921506da8fc1e6098a1364" + integrity sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q== + +"@esbuild/linux-riscv64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz#f0fec8e7affb5bcc817fefc61a21cbb95539e393" + integrity sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ== + +"@esbuild/linux-s390x@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz#22e10edd6e91f53c2e1f60e46abd453d7794409b" + integrity sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ== + +"@esbuild/linux-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz#38388b73fd9eebe45b073d7d8099b9c2e54f7139" + integrity sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w== + +"@esbuild/netbsd-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz#e0270569567f1530b8dbe6d11d5b4930b9cc71ae" + integrity sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA== + +"@esbuild/openbsd-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz#3b16642d443848bca605f33ee3978a1890911e6d" + integrity sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg== + +"@esbuild/sunos-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz#a838f247867380f0ae25ce1936dc5ab6f57b7734" + integrity sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw== + +"@esbuild/win32-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz#bedd9bef5fb41f89ce2599f1761973cf6d6a67b6" + integrity sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg== + +"@esbuild/win32-ia32@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz#49800aa812d8cc35ceef61e8d3b01224684cc0b1" + integrity sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ== + +"@esbuild/win32-x64@0.16.3": + version "0.16.3" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz" + integrity sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow== + +"@iarna/toml@^2.2.5": + version "2.2.5" + resolved "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz" + integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== + +"@miniflare/cache@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/cache/-/cache-2.12.1.tgz" + integrity sha512-6Pj5avy53qULTa13gWxGTDBuwX0yAzr4Zkzb0ZBh40bcbHp4vRkOk7PvHBoxV0M76JxQDHotGaW+ik510z5Xrg== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + http-cache-semantics "^4.1.0" + undici "5.20.0" + +"@miniflare/cli-parser@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.12.1.tgz" + integrity sha512-iCh4wEyQow8Dha+zpKhjCCXEp6QWbsvE18H5CgeUFT1pX4B+akYIHzdn47Cr5zpuYyjenoL78bAz0IIHIeyeWw== + dependencies: + "@miniflare/shared" "2.12.1" + kleur "^4.1.4" + +"@miniflare/core@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/core/-/core-2.12.1.tgz" + integrity sha512-729xXL6uoMgtja5J7B2WdWAjFfxb74Pk2QqM3VqkWqY3XNlKWI7+ofvb8S6kI6uFEPGj4ma263uYkEAgsvzBWg== + dependencies: + "@iarna/toml" "^2.2.5" + "@miniflare/queues" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/watcher" "2.12.1" + busboy "^1.6.0" + dotenv "^10.0.0" + kleur "^4.1.4" + set-cookie-parser "^2.4.8" + undici "5.20.0" + urlpattern-polyfill "^4.0.3" + +"@miniflare/d1@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/d1/-/d1-2.12.1.tgz" + integrity sha512-2ldT7xEC7KxoaEJ7nCY9/AB/xwPjbm3mrmpiIspT0b5OgS640Pe9EU4c5bSmzGoUbLvwF+jb+LhLE1QaEbWkBw== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + +"@miniflare/durable-objects@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.12.1.tgz" + integrity sha512-/n9WIxvHavVUgT+Nf280wNOcmJQBG+eZuqOlORWW9RmXXbAzqzS2Mk2lmRDCzbq3xTXAcsndx6cdarQLNRUzBg== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/storage-memory" "2.12.1" + undici "5.20.0" + +"@miniflare/html-rewriter@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.12.1.tgz" + integrity sha512-yezYzGRBxy7d/oomAUEftdnL4fq6YIek82LtQlXgzcdcbBDnkYADj8WqGV41tAI+V2+rjrFEc1RuCXx/I1yISw== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + html-rewriter-wasm "^0.4.1" + undici "5.20.0" + +"@miniflare/http-server@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.12.1.tgz" + integrity sha512-nC6POgDKFHxnyXbKCdR9FGZSsu5frXQUETvSVcoETd5RP+Iws0xZ+XkzVMqiiIZk3ifUC9LzdGUOD0J2PlhHJw== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/web-sockets" "2.12.1" + kleur "^4.1.4" + selfsigned "^2.0.0" + undici "5.20.0" + ws "^8.2.2" + youch "^2.2.2" + +"@miniflare/kv@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/kv/-/kv-2.12.1.tgz" + integrity sha512-8h8wLDMEaWaKAqYTwrckOcNjAz52bzDyLmU4t/lh1/AQOE9eSg/T+H6xQCv0fPGrWPeHmG8iXaFI1JQ+CtkcHw== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/queues@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/queues/-/queues-2.12.1.tgz" + integrity sha512-L/YJkWWvg1RS3sCB5DLZOsf/kAmkwhvshpl+LmGQT7z/PYXlplbBmuhPwVBXaHqZdYE7063XfTzgAIhVPoo72Q== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/r2@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/r2/-/r2-2.12.1.tgz" + integrity sha512-xp8fSSap6o5xSAWp9BtOGgZ4tuf5iHTqrfbAH66LF151j8y69eQtQJ5pxpSvrDJok/F1VOLGc4ihSLmUqxyXhw== + dependencies: + "@miniflare/shared" "2.12.1" + undici "5.20.0" + +"@miniflare/runner-vm@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.12.1.tgz" + integrity sha512-pGY/aoQzbvyXOGR6/d3hv5/QsyUXGGbOxAyXdvjlz8h7ZiKOX4dBRS5TUAPS0kb/ofUWCyoYJi8dCVwRGdTYRw== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/scheduler@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.12.1.tgz" + integrity sha512-AbOP8YpWNqR/t7zMuTmn6q27USCDBQaYaULRVaNNfCsxMTXAUjYfM85iFvnV9mshw+K0HIEU4zR4Xjd2FeJubg== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + cron-schedule "^3.0.4" + +"@miniflare/shared@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/shared/-/shared-2.12.1.tgz" + integrity sha512-N8sHNM5vcvjvO+znQ7Mbqf0FChRlWxy/svUpQf1GGpii9aTXzOTWB+WkFvJrJNx44SUReEGxUAzxpdeWnHahmA== + dependencies: + "@types/better-sqlite3" "^7.6.0" + kleur "^4.1.4" + npx-import "^1.1.4" + picomatch "^2.3.1" + +"@miniflare/sites@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/sites/-/sites-2.12.1.tgz" + integrity sha512-LW4r82cfGJvmJFwoBdXfsRcdDggVf8ppjMZGU3zk7xo+u5yD1uHzO2Arf3XbKNiOp7f9WyC/mXxs4zxF605iLA== + dependencies: + "@miniflare/kv" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/storage-file" "2.12.1" + +"@miniflare/storage-file@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.12.1.tgz" + integrity sha512-eq5wzBwxQC5GVxBfji9svb9FRdSOlA8D8DTgzL29DDjuOYtG9j8ydOlo0J7/2MB/Gq0HYFUHYWHhrklzzwdKQQ== + dependencies: + "@miniflare/shared" "2.12.1" + "@miniflare/storage-memory" "2.12.1" + +"@miniflare/storage-memory@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.12.1.tgz" + integrity sha512-E9jbrX0L9N7YIHXj2G4td1EKboVLBdHkwh7RvKEZBwOhxDze5h+jMOou57NIbfC5kLOZPOC1fGXjzpp7xUUE6w== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/watcher@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.12.1.tgz" + integrity sha512-3IG/6g38id5ppbZHB/gMfEvoIEFYdmTTLRsHaPNyWIk/r3LMhHLluVsMcs+Lr/fphkPk6Diou4cBLD2GeeoP7A== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/web-sockets@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.12.1.tgz" + integrity sha512-Z+zqZqhVdrbmTQf+ETP5H1TPdXC2tUiYPiHRLWTHUks6VVkuwnUtIKxNPBEBXjCjKYYEm8VLclUAt+0yTucLWA== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + undici "5.20.0" + ws "^8.2.2" + +"@octokit/auth-token@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz" + integrity sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA== + dependencies: + "@octokit/types" "^9.0.0" + +"@octokit/core@^4.1.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz" + integrity sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^7.0.0": + version "7.0.5" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz" + integrity sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA== + dependencies: + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^5.0.0": + version "5.0.5" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz" + integrity sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ== + dependencies: + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^16.0.0": + version "16.0.0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz" + integrity sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA== + +"@octokit/plugin-paginate-rest@^6.0.0": + version "6.0.0" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz" + integrity sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw== + dependencies: + "@octokit/types" "^9.0.0" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^7.0.0": + version "7.0.1" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz" + integrity sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA== + dependencies: + "@octokit/types" "^9.0.0" + deprecation "^2.3.1" + +"@octokit/request-error@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz" + integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== + dependencies: + "@octokit/types" "^9.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^6.0.0": + version "6.2.3" + resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz" + integrity sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA== + dependencies: + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@^19.0.7": + version "19.0.7" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz" + integrity sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA== + dependencies: + "@octokit/core" "^4.1.0" + "@octokit/plugin-paginate-rest" "^6.0.0" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^7.0.0" + +"@octokit/types@^9.0.0": + version "9.0.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz" + integrity sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw== + dependencies: + "@octokit/openapi-types" "^16.0.0" + +"@types/better-sqlite3@^7.6.0": + version "7.6.3" + resolved "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz" + integrity sha512-YS64N9SNDT/NAvou3QNdzAu3E2om/W/0dhORimtPGLef+zSK5l1vDzfsWb4xgXOgfhtOI5ZDTRxnvRPb22AIVQ== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@^18.14.6": + version "18.14.6" + resolved "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz" + integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== + +"@types/stack-trace@0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz" + integrity sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +blake3-wasm@^2.1.5: + version "2.1.5" + resolved "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz" + integrity sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g== + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + 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" + optionalDependencies: + fsevents "~2.3.2" + +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +cron-schedule@^3.0.4: + version "3.0.6" + resolved "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz" + integrity sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg== + +cross-spawn@^7.0.3: + version "7.0.3" + 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" + which "^2.0.1" + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + +esbuild@0.16.3: + version "0.16.3" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz" + integrity sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg== + optionalDependencies: + "@esbuild/android-arm" "0.16.3" + "@esbuild/android-arm64" "0.16.3" + "@esbuild/android-x64" "0.16.3" + "@esbuild/darwin-arm64" "0.16.3" + "@esbuild/darwin-x64" "0.16.3" + "@esbuild/freebsd-arm64" "0.16.3" + "@esbuild/freebsd-x64" "0.16.3" + "@esbuild/linux-arm" "0.16.3" + "@esbuild/linux-arm64" "0.16.3" + "@esbuild/linux-ia32" "0.16.3" + "@esbuild/linux-loong64" "0.16.3" + "@esbuild/linux-mips64el" "0.16.3" + "@esbuild/linux-ppc64" "0.16.3" + "@esbuild/linux-riscv64" "0.16.3" + "@esbuild/linux-s390x" "0.16.3" + "@esbuild/linux-x64" "0.16.3" + "@esbuild/netbsd-x64" "0.16.3" + "@esbuild/openbsd-x64" "0.16.3" + "@esbuild/sunos-x64" "0.16.3" + "@esbuild/win32-arm64" "0.16.3" + "@esbuild/win32-ia32" "0.16.3" + "@esbuild/win32-x64" "0.16.3" + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +execa@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob-parent@~5.1.2: + 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" + +html-rewriter-wasm@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz" + integrity sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q== + +http-cache-semantics@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + +is-binary-path@~2.1.0: + 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" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + 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" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +kleur@^4.1.4: + version "4.1.5" + resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.3: + version "0.25.9" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +miniflare@2.12.1: + version "2.12.1" + resolved "https://registry.npmjs.org/miniflare/-/miniflare-2.12.1.tgz" + integrity sha512-pym6gzg8AQZ1NRChRV1hC4K55N49wndoaDEVRMvZPJrFsmGkNnXkWmlvmZ7SB3BN5UkP5MZwKhLqiJ49Ry8tFA== + dependencies: + "@miniflare/cache" "2.12.1" + "@miniflare/cli-parser" "2.12.1" + "@miniflare/core" "2.12.1" + "@miniflare/d1" "2.12.1" + "@miniflare/durable-objects" "2.12.1" + "@miniflare/html-rewriter" "2.12.1" + "@miniflare/http-server" "2.12.1" + "@miniflare/kv" "2.12.1" + "@miniflare/queues" "2.12.1" + "@miniflare/r2" "2.12.1" + "@miniflare/runner-vm" "2.12.1" + "@miniflare/scheduler" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/sites" "2.12.1" + "@miniflare/storage-file" "2.12.1" + "@miniflare/storage-memory" "2.12.1" + "@miniflare/web-sockets" "2.12.1" + kleur "^4.1.4" + semiver "^1.1.0" + source-map-support "^0.5.20" + undici "5.20.0" + +mustache@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + +nanoid@^3.3.3: + version "3.3.4" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +node-fetch@^2.6.7: + version "2.6.9" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz" + integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + dependencies: + whatwg-url "^5.0.0" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + +npx-import@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz" + integrity sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA== + dependencies: + execa "^6.1.0" + parse-package-name "^1.0.0" + semver "^7.3.7" + validate-npm-package-name "^4.0.0" + +once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +parse-package-name@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz" + integrity sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-to-regexp@^6.2.0: + version "6.2.1" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz" + integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rollup-plugin-inject@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz" + integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== + dependencies: + estree-walker "^0.6.1" + magic-string "^0.25.3" + rollup-pluginutils "^2.8.1" + +rollup-plugin-node-polyfills@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz" + integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== + dependencies: + rollup-plugin-inject "^3.0.0" + +rollup-pluginutils@^2.8.1: + version "2.8.2" + resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +selfsigned@^2.0.0, selfsigned@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== + dependencies: + node-forge "^1" + +semiver@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz" + integrity sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg== + +semver@^7.0.0, semver@^7.3.7: + version "7.3.8" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +set-cookie-parser@^2.4.8: + version "2.5.1" + resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz" + integrity sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ== + +shebang-command@^2.0.0: + version "2.0.0" + 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" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +source-map-support@^0.5.20: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.4: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +stack-trace@0.0.10: + version "0.0.10" + resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +undici@5.20.0: + version "5.20.0" + resolved "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz" + integrity sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g== + dependencies: + busboy "^1.6.0" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +urlpattern-polyfill@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz" + integrity sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ== + +validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrangler@2.12.0: + version "2.12.0" + resolved "https://registry.npmjs.org/wrangler/-/wrangler-2.12.0.tgz" + integrity sha512-yAqv3JbJqkB1oaciI2CGEiEscQ98BXaFN+Z7VbWuepMqVL2UV2wUjA2mJLjWuoZOwSmC74MsDzZ+5hzDs/2Nkg== + dependencies: + "@cloudflare/kv-asset-handler" "^0.2.0" + "@esbuild-plugins/node-globals-polyfill" "^0.1.1" + "@esbuild-plugins/node-modules-polyfill" "^0.1.4" + "@miniflare/core" "2.12.1" + "@miniflare/d1" "2.12.1" + "@miniflare/durable-objects" "2.12.1" + blake3-wasm "^2.1.5" + chokidar "^3.5.3" + esbuild "0.16.3" + miniflare "2.12.1" + nanoid "^3.3.3" + path-to-regexp "^6.2.0" + selfsigned "^2.0.1" + source-map "^0.7.4" + xxhash-wasm "^1.0.1" + optionalDependencies: + fsevents "~2.3.2" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.2.2: + version "8.12.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz" + integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew== + +xxhash-wasm@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz" + integrity sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +youch@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz" + integrity sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ== + dependencies: + "@types/stack-trace" "0.0.29" + cookie "^0.4.1" + mustache "^4.2.0" + stack-trace "0.0.10" diff --git a/yarn.lock b/yarn.lock index 656cc8b4b..3893f69e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,50 +2,22 @@ # yarn lockfile v1 -"@achingbrain/ip-address@^8.1.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@achingbrain/ip-address/-/ip-address-8.1.0.tgz#24f2e9cd7289e33f433d771b23bea56cfd0242c9" - integrity sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw== - dependencies: - jsbn "1.1.0" - sprintf-js "1.1.2" - -"@achingbrain/nat-port-mapper@^1.0.3": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz#82c414712da38a0f3da0f938982b6dd724d3c677" - integrity sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg== - dependencies: - "@achingbrain/ssdp" "^4.0.1" - "@libp2p/logger" "^2.0.0" - default-gateway "^6.0.2" - err-code "^3.0.1" - it-first "^1.0.7" - p-defer "^4.0.0" - p-timeout "^5.0.2" - xml2js "^0.4.23" - -"@achingbrain/ssdp@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@achingbrain/ssdp/-/ssdp-4.0.1.tgz#47ccaaa8256cf73b7b2ab86a0ad14128cfaf77b7" - integrity sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ== - dependencies: - event-iterator "^2.0.0" - freeport-promise "^2.0.0" - merge-options "^3.0.4" - uuid "^8.3.2" - xml2js "^0.4.23" - "@adobe/css-tools@^4.0.1": version "4.2.0" resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" integrity sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA== -"@ampproject/remapping@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0", "@ampproject/remapping@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" "@apideck/better-ajv-errors@^0.3.1": @@ -199,38 +171,46 @@ asciidoctor-opal-runtime "0.3.3" unxhr "1.0.1" -"@assemblyscript/loader@^0.9.4": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.9.4.tgz#a483c54c1253656bb33babd464e3154a173e1577" - integrity sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA== - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.8.3": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" - integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== +"@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.22.0", "@babel/compat-data@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.3.tgz#cd502a6a0b6e37d7ad72ce7e71a7160a3ae36f7e" + integrity sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ== + +"@babel/compat-data@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" + integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.14.8", "@babel/core@^7.16.0", "@babel/core@^7.2.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0", "@babel/core@^7.9.6": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.3.tgz#cf1c877284a469da5d1ce1d1e53665253fae712e" - integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw== + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.1.tgz#5de51c5206f4c6f5533562838337a603c1033cfd" + integrity sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.3" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.3" - "@babel/types" "^7.21.3" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.22.0" + "@babel/helper-compilation-targets" "^7.22.1" + "@babel/helper-module-transforms" "^7.22.1" + "@babel/helpers" "^7.22.0" + "@babel/parser" "^7.22.0" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -238,85 +218,97 @@ semver "^6.3.0" "@babel/eslint-parser@^7.16.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz#d79e822050f2de65d7f368a076846e7184234af7" - integrity sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg== + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.8.tgz#59fb6fc4f3b017ab86987c076226ceef7b2b2ef2" + integrity sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" - integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== +"@babel/generator@^7.22.0", "@babel/generator@^7.22.3", "@babel/generator@^7.7.2": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.3.tgz#0ff675d2edb93d7596c5f6728b52615cfc0df01e" + integrity sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A== dependencies: - "@babel/types" "^7.18.2" - "@jridgewell/gen-mapping" "^0.3.0" - jsesc "^2.5.1" - -"@babel/generator@^7.21.3", "@babel/generator@^7.7.2": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce" - integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA== - dependencies: - "@babel/types" "^7.21.3" + "@babel/types" "^7.22.3" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz#bfcd6b7321ffebe33290d68550e2c9d7eb7c7a58" + integrity sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ== dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" + "@babel/compat-data" "^7.22.0" + "@babel/helper-validator-option" "^7.21.0" browserslist "^4.21.3" lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" - integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.1.tgz#ae3de70586cc757082ae3eba57240d42f468c41b" + integrity sha512-SowrZ9BWzYFgzUMwUmowbPSGu6CXL5MSuuCkG3bejahSpSymioPmuLdhPxNOc9MjuNGjy7M/HaXvJ8G82Lywlw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-environment-visitor" "^7.22.1" "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.22.0" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-replace-supers" "^7.22.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/helper-split-export-declaration" "^7.18.6" + semver "^6.3.0" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb" - integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.1.tgz#a7ed9a8488b45b467fca353cd1a44dc5f0cf5c70" + integrity sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.3.1" + semver "^6.3.0" -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== +"@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz#487053f103110f25b9755c5980e031e93ced24d8" + integrity sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg== dependencies: "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -325,72 +317,111 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" +"@babel/helper-environment-visitor@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8" + integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA== -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== +"@babel/helper-function-name@^7.21.0", "@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" "@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" - integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== +"@babel/helper-member-expression-to-functions@^7.22.0": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.3.tgz#4b77a12c1b4b8e9e28736ed47d8b91f00976911f" + integrity sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA== dependencies: - "@babel/types" "^7.21.0" + "@babel/types" "^7.22.3" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== +"@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" + integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" - integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" + "@babel/types" "^7.21.4" -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.20.11": + version "7.22.17" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz#7edf129097a51ccc12443adbc6320e90eab76693" + integrity sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ== dependencies: - "@babel/types" "^7.18.6" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.15" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== +"@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz#e0cad47fedcf3cae83c11021696376e2d5a50c63" + integrity sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" + +"@babel/helper-module-transforms@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz#40ad2f6950f143900e9c1c72363c0b431a606082" + integrity sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.15" + +"@babel/helper-optimise-call-expression@^7.18.6", "@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" + integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== + +"@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" @@ -402,92 +433,132 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" - integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== +"@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.22.5": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" + integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-replace-supers@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.1.tgz#38cf6e56f7dc614af63a21b45565dd623f0fdc95" + integrity sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-member-expression-to-functions" "^7.22.0" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== +"@babel/helper-simple-access@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" + integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== dependencies: - "@babel/types" "^7.20.2" + "@babel/types" "^7.21.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: - "@babel/types" "^7.20.0" + "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== +"@babel/helper-split-export-declaration@^7.18.6", "@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.18.10", "@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" + integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": +"@babel/helper-validator-identifier@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044" + integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ== + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/helper-validator-option@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== + "@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== + version "7.22.17" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz#222ac3ff9cc8f9b617cc1e5db75c0b538e722801" + integrity sha512-nAhoheCMlrqU41tAojw9GpVEKDlTS8r3lzFmF0lP52LwblCPbuFSO7nGIZoIcoU5NIm1ABrna0cJExE4Ay6l2Q== dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.17" -"@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" - integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== +"@babel/helpers@^7.22.0": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.3.tgz#53b74351da9684ea2f694bf0877998da26dd830e" + integrity sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w== dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.3" -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== +"@babel/highlight@^7.18.6", "@babel/highlight@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" + integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@7.18.4": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" - integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== +"@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.22.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32" + integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA== + +"@babel/parser@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.15.tgz#d34592bfe288a32e741aa0663dbc4829fcd55160" + integrity sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -495,26 +566,16 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.3.tgz#a75be1365c0c3188c51399a662168c1c98108659" + integrity sha512-6r4yRwEnorYByILoDRnEqxtojYKuiIv9FojW2E8GUKo9eWBwbKcd9IiZOZpdyXc64RmyGGyPu3/uAcrz/dq2kQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" - -"@babel/plugin-proposal-async-generator-functions@^7.20.1": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-transform-optional-chaining" "^7.22.3" -"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.18.6": +"@babel/plugin-proposal-class-properties@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -522,59 +583,18 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-proposal-decorators@^7.16.4": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63" - integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w== + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.3.tgz#3502c0f8cfe0cdb79b62102c9c9b111309d942b7" + integrity sha512-XjTKH3sHr6pPqG+hR1NCdVupwiosfdKM2oSMyKQVQ5Bym9l/p7BuLAqT5U32zZzRCfPq/TPRPzMiiTE9bOXU4w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-replace-supers" "^7.22.1" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/plugin-syntax-decorators" "^7.21.0" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-decorators" "^7.22.3" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -582,7 +602,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": +"@babel/plugin-proposal-numeric-separator@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== @@ -590,26 +610,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": +"@babel/plugin-proposal-optional-chaining@^7.16.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -618,7 +619,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.18.6": +"@babel/plugin-proposal-private-methods@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== @@ -626,17 +627,17 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" - integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== +"@babel/plugin-proposal-private-property-in-object@^7.21.0": + version "7.21.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" + integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-create-class-features-plugin" "^7.21.0" "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== @@ -672,12 +673,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78" - integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w== +"@babel/plugin-syntax-decorators@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.3.tgz#760f2d812d56c1d05970d01cdcd3c05e3d87d6ca" + integrity sha512-R16Zuge73+8/nLcDjkIpyhi5wIbN7i7fiuLJR8yQX7vPAa/ltUKtd3iLbb4AgP5nrLi91HnNUNosELIGUGH1bg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" @@ -693,21 +694,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" - integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== +"@babel/plugin-syntax-flow@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" + integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" + integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-attributes@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.3.tgz#d7168f22b9b49a6cc1792cec78e06a18ad2e7b4b" + integrity sha512-i35jZJv6aO7hxEbIWQ41adVfOzjm9dcYDNeWlBMd8p0ZQRtNUCBrmGwZt+H5lb+oOC9a3svp956KP0oWGA1YsA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -721,12 +729,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== +"@babel/plugin-syntax-jsx@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" + integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -784,21 +799,40 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== +"@babel/plugin-syntax-typescript@^7.21.4", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" + integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6", "@babel/plugin-transform-block-scoped-functions@^7.18.6": + name "@babel/plugin-syntax-unicode-sets-regex" + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-async-to-generator@^7.18.6": +"@babel/plugin-transform-arrow-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" + integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-async-generator-functions@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.3.tgz#3ed99924c354fb9e80dabb2cc8d002c702e94527" + integrity sha512-36A4Aq48t66btydbZd5Fk0/xJqbpg/v4QWI4AH4cYHBXy9Mu42UOupZpebKFiCFNT9S9rJFcsld0gsv0ayLjtA== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== @@ -807,21 +841,31 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-remap-async-to-generator" "^7.18.9" -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-block-scoping@^7.20.2": +"@babel/plugin-transform-block-scoping@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-classes@^7.20.2": +"@babel/plugin-transform-class-properties@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.3.tgz#3407145e513830df77f0cef828b8b231c166fe4c" + integrity sha512-mASLsd6rhOrLZ5F3WbCxkzl67mmOnqik0zrg5W6D/X0QMW7HtvnoL1dRARLKIbMP3vXwkwziuLesPqWVGIl6Bw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-class-static-block@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.3.tgz#e352cf33567385c731a8f21192efeba760358773" + integrity sha512-5BirgNWNOx7cwbTJCOmKFJ1pZjwk5MUfMIwiBBvsirCJMZeQgs5pk6i1OlkVg+1Vef5LfBahFOrdCnAWvkVKMw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== @@ -836,15 +880,15 @@ "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== +"@babel/plugin-transform-computed-properties@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" + integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/template" "^7.20.7" -"@babel/plugin-transform-destructuring@^7.20.2": +"@babel/plugin-transform-destructuring@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== @@ -852,19 +896,27 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" + integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" + integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dynamic-import@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.1.tgz#6c56afaf896a07026330cf39714532abed8d9ed1" + integrity sha512-rlhWtONnVBPdmt+jeewS0qSnMz/3yLFrqAP8hHC6EDcrYRSyuz9f9yQhHvVn2Ad6+yO9fHXac5piudeYrInxwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" @@ -874,29 +926,45 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-export-namespace-from@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.3.tgz#9b8700aa495007d3bebac8358d1c562434b680b9" + integrity sha512-5Ti1cHLTDnt3vX61P9KZ5IG09bFXp4cDVFJIAeCZuxu9OXXJJZp5iP0n/rzM2+iAutJY+KWEyyHcRaHlpQ/P5g== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-transform-flow-strip-types@^7.16.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" - integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" + integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-flow" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-for-of@^7.18.8": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" - integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== +"@babel/plugin-transform-for-of@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" + integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-json-strings@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.3.tgz#a181b8679cf7c93e9d0e3baa5b1776d65be601a9" + integrity sha512-IuvOMdeOOY2X4hRNAT6kwbePtK21BUyrAEgLKviL8pL6AEEVUVcqtRdN/HJXBLGIbt9T3ETmXRnFedRRmQNTYw== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-transform-literals@^7.18.9": version "7.18.9" @@ -905,6 +973,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-logical-assignment-operators@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.3.tgz#9e021455810f33b0baccb82fb759b194f5dc36f0" + integrity sha512-CbayIfOw4av2v/HYZEsH+Klks3NC2/MFIR3QR8gnpGNNPEaq2fdlVCRYG/paKs7/5hvBLQ+H70pGWOHtlNEWNA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" @@ -912,7 +988,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-amd@^7.19.6": +"@babel/plugin-transform-modules-amd@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== @@ -920,159 +996,241 @@ "@babel/helper-module-transforms" "^7.20.11" "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-modules-commonjs@^7.19.6", "@babel/plugin-transform-modules-commonjs@^7.2.0": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" - integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== +"@babel/plugin-transform-modules-commonjs@^7.2.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" + integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== dependencies: - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== +"@babel/plugin-transform-modules-commonjs@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" + integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== + dependencies: + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-simple-access" "^7.21.5" + +"@babel/plugin-transform-modules-systemjs@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz#cc507e03e88d87b016feaeb5dae941e6ef50d91e" + integrity sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-transforms" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-validator-identifier" "^7.19.1" "@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.3.tgz#db6fb77e6b3b53ec3b8d370246f0b7cf67d35ab4" + integrity sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-create-regexp-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== +"@babel/plugin-transform-new-target@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.3.tgz#deb0377d741cbee2f45305868b9026dcd6dd96e2" + integrity sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.3.tgz#8c519f8bf5af94a9ca6f65cf422a9d3396e542b9" + integrity sha512-CpaoNp16nX7ROtLONNuCyenYdY/l7ZsR6aoVa7rW7nMWisoNoQNIH5Iay/4LDyRjKMuElMqXiBoOQCDLTMGZiw== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.3.tgz#02493070ca6685884b0eee705363ee4da2132ab0" + integrity sha512-+AF88fPDJrnseMh5vD9+SH6wq4ZMvpiTMHh58uLs+giMEyASFVhcT3NkoyO+NebFCNnpHJEq5AXO2txV4AGPDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.3.tgz#da6fba693effb8c203d8c3bdf7bf4e2567e802e9" + integrity sha512-38bzTsqMMCI46/TQnJwPPpy33EjLCc1Gsm2hRTF6zTMWnKsN61vdrpuzIEGQyKEhDSYDKyZHrrd5FMj4gcUHhw== + dependencies: + "@babel/compat-data" "^7.22.3" + "@babel/helper-compilation-targets" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.3" "@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" -"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" - integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== +"@babel/plugin-transform-optional-catch-binding@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.3.tgz#e971a083fc7d209d9cd18253853af1db6d8dc42f" + integrity sha512-bnDFWXFzWY0BsOyqaoSXvMQ2F35zutQipugog/rqotL2S4ciFOKlRYUu9djt4iq09oh2/34hqfRR2k1dIvuu4g== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.3.tgz#5fd24a4a7843b76da6aeec23c7f551da5d365290" + integrity sha512-63v3/UFFxhPKT8j8u1jTTGVyITxl7/7AfOqK8C5gz1rHURPUGe3y5mvIf68eYKGoBNahtJnTxBKug4BQOnzeJg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.3.tgz#24477acfd2fd2bc901df906c9bf17fbcfeee900d" + integrity sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-private-methods@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.3.tgz#adac38020bab5047482d3297107c1f58e9c574f6" + integrity sha512-fC7jtjBPFqhqpPAE+O4LKwnLq7gGkD3ZmC2E3i4qWH34mH3gOg2Xrq5YMHUq6DM30xhqM1DNftiRaSqVjEG+ug== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.3.tgz#031621b02c7b7d95389de1a3dba2fe9e8c548e56" + integrity sha512-C7MMl4qWLpgVCbXfj3UW8rR1xeCnisQ0cU7YJHV//8oNBS0aCIVg1vFnZXxOckHhEpQyqNNkWmvSEWnMLlc+Vw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-constant-elements@^7.12.1": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz#b32a5556100d424b25e388dd689050d78396884d" - integrity sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ== + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.3.tgz#b87a436c3377f29b37409f9c02c99c9ce377909d" + integrity sha512-b5J6muxQYp4H7loAQv/c7GO5cPuRA6H5hx4gO+/Hn+Cu9MRQU0PNiUoWq1L//8sq6kFSNxGXFb2XTaUfa9y+Pg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" - integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" + integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-jsx-development@^7.16.7", "@babel/plugin-transform-react-jsx-development@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" - integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== dependencies: - "@babel/plugin-transform-react-jsx" "^7.18.6" + "@babel/plugin-transform-react-jsx" "^7.22.5" "@babel/plugin-transform-react-jsx-self@^7.14.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz#ec98d4a9baafc5a1eb398da4cf94afbb40254a54" - integrity sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz#ca2fdc11bc20d4d46de01137318b13d04e481d8e" + integrity sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-jsx-source@^7.14.5": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86" - integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz#49af1615bfdf6ed9d3e9e43e425e0b2b65d15b6c" + integrity sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz#656b42c2fdea0a6d8762075d58ef9d4e3c4ab8a2" - integrity sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg== +"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.3.tgz#5a1f380df3703ba92eb1a930a539c6d88836f690" + integrity sha512-JEulRWG2f04a7L8VWaOngWiK6p+JOSpB+DAtwfJgOaej1qdbNxqtK7MwTBHjUA10NeFcszlFNqCdbRcirzh2uQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.21.0" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/types" "^7.22.3" + +"@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" + integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.15" "@babel/plugin-transform-react-pure-annotations@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" - integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" + integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== +"@babel/plugin-transform-regenerator@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" + integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" regenerator-transform "^0.15.1" "@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" + integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.16.4": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8" - integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.4.tgz#f8353f313f18c3ce1315688631ec48657b97af42" + integrity sha512-Urkiz1m4zqiRo17klj+l3nXgiRTFQng91Bc1eiLF7BMQu1e7wE5Gcq9xSv062IF068NHjcutSbIMev60gXxAvA== + dependencies: + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-plugin-utils" "^7.21.5" + babel-plugin-polyfill-corejs2 "^0.4.3" + babel-plugin-polyfill-corejs3 "^0.8.1" + babel-plugin-polyfill-regenerator "^0.5.0" semver "^6.3.0" "@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.19.0": +"@babel/plugin-transform-spread@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== @@ -1081,83 +1239,87 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" + integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" + integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.21.0": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz#316c5be579856ea890a57ebc5116c5d064658f2b" - integrity sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw== +"@babel/plugin-transform-typescript@^7.21.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.3.tgz#8f662cec8ba88c873f1c7663c0c94e3f68592f09" + integrity sha512-pyjnCIniO5PNaEuGxT28h0HbMru3qCVrMqVgVOz/krComdIrY9W6FCLBq9NWHY8HDGaUlan+UhmZElDENIfCcw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-typescript" "^7.20.0" + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-typescript" "^7.21.4" -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== +"@babel/plugin-transform-unicode-escapes@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" + integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-unicode-property-regex@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.3.tgz#597b6a614dc93eaae605ee293e674d79d32eb380" + integrity sha512-5ScJ+OmdX+O6HRuMGW4kv7RL9vIKdtdAj9wuWUKy1wbHY3jaM/UlyIiC1G7J6UJiiyMukjjK0QwL3P0vBd0yYg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" + integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.3.tgz#7c14ee33fa69782b0101d0f7143d3fc73ce00700" + integrity sha512-hNufLdkF8vqywRp+P55j4FHXqAX2LRUccoZHH7AFn1pq5ZOO2ISKW9w13bFZVjBoTqeve2HOgoJCcaziJVhGNw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.4.tgz#c86a82630f0e8c61d9bb9327b7b896732028cbed" + integrity sha512-c3lHOjbwBv0TkhYCr+XCR6wKcSZ1QbQTVdSkZUaVpLv8CVWotBMArWUi5UAJrcrQaEnleVkkvaV8F/pmc/STZQ== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.18.6" + "@babel/compat-data" "^7.22.3" + "@babel/helper-compilation-targets" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.3" + "@babel/plugin-proposal-private-property-in-object" "^7.21.0" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-attributes" "^7.22.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1167,44 +1329,61 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.21.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.3" + "@babel/plugin-transform-async-to-generator" "^7.20.7" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-class-properties" "^7.22.3" + "@babel/plugin-transform-class-static-block" "^7.22.3" + "@babel/plugin-transform-classes" "^7.21.0" + "@babel/plugin-transform-computed-properties" "^7.21.5" + "@babel/plugin-transform-destructuring" "^7.21.3" "@babel/plugin-transform-dotall-regex" "^7.18.6" "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-dynamic-import" "^7.22.1" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-export-namespace-from" "^7.22.3" + "@babel/plugin-transform-for-of" "^7.21.5" "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-json-strings" "^7.22.3" "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.3" "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" + "@babel/plugin-transform-modules-amd" "^7.20.11" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-modules-systemjs" "^7.22.3" "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.3" + "@babel/plugin-transform-new-target" "^7.22.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.3" + "@babel/plugin-transform-numeric-separator" "^7.22.3" + "@babel/plugin-transform-object-rest-spread" "^7.22.3" "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" + "@babel/plugin-transform-optional-catch-binding" "^7.22.3" + "@babel/plugin-transform-optional-chaining" "^7.22.3" + "@babel/plugin-transform-parameters" "^7.22.3" + "@babel/plugin-transform-private-methods" "^7.22.3" + "@babel/plugin-transform-private-property-in-object" "^7.22.3" "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.21.5" "@babel/plugin-transform-reserved-words" "^7.18.6" "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" + "@babel/plugin-transform-spread" "^7.20.7" "@babel/plugin-transform-sticky-regex" "^7.18.6" "@babel/plugin-transform-template-literals" "^7.18.9" "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-escapes" "^7.21.5" + "@babel/plugin-transform-unicode-property-regex" "^7.22.3" "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.3" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" + "@babel/types" "^7.22.4" + babel-plugin-polyfill-corejs2 "^0.4.3" + babel-plugin-polyfill-corejs3 "^0.8.1" + babel-plugin-polyfill-regenerator "^0.5.0" + core-js-compat "^3.30.2" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -1219,25 +1398,27 @@ esutils "^2.0.2" "@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" - integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.3.tgz#2ec7f91d0c924fa2ea0c7cfbbf690bc62b79cd84" + integrity sha512-lxDz1mnZ9polqClBCVBjIVUypoB4qV3/tZUDb/IlYbW1kiiLaXaX+bInbRjl+lNQ/iUZraQ3+S8daEmoELMWug== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" "@babel/plugin-transform-react-display-name" "^7.18.6" - "@babel/plugin-transform-react-jsx" "^7.18.6" + "@babel/plugin-transform-react-jsx" "^7.22.3" "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" "@babel/preset-typescript@^7.16.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz#bcbbca513e8213691fe5d4b23d9251e01f00ebff" - integrity sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg== + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz#68292c884b0e26070b4d66b202072d391358395f" + integrity sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-transform-typescript" "^7.21.0" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-typescript" "^7.21.3" "@babel/regjsgen@^0.8.0": version "0.8.0" @@ -1245,53 +1426,71 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.20.1", "@babel/runtime@^7.20.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" - integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.3.tgz#0a7fce51d43adbf0f7b517a71f4c3aaca92ebcbb" + integrity sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ== dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== +"@babel/template@^7.20.7", "@babel/template@^7.21.9", "@babel/template@^7.3.3": + version "7.21.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb" + integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ== dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/code-frame" "^7.21.4" + "@babel/parser" "^7.21.9" + "@babel/types" "^7.21.5" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3", "@babel/traverse@^7.7.2": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67" - integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ== +"@babel/template@^7.22.15", "@babel/template@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" - "@babel/helper-environment-visitor" "^7.18.9" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.22.1", "@babel/traverse@^7.7.2": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.4.tgz#c3cf96c5c290bd13b55e29d025274057727664c0" + integrity sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.22.3" + "@babel/helper-environment-visitor" "^7.22.1" "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.3" - "@babel/types" "^7.21.3" + "@babel/parser" "^7.22.4" + "@babel/types" "^7.22.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" - integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071" + integrity sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA== dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.2", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05" - integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== +"@babel/types@^7.18.9", "@babel/types@^7.22.17": + version "7.22.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.17.tgz#f753352c4610ffddf9c8bc6823f9ff03e2303eee" + integrity sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg== dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.15" + to-fast-properties "^2.0.0" + +"@babel/types@^7.22.15", "@babel/types@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.15.tgz#266cb21d2c5fd0b3931e7a91b6dd72d2f617d282" + integrity sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.15" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1304,65 +1503,6 @@ resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz#6110f918d273fe2af8ea1c4398a88774bb9fc12f" integrity sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg== -"@chainsafe/is-ip@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@chainsafe/is-ip/-/is-ip-2.0.1.tgz#62cb285669d91f88fd9fa285048dde3882f0993b" - integrity sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ== - -"@chainsafe/libp2p-gossipsub@^4.0.0": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-4.1.1.tgz#804dbbd262900fd730339c40c46013ff854240af" - integrity sha512-W3z52uTVm48qvwTAcE+tz6ML2CPWA4ErmuL2aCWAW8S7ce6iH8anqo+xI9rcedyIOChWMWLLD4Gtaj4TMrWacw== - dependencies: - "@libp2p/components" "^2.0.3" - "@libp2p/crypto" "^1.0.3" - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-keys" "^1.0.3" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-pubsub" "^2.0.1" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.15" - "@libp2p/peer-record" "^4.0.1" - "@libp2p/pubsub" "^3.1.2" - "@libp2p/topology" "^3.0.0" - abortable-iterator "^4.0.2" - denque "^1.5.0" - err-code "^3.0.1" - it-length-prefixed "^8.0.2" - it-pipe "^2.0.4" - it-pushable "^3.1.0" - multiformats "^9.6.4" - protobufjs "^6.11.2" - uint8arraylist "^2.3.2" - uint8arrays "^3.0.0" - -"@chainsafe/libp2p-noise@^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-noise/-/libp2p-noise-10.2.0.tgz#809f7fff8685a1687958fc8f36d314e1d097b6ad" - integrity sha512-nXw09UwSE5JCiB5Dte6j0b0Qe+KbtepJvaPz/f5JyxcoyUfLE/t7XWRZAZmcuWBeVWWpOItnK5WmW8uocoiwCQ== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-connection-encrypter" "^3.0.0" - "@libp2p/interface-keys" "^1.0.2" - "@libp2p/interface-metrics" "^4.0.2" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.8" - "@stablelib/chacha20poly1305" "^1.0.1" - "@stablelib/hkdf" "^1.0.1" - "@stablelib/sha256" "^1.0.1" - "@stablelib/x25519" "^1.0.1" - it-length-prefixed "^8.0.2" - it-pair "^2.0.2" - it-pb-stream "^2.0.2" - it-pipe "^2.0.3" - it-stream-types "^1.0.4" - protons-runtime "^4.0.1" - uint8arraylist "^2.3.2" - uint8arrays "^4.0.2" - "@changesets/apply-release-plan@^6.1.3": version "6.1.3" resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-6.1.3.tgz#3bcc0bd57ba00d50d20df7d0141f1a9b2134eaf7" @@ -1402,9 +1542,9 @@ "@changesets/types" "^5.2.1" "@changesets/cli@^2.25.2": - version "2.26.0" - resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.26.0.tgz#f215ddb2b41574ffd0dda9cd77fac927ba048fd3" - integrity sha512-0cbTiDms+ICTVtEwAFLNW0jBNex9f5+fFv3I771nBvdnV/mOjd1QJ4+f8KtVSOrwD9SJkk9xbDkWFb0oXd8d1Q== + version "2.26.1" + resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.26.1.tgz#2d10858d7d32314a524e383111c96d831eb0402f" + integrity sha512-XnTa+b51vt057fyAudvDKGB0Sh72xutQZNAdXkCqPBKO2zvs2yYZx5hFZj1u9cbtpwM6Sxtcr02/FQJfZOzemQ== dependencies: "@babel/runtime" "^7.20.1" "@changesets/apply-release-plan" "^6.1.3" @@ -1685,9 +1825,9 @@ integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== "@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz#c9c61d9fe5ca5ac664e1153bb0aa0eba1c6d6308" - integrity sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== "@electron/get@^1.14.1": version "1.14.1" @@ -1705,146 +1845,146 @@ global-agent "^3.0.0" global-tunnel-ng "^2.7.1" -"@esbuild/android-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" - integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== +"@esbuild/android-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" + integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== "@esbuild/android-arm@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== -"@esbuild/android-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" - integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== - -"@esbuild/android-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" - integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== - -"@esbuild/darwin-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" - integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== - -"@esbuild/darwin-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" - integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== - -"@esbuild/freebsd-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" - integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== - -"@esbuild/freebsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" - integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== - -"@esbuild/linux-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" - integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== - -"@esbuild/linux-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" - integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== - -"@esbuild/linux-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" - integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== +"@esbuild/android-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" + integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== + +"@esbuild/android-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" + integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== + +"@esbuild/darwin-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" + integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== + +"@esbuild/darwin-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" + integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== + +"@esbuild/freebsd-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" + integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== + +"@esbuild/freebsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" + integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== + +"@esbuild/linux-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" + integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== + +"@esbuild/linux-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" + integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== + +"@esbuild/linux-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" + integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== "@esbuild/linux-loong64@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== -"@esbuild/linux-loong64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" - integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== - -"@esbuild/linux-mips64el@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" - integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== - -"@esbuild/linux-ppc64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" - integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== - -"@esbuild/linux-riscv64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" - integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== - -"@esbuild/linux-s390x@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" - integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== - -"@esbuild/linux-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" - integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== - -"@esbuild/netbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" - integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== - -"@esbuild/openbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" - integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== - -"@esbuild/sunos-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" - integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== - -"@esbuild/win32-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" - integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== - -"@esbuild/win32-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" - integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== - -"@esbuild/win32-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" - integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== +"@esbuild/linux-loong64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" + integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== + +"@esbuild/linux-mips64el@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" + integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== + +"@esbuild/linux-ppc64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" + integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== + +"@esbuild/linux-riscv64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" + integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== + +"@esbuild/linux-s390x@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" + integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== + +"@esbuild/linux-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" + integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== + +"@esbuild/netbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" + integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== + +"@esbuild/openbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" + integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== + +"@esbuild/sunos-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" + integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== + +"@esbuild/win32-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" + integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== + +"@esbuild/win32-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" + integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== + +"@esbuild/win32-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" + integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== "@eslint-community/eslint-utils@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz#a831e6e468b4b2b5ae42bf658bea015bf10bc518" - integrity sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" - integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== -"@eslint/eslintrc@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d" - integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw== +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.0" + espree "^9.5.2" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -1852,10 +1992,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.36.0": - version "8.36.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe" - integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg== +"@eslint/js@8.42.0": + version "8.42.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" + integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== "@graphql-tools/merge@8.3.1": version "8.3.1" @@ -1865,35 +2005,25 @@ "@graphql-tools/utils" "8.9.0" tslib "^2.4.0" -"@graphql-tools/merge@8.4.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.0.tgz#47fbe5c4b6764276dc35bd19c4e7d3c46d3dc0fc" - integrity sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA== +"@graphql-tools/merge@^8.4.1": + version "8.4.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" + integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== dependencies: - "@graphql-tools/utils" "9.2.1" + "@graphql-tools/utils" "^9.2.1" tslib "^2.4.0" "@graphql-tools/mock@^8.1.2": - version "8.7.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.19.tgz#b6c01ecc44074a01d6f472213de5f56fe0a3380c" - integrity sha512-LT2boYM+Y1vGFEhzmC7xDFRL8RPG20FbNcuk2/hHGH0Kh8K1hkItvL89tul3Pl7N6xerOnDZ3c3fx7Ls5GuFxA== + version "8.7.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.20.tgz#c83ae0f1940d194a3982120c9c85f3ac6b4f7f20" + integrity sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ== dependencies: - "@graphql-tools/schema" "9.0.17" - "@graphql-tools/utils" "9.2.1" + "@graphql-tools/schema" "^9.0.18" + "@graphql-tools/utils" "^9.2.1" fast-json-stable-stringify "^2.1.0" tslib "^2.4.0" -"@graphql-tools/schema@9.0.17": - version "9.0.17" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.17.tgz#d731e9899465f88d5b9bf69e607ec465bb88b062" - integrity sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng== - dependencies: - "@graphql-tools/merge" "8.4.0" - "@graphql-tools/utils" "9.2.1" - tslib "^2.4.0" - value-or-promise "1.0.12" - -"@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.5.1": +"@graphql-tools/schema@^8.0.0": version "8.5.1" resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg== @@ -1903,6 +2033,16 @@ tslib "^2.4.0" value-or-promise "1.0.11" +"@graphql-tools/schema@^9.0.18": + version "9.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" + integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== + dependencies: + "@graphql-tools/merge" "^8.4.1" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + "@graphql-tools/utils@8.9.0": version "8.9.0" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7" @@ -1910,287 +2050,18 @@ dependencies: tslib "^2.4.0" -"@graphql-tools/utils@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" - integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - tslib "^2.4.0" - -"@graphql-typed-document-node/core@^3.1.1": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.2.tgz#6fc464307cbe3c8ca5064549b806360d84457b04" - integrity sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA== - -"@grpc/grpc-js@^1.1.8": - version "1.8.12" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.12.tgz#bc0120859e8b153db764b473cc019ddf6bb2b414" - integrity sha512-MbUMvpVvakeKhdYux6gbSIPJaFMLNSY8jw4PqLI+FFztGrQRrYYAnHlR94+ncBQQewkpXQaW449m3tpH/B/ZnQ== - dependencies: - "@grpc/proto-loader" "^0.7.0" - "@types/node" ">=12.12.47" - -"@grpc/proto-loader@^0.7.0": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.5.tgz#ee9e7488fa585dc6b0f7fe88cd39723a3e64c906" - integrity sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg== - dependencies: - "@types/long" "^4.0.1" - lodash.camelcase "^4.3.0" - long "^4.0.0" - protobufjs "^7.0.0" - yargs "^16.2.0" - -"@hapi/accept@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.2.tgz#ab7043b037e68b722f93f376afb05e85c0699523" - integrity sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/ammo@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@hapi/ammo/-/ammo-5.0.1.tgz#9d34560f5c214eda563d838c01297387efaab490" - integrity sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/b64@5.x.x": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@hapi/b64/-/b64-5.0.0.tgz#b8210cbd72f4774985e78569b77e97498d24277d" - integrity sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/boom@9.x.x", "@hapi/boom@^9.1.0": - version "9.1.4" - resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" - integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/bounce@2.x.x", "@hapi/bounce@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@hapi/bounce/-/bounce-2.0.0.tgz#e6ef56991c366b1e2738b2cd83b01354d938cf3d" - integrity sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/bourne@2.x.x", "@hapi/bourne@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.1.0.tgz#66aff77094dc3080bd5df44ec63881f2676eb020" - integrity sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q== - -"@hapi/call@^8.0.0": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@hapi/call/-/call-8.0.1.tgz#9e64cd8ba6128eb5be6e432caaa572b1ed8cd7c0" - integrity sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/catbox-memory@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz#cb63fca0ded01d445a2573b38eb2688df67f70ac" - integrity sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/catbox@^11.1.1": - version "11.1.1" - resolved "https://registry.yarnpkg.com/@hapi/catbox/-/catbox-11.1.1.tgz#d277e2d5023fd69cddb33d05b224ea03065fec0c" - integrity sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - "@hapi/podium" "4.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/content@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@hapi/content/-/content-5.0.2.tgz#ae57954761de570392763e64cdd75f074176a804" - integrity sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw== - dependencies: - "@hapi/boom" "9.x.x" - -"@hapi/cryptiles@5.x.x": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/cryptiles/-/cryptiles-5.1.0.tgz#655de4cbbc052c947f696148c83b187fc2be8f43" - integrity sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA== - dependencies: - "@hapi/boom" "9.x.x" - -"@hapi/file@2.x.x": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@hapi/file/-/file-2.0.0.tgz#2ecda37d1ae9d3078a67c13b7da86e8c3237dfb9" - integrity sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ== - -"@hapi/hapi@^20.0.0": - version "20.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hapi/-/hapi-20.3.0.tgz#1d620005afeebcb2c8170352286a4664b0107c15" - integrity sha512-zvPSRvaQyF3S6Nev9aiAzko2/hIFZmNSJNcs07qdVaVAvj8dGJSV4fVUuQSnufYJAGiSau+U5LxMLhx79se5WA== - dependencies: - "@hapi/accept" "^5.0.1" - "@hapi/ammo" "^5.0.1" - "@hapi/boom" "^9.1.0" - "@hapi/bounce" "^2.0.0" - "@hapi/call" "^8.0.0" - "@hapi/catbox" "^11.1.1" - "@hapi/catbox-memory" "^5.0.0" - "@hapi/heavy" "^7.0.1" - "@hapi/hoek" "^9.0.4" - "@hapi/mimos" "^6.0.0" - "@hapi/podium" "^4.1.1" - "@hapi/shot" "^5.0.5" - "@hapi/somever" "^3.0.0" - "@hapi/statehood" "^7.0.3" - "@hapi/subtext" "^7.1.0" - "@hapi/teamwork" "^5.1.0" - "@hapi/topo" "^5.0.0" - "@hapi/validate" "^1.1.1" - -"@hapi/heavy@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@hapi/heavy/-/heavy-7.0.1.tgz#73315ae33b6e7682a0906b7a11e8ca70e3045874" - integrity sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.0.4": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" - integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== - -"@hapi/iron@6.x.x": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@hapi/iron/-/iron-6.0.0.tgz#ca3f9136cda655bdd6028de0045da0de3d14436f" - integrity sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw== - dependencies: - "@hapi/b64" "5.x.x" - "@hapi/boom" "9.x.x" - "@hapi/bourne" "2.x.x" - "@hapi/cryptiles" "5.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/mimos@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@hapi/mimos/-/mimos-6.0.0.tgz#daa523d9c07222c7e8860cb7c9c5501fd6506484" - integrity sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg== - dependencies: - "@hapi/hoek" "9.x.x" - mime-db "1.x.x" - -"@hapi/nigel@4.x.x": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@hapi/nigel/-/nigel-4.0.2.tgz#8f84ef4bca4fb03b2376463578f253b0b8e863c4" - integrity sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw== - dependencies: - "@hapi/hoek" "^9.0.4" - "@hapi/vise" "^4.0.0" - -"@hapi/pez@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/pez/-/pez-5.1.0.tgz#c03a5e01f8be01cfabc4c0017631e619586321c1" - integrity sha512-YfB0btnkLB3lb6Ry/1KifnMPBm5ZPfaAHWFskzOMAgDgXgcBgA+zjpIynyEiBfWEz22DBT8o1e2tAaBdlt8zbw== - dependencies: - "@hapi/b64" "5.x.x" - "@hapi/boom" "9.x.x" - "@hapi/content" "^5.0.2" - "@hapi/hoek" "9.x.x" - "@hapi/nigel" "4.x.x" - -"@hapi/podium@4.x.x", "@hapi/podium@^4.1.1": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@hapi/podium/-/podium-4.1.3.tgz#91e20838fc2b5437f511d664aabebbb393578a26" - integrity sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g== - dependencies: - "@hapi/hoek" "9.x.x" - "@hapi/teamwork" "5.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/shot@^5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@hapi/shot/-/shot-5.0.5.tgz#a25c23d18973bec93c7969c51bf9579632a5bebd" - integrity sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A== - dependencies: - "@hapi/hoek" "9.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/somever@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@hapi/somever/-/somever-3.0.1.tgz#9961cd5bdbeb5bb1edc0b2acdd0bb424066aadcc" - integrity sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w== - dependencies: - "@hapi/bounce" "2.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/statehood@^7.0.3": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@hapi/statehood/-/statehood-7.0.4.tgz#6acb9d0817b5c657089356f7d9fd60af0bce4f41" - integrity sha512-Fia6atroOVmc5+2bNOxF6Zv9vpbNAjEXNcUbWXavDqhnJDlchwUUwKS5LCi5mGtCTxRhUKKHwuxuBZJkmLZ7fw== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/bounce" "2.x.x" - "@hapi/bourne" "2.x.x" - "@hapi/cryptiles" "5.x.x" - "@hapi/hoek" "9.x.x" - "@hapi/iron" "6.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/subtext@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@hapi/subtext/-/subtext-7.1.0.tgz#b4d1ea2aeab1923ac130a24e75921e38fab5b15b" - integrity sha512-n94cU6hlvsNRIpXaROzBNEJGwxC+HA69q769pChzej84On8vsU14guHDub7Pphr/pqn5b93zV3IkMPDU5AUiXA== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/bourne" "2.x.x" - "@hapi/content" "^5.0.2" - "@hapi/file" "2.x.x" - "@hapi/hoek" "9.x.x" - "@hapi/pez" "^5.1.0" - "@hapi/wreck" "17.x.x" - -"@hapi/teamwork@5.x.x", "@hapi/teamwork@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@hapi/teamwork/-/teamwork-5.1.1.tgz#4d2ba3cac19118a36c44bf49a3a47674de52e4e4" - integrity sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg== - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@hapi/validate@1.x.x", "@hapi/validate@^1.1.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@hapi/validate/-/validate-1.1.3.tgz#f750a07283929e09b51aa16be34affb44e1931ad" - integrity sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - -"@hapi/vise@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@hapi/vise/-/vise-4.0.0.tgz#c6a94fe121b94a53bf99e7489f7fcc74c104db02" - integrity sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/wreck@17.x.x": - version "17.2.0" - resolved "https://registry.yarnpkg.com/@hapi/wreck/-/wreck-17.2.0.tgz#a5b69b724fa8fa25550fb02f55c649becfc59f63" - integrity sha512-pJ5kjYoRPYDv+eIuiLQqhGon341fr2bNIYZjuotuPJG/3Ilzr/XtI+JAp0A86E2bYfsS3zBPABuS2ICkaXFT8g== +"@graphql-tools/utils@^9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" + integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== dependencies: - "@hapi/boom" "9.x.x" - "@hapi/bourne" "2.x.x" - "@hapi/hoek" "9.x.x" + "@graphql-typed-document-node/core" "^3.1.1" + tslib "^2.4.0" + +"@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== "@headlessui/react@^1.7.10": version "1.7.15" @@ -2199,10 +2070,25 @@ dependencies: client-only "^0.0.1" -"@holochain/client@0.12.5": +"@holochain/client@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.0.tgz#3800ecc0551eef9a2b8e3534f6a6651f87b9af82" + integrity sha512-GJEl6F3OSlDX71H+rtyUXpEuor7O9MhvNIi+Tq6obrysu71JsbXfR1rtmSBiNb9fttHOZLW60EzY/Lj3I9dv8g== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" + lodash-es "^4.17.21" + ws "^8.13.0" + +"@holochain/client@perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b": version "0.12.5" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" - integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== + resolved "https://codeload.github.com/perspect3vism/holochain-client-js/tar.gz/2f3a436b6d28344b0aca883ef3dc229cd042c04b" dependencies: "@holochain/serialization" "^0.1.0-beta-rc.3" "@msgpack/msgpack" "^2.7.2" @@ -2218,49 +2104,49 @@ resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== -"@honkit/asciidoc@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@honkit/asciidoc/-/asciidoc-4.0.1.tgz#0b649f8d76493119a8fdb4c16299beffea20e4ae" - integrity sha512-R+Og2PaOO5LPXgfsc2k23bSxeTjfJgNMmBB6xodaMmAwYIMs4HApStWGLKik7WQjoIXsNzD67z4eUlTsJcOReA== +"@honkit/asciidoc@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/asciidoc/-/asciidoc-4.0.7.tgz#7e6deb19c91ccf6e4177c215652919e53f081d96" + integrity sha512-YgIInbeGtuhvKO4cUhJ9q5g8iNkbwEL/U4suwP1uC9sZXFfYzXg+Vt2zPPx47A+Nj0cirdrbbh1fJhQWJIgm8A== dependencies: - "@honkit/html" "^4.0.1" + "@honkit/html" "^4.0.7" asciidoctor "^2.2.0" lodash "^4.13.1" -"@honkit/honkit-plugin-highlight@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-4.0.0.tgz#4243dfa99e29c5c5e11283b7464eee08e7ac0e1d" - integrity sha512-3T1s12gbLVN/pKbngrkItXLE7ubDBoHK+ILHAjmPw/TYd92wMT4bcL7TUZZALjBhUR3tBj7+kofssxAxDECPOA== +"@honkit/honkit-plugin-highlight@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-4.0.7.tgz#d54911155167bd2bcd79442b9548737e5d4c636c" + integrity sha512-VeXVJ2orU4F2V8ncf3bGNnPFzuS8+IV5NdHNW4C3Nt9+MoB6cp7lAoi95+ZuYC9T4iIVkfBtXFA/tCivEAjfgg== dependencies: highlight.js "^10.7.1" -"@honkit/honkit-plugin-theme-default@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-4.0.3.tgz#11accaed52f96e51e1578d8e02b66e60c7008726" - integrity sha512-bGCkFLASQF1PAb5HWgaei33uhOLVGM3ZiwUs5BJszumKSJAGaz/X2epRH6DrIlDG+I93COZsoGV1BVOj3gzLaA== +"@honkit/honkit-plugin-theme-default@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-4.0.7.tgz#758360e3a1bda6db306b32e1db6959247bce3400" + integrity sha512-C/4WLD26p8f7gDTR6R60lPL6CJys+1/z7o6wUd5qEUya3Xu/YjiZmNviIyw99C5RUu4X7YutVvMijGTwC1izgA== -"@honkit/html@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@honkit/html/-/html-4.0.1.tgz#a9baf71e98a02af67134d845c509b481a92838e2" - integrity sha512-EB0k42QJbETe4vNgRfT5Kn9BFchNES20bmlDY7il989F/eYxCf+f8SduEcs6hsxpG1DemsR09x8Jz19WHXMTIA== +"@honkit/html@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/html/-/html-4.0.7.tgz#e22f04d270f225abf68a80215ba4e6491f0d9f07" + integrity sha512-8f3VqAwJqxSmmaiS7tDQpTMNwssXSW6s09AeLstOI8qhyCGf0ajpbfgQ1WrqY4duu6yqaZrubY8o9U7eSgxnVg== dependencies: cheerio "^1.0.0-rc.12" lodash "^4.13.1" q "^1.1.2" -"@honkit/markdown-legacy@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@honkit/markdown-legacy/-/markdown-legacy-4.0.1.tgz#e26279066142b2bea9b70a4efdbc3a1398ce10b3" - integrity sha512-5vzbvXU28SOJLEaEBjZY/57dV2Gol6kpJGkLkBVY4z29aLzugepXLOPuVA9X3X6Dbmzz3ws37siAf7/+8NLihw== +"@honkit/markdown-legacy@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/markdown-legacy/-/markdown-legacy-4.0.7.tgz#87c62f1df4579fbfa2881ae5db42adfcae950c73" + integrity sha512-wg+ErBy0Mk5Je6VVSbFoSwSvHNSstAzJnKiem1wR9nbrF21M5Ip4mLDZRsuuSPi0HOTFz3AhZMJC+ch+chIIEA== dependencies: - "@honkit/html" "^4.0.1" + "@honkit/html" "^4.0.7" kramed "0.5.6" lodash "^4.13.1" -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -2276,47 +2162,6 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@ipld/car@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@ipld/car/-/car-5.1.0.tgz#1c8d8cda72138aeceec0cea9560236e59337f434" - integrity sha512-k9pO0YqJvmFGY5pJDhF2Ocz+mRp3C3r4ikr1NrUXkzN/z4JzhE7XbQzUCcm7daq8k4tRqap0fWPjxZwjS9PUcQ== - dependencies: - "@ipld/dag-cbor" "^9.0.0" - cborg "^1.9.0" - multiformats "^11.0.0" - varint "^6.0.0" - -"@ipld/dag-cbor@^8.0.0": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-8.0.1.tgz#3042c219dd85a71d66ca6946fb6c7b6f0d519369" - integrity sha512-mHRuzgGXNk0Y5W7nNQdN37qJiig1Kdgf92icBVFRUNtBc9Ezl5DIdWfiGWBucHBrhqPBncxoH3As9cHPIRozxA== - dependencies: - cborg "^1.6.0" - multiformats "^11.0.0" - -"@ipld/dag-cbor@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-9.0.0.tgz#51902f7d19ce2203b04e4cfe0514936b82d09d91" - integrity sha512-zdsiSiYDEOIDW7mmWOYWC9gukjXO+F8wqxz/LfN7iSwTfIyipC8+UQrCbPupFMRb/33XQTZk8yl3My8vUQBRoA== - dependencies: - cborg "^1.10.0" - multiformats "^11.0.0" - -"@ipld/dag-json@^9.0.0": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@ipld/dag-json/-/dag-json-9.1.1.tgz#a24156cb040149d5955dbd28e3c08828c2292719" - integrity sha512-L0l+Osi8zAWUw2L/fWJjeZ75l7XojD0Mud1Xvo32q8AJeVuqvCQFdqqIFBiq8MwuqC8qS8kbysro3w5mphUiDQ== - dependencies: - cborg "^1.5.4" - multiformats "^11.0.0" - -"@ipld/dag-pb@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-3.0.2.tgz#80996ca7cb1d8f6c6df0b74fbf1235744b1f76c5" - integrity sha512-ge+llKU/CNc6rX5ZcUhCrPXJjKjN1DsolDOJ99zOsousGOhepoIgvT01iAP8s7QN9QFciOE+a1jHdccs+CyhBA== - dependencies: - multiformats "^11.0.0" - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2745,46 +2590,48 @@ resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== +"@jridgewell/source-map@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== dependencies: "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" @@ -2794,13 +2641,21 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== dependencies: "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.18": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@junto-foundation/junto-elements@^0.5.5": version "0.5.5" resolved "https://registry.yarnpkg.com/@junto-foundation/junto-elements/-/junto-elements-0.5.5.tgz#525b254faee09fed9fdb4a89c2dc38285e913672" @@ -2816,729 +2671,15 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@libp2p/bootstrap@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/bootstrap/-/bootstrap-5.0.2.tgz#231de1dbc5b882bca4d00f9288aaf985e0cdc5b5" - integrity sha512-AOr/uCjHpkfVWFylYXn7KRa1oIGmyZpadoMUr09nAEG0S3ejTda3TMFu90SXApMDnfSsaWyrnsfxNlH8HbfdSg== - dependencies: - "@libp2p/interface-peer-discovery" "^1.0.1" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interface-peer-store" "^1.2.2" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@libp2p/peer-id" "^1.1.15" - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/components@^2.0.0", "@libp2p/components@^2.0.3": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/components/-/components-2.1.1.tgz#9dceac8491d75c4e266d581ad4fcb5b833a382ec" - integrity sha512-/XtfEdBHaNhwiaf9RowiSYnyVFIl+shuZNGQlCsJmOnn5X490TMo9GJ9PVfrTRnRn3ZXPBLS5Vp0s6++ShSv7g== - dependencies: - "@libp2p/interface-address-manager" "^1.0.2" - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-connection-manager" "^1.1.0" - "@libp2p/interface-content-routing" "^1.0.2" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-metrics" "^3.0.0" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-peer-routing" "^1.0.1" - "@libp2p/interface-peer-store" "^1.2.1" - "@libp2p/interface-pubsub" "^2.1.0" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/interface-transport" "^1.0.3" - "@libp2p/interfaces" "^3.0.3" - err-code "^3.0.1" - interface-datastore "^7.0.0" - -"@libp2p/connection@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/connection/-/connection-4.0.2.tgz#6e4078487f8e75c0326465464d88248b2520d05f" - integrity sha512-l/mvmcA7QkAC/0qRmTpuD5CeMaiy4DuKCsutaY3PpwJbMegTOjxuZh0uzk3z94d0wJBnhquVZ0e4Yqvd+QGlng== - dependencies: - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@multiformats/multiaddr" "^11.0.0" - err-code "^3.0.1" - -"@libp2p/crypto@^1.0.0", "@libp2p/crypto@^1.0.3", "@libp2p/crypto@^1.0.4": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-1.0.14.tgz#cfc51ae3034604e2d8ad0e751c7547c0aebd96e6" - integrity sha512-kS9bsRPS6qrbGiMfICjVUTjva7Bq0kCE0DTVGgFixH8e2RtF/7K8bWzO52aTQVPUF7vpId7cmmYAaHde1ZYh0A== - dependencies: - "@libp2p/interface-keys" "^1.0.2" - "@libp2p/interfaces" "^3.2.0" - "@noble/ed25519" "^1.6.0" - "@noble/secp256k1" "^1.5.4" - multiformats "^11.0.0" - node-forge "^1.1.0" - protons-runtime "^5.0.0" - uint8arraylist "^2.4.3" - uint8arrays "^4.0.2" - -"@libp2p/delegated-content-routing@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/delegated-content-routing/-/delegated-content-routing-3.0.1.tgz#a809f2fe6f1e0b5a0f6c88d243585a29b7c81145" - integrity sha512-KEj6g0Ag0hjVzj8ljjVlf47nNbZuRtwMPH4sjySOwfnpvtQjPtjT8Lz7PkANtQeL+qG0Zd15CNFxD88gIwmVCg== - dependencies: - "@libp2p/interface-content-routing" "^1.0.2" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - any-signal "^3.0.1" - err-code "^3.0.1" - it-drain "^2.0.0" - multiformats "^10.0.0" - p-defer "^4.0.0" - p-queue "^7.2.0" - -"@libp2p/delegated-peer-routing@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/delegated-peer-routing/-/delegated-peer-routing-3.0.1.tgz#ea09424c3e663b6476ffc4ade6925b9caf07719d" - integrity sha512-qD082tKPThlKNYVmmLV95uRQzDJkekTKp96J7NZjrUEFx7S6a2l7kVvxvh+cGNF3l5lqvVnA35VSE4pljcxPzA== - dependencies: - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-peer-info" "^1.0.1" - "@libp2p/interface-peer-routing" "^1.0.0" - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.11" - any-signal "^3.0.1" - err-code "^3.0.1" - multiformats "^10.0.0" - p-defer "^4.0.0" - p-queue "^7.2.0" - -"@libp2p/floodsub@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@libp2p/floodsub/-/floodsub-5.0.0.tgz#4aeb10c89cae6f04d9244ad8cb094494222eb61f" - integrity sha512-B39UW/AWgfVVUl2yJDardmL2kKo1Zd4E+11/rkyjnjbygh944DTLcp3B2gSarqRlyN+x4ChUTKiN75UGajOaog== - dependencies: - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-pubsub" "^3.0.0" - "@libp2p/logger" "^2.0.0" - "@libp2p/pubsub" "^5.0.0" - protons-runtime "^4.0.1" - uint8arraylist "^2.1.1" - uint8arrays "^4.0.2" - -"@libp2p/interface-address-manager@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@libp2p/interface-address-manager/-/interface-address-manager-1.0.3.tgz#2ccc4312b4996e3f8bd9bdc64fb87e0873c32dd8" - integrity sha512-/DNGUQEXA0Ks+EOp0IVv3TsWq1H+4ZlSnyBozzNGDmufz6wG+EvUDBbwIXieHR898bj4pHfmmogK+Vwz5s5Kdw== - dependencies: - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/interface-address-manager@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/interface-address-manager/-/interface-address-manager-2.0.4.tgz#c62853e692306c19619c05d7650b73502e2b7c61" - integrity sha512-RcSi+z+xpVKJXq3BsfLf2rq8zb8VTAFown6uJBu02towMc0enYqqhwlV9DxcCaC573MgQ7gY2s/3XvxQdFraVA== - dependencies: - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/interface-connection-encrypter@^3.0.0", "@libp2p/interface-connection-encrypter@^3.0.1": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-3.0.6.tgz#1f7c7428d5905b390cfc5390e72bd02829213d31" - integrity sha512-LwyYBN/aSa3IPCe7gBxffx/vaC0rFxAXlCbx4QGaWGtg6qK80Ouj89LEDWb3HkMbecNVWaV4TEqJIM5WnAAx1Q== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - it-stream-types "^1.0.4" - uint8arraylist "^2.1.2" - -"@libp2p/interface-connection-manager@^1.1.0", "@libp2p/interface-connection-manager@^1.1.1": - version "1.3.7" - resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-manager/-/interface-connection-manager-1.3.7.tgz#110a3ea0a8e63461e159df7182e6246625e92bd5" - integrity sha512-GyRa7FXtwjbch4ucFa/jj6vcaQT2RyhUbH3q0tIOTzjntABTMzQrhn3BWOGU5deRp2K7cVOB/OzrdhHdGUxYQA== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/interface-connection@^3.0.0", "@libp2p/interface-connection@^3.0.1", "@libp2p/interface-connection@^3.0.2": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-3.1.0.tgz#ba7523842a0a66480a74ac6edcb462618d59cc5d" - integrity sha512-UfluPclTyJp5nBVKQVJ7Xrwp45fFYeIPuyfCpZfTKOfT/srSntA5l+094H6f1bGSj6SbwZ4V7BxCxviJQM5PBg== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - it-stream-types "^1.0.4" - uint8arraylist "^2.1.2" - -"@libp2p/interface-content-routing@^1.0.2": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@libp2p/interface-content-routing/-/interface-content-routing-1.0.7.tgz#33f91300c9716fadcb2f6068f10c8ae8283fc534" - integrity sha512-10MgDDwhS3uBaEppViBtJEVjgZohAKNLaGnzHPej0ByfnESI8DFlgpMOZVOMUlW/NpLOXxqrYuHALefuDWfqmw== - dependencies: - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" - multiformats "^10.0.0" - -"@libp2p/interface-dht@^1.0.0", "@libp2p/interface-dht@^1.0.1", "@libp2p/interface-dht@^1.0.2": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-dht/-/interface-dht-1.0.5.tgz#3918320354ffef05bb622f605bb63837d439e415" - integrity sha512-kqcHpv0VlhZbHNXVou6qOFw3UUtJBlsJi641Jh6BUZouoej8b2wp/TacOuiHvC6Uy8ACanzprzVG1Rk01mgZwA== - dependencies: - "@libp2p/interface-peer-discovery" "^1.0.0" - "@libp2p/interface-peer-id" "^1.0.0" - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" - multiformats "^10.0.0" - -"@libp2p/interface-keychain@^1.0.3": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-keychain/-/interface-keychain-1.0.8.tgz#c0785935f93900f3e03edece4a9d11dc877f8436" - integrity sha512-JqI7mMthIafP8cGhhsmIs/M0Ey+ivHLcpzqbVVzMFiFVi1dC03R7EHlalcaPn8yaLSvlmI0MqjC8lJYuvlFjfw== - dependencies: - multiformats "^10.0.0" - -"@libp2p/interface-keys@^1.0.2", "@libp2p/interface-keys@^1.0.3": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@libp2p/interface-keys/-/interface-keys-1.0.7.tgz#ad09ee7dc9c1495f1dd3e1785133c317befb4d7b" - integrity sha512-DRMPY9LfcnGJKrjaqIkY62U3fW2dya3VLy4x986ExtMrGn4kxIHeQ1IKk8/Vs9CJHTKmXEMID4of1Cjnw4aJpA== - -"@libp2p/interface-metrics@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz#7b448782e78f948abe92e2adef838e3e781f2e84" - integrity sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA== - dependencies: - "@libp2p/interface-peer-id" "^1.0.0" - it-stream-types "^1.0.4" - -"@libp2p/interface-metrics@^4.0.2": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-metrics/-/interface-metrics-4.0.5.tgz#92af389705bded1fd3ed7979768cf7a0f7b13b47" - integrity sha512-srBeky1ugu1Bzw9VHGg8ta15oLh+P2PEIsg0cI9qzDbtCJaWGq/IIetpfuaJNVOuBD1CGEEbITNmsk4tDwIE0w== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - -"@libp2p/interface-peer-discovery@^1.0.0", "@libp2p/interface-peer-discovery@^1.0.1": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.5.tgz#0fb935d55221e0ff58b4dad93646111a4fc7dcdf" - integrity sha512-R0TN/vDaCJLvRhop0y4qoPqapHxX4AEQDEtqmpayAA1BuPgbBq4fS4mepR3FAMcNva/szeqVCDuI4gDejtCaVg== - dependencies: - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" - -"@libp2p/interface-peer-id@^1.0.0", "@libp2p/interface-peer-id@^1.0.2", "@libp2p/interface-peer-id@^1.0.4", "@libp2p/interface-peer-id@^1.0.5": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz#22cbfb4707949cd49c3271a871172221d6920049" - integrity sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA== - dependencies: - multiformats "^10.0.0" - -"@libp2p/interface-peer-id@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz#445632909d44a8ae2c736bb2aa98c8bf757e8c62" - integrity sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA== - dependencies: - multiformats "^11.0.0" - -"@libp2p/interface-peer-info@^1.0.0", "@libp2p/interface-peer-info@^1.0.1", "@libp2p/interface-peer-info@^1.0.2", "@libp2p/interface-peer-info@^1.0.3": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-info/-/interface-peer-info-1.0.8.tgz#8380e9e40d0ec2c8be8e1a43e8a82ae97a0687c4" - integrity sha512-LRvZt/9bZFYW7seAwuSg2hZuPl+FRTAsij5HtyvVwmpfVxipm6yQrKjQ+LiK/SZhIDVsSJ+UjF0mluJj+jeAzQ== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/interface-peer-routing@^1.0.0", "@libp2p/interface-peer-routing@^1.0.1": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-routing/-/interface-peer-routing-1.0.8.tgz#6b6fc75f81791aade95c5d77b9719ead4ea5c77e" - integrity sha512-ArJWymWvHqVNyHSZ+7T9av2A4r0f1zTPMKe3+7BOX3n2mB8hP2nNMz/Kiun41TH0t80zMiXE73ZD29is27yt9g== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" - -"@libp2p/interface-peer-store@^1.2.0", "@libp2p/interface-peer-store@^1.2.1", "@libp2p/interface-peer-store@^1.2.2": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-store/-/interface-peer-store-1.2.8.tgz#d36ca696cf4ac377dbdd13b132a378f161e64ad3" - integrity sha512-FM9VLmpg9CUBKZ2RW+J7RrQfQVMksLiC8oqENqHgb/VkPJY3kafbn7HIi0NcK6H/H5VcwBIhL15SUJk66O1K6g== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interface-record" "^2.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/interface-pubsub@^2.0.0", "@libp2p/interface-pubsub@^2.0.1", "@libp2p/interface-pubsub@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz#bf98d51c371018cd3d7d165dbc8e95f7cc1537d2" - integrity sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-peer-id" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" - it-pushable "^3.0.0" - uint8arraylist "^2.0.0" - -"@libp2p/interface-pubsub@^3.0.0": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface-pubsub/-/interface-pubsub-3.0.6.tgz#416f52d44ebc7e62e6b5caf086aff3e429e4a950" - integrity sha512-c1aVHAhxmEh9IpLBgJyCsMscVDl7YUeP1Iq6ILEQoWiPJhNpQqdfmqyk7ZfrzuBU19VFe1EqH0bLuLDbtfysTQ== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interfaces" "^3.0.0" - it-pushable "^3.0.0" - uint8arraylist "^2.1.2" - -"@libp2p/interface-record@^2.0.0", "@libp2p/interface-record@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface-record/-/interface-record-2.0.6.tgz#44597e144bc3e9960cc64f8c5fcd9822ea3e283f" - integrity sha512-4EtDkY3sbYapWM8++gVHlv31HZXoLmj9I7CRXUKXzFkVE0GLK/A8jYWl7K0lmf2juPjeYm2eHITeA9/wAtIS3w== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - uint8arraylist "^2.1.2" - -"@libp2p/interface-registrar@^2.0.0", "@libp2p/interface-registrar@^2.0.3": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@libp2p/interface-registrar/-/interface-registrar-2.0.9.tgz#160eaa9294642928f272894c23989f6b719538c3" - integrity sha512-+aZg7SB8fIddE4/PojnHY2Y29vwr4YtnXxro3db/TYWAsWNGlgZusFEZYqBMpV/1KpEFBdi3O7r50bv/2fRusQ== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-peer-id" "^2.0.0" - -"@libp2p/interface-stream-muxer@^3.0.0": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.5.tgz#7cc6e3887e133e1ef54a515c9e21d7b889974c59" - integrity sha512-815aJ+qVswNcTEOuOUTcB+7OLzAfROyjjqoWpK0bD0P/xqTHqOQcqdaDuK02zPuAZqYq9uR3+SoBasrCg6k3zw== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interfaces" "^3.0.0" - it-stream-types "^1.0.4" - -"@libp2p/interface-transport@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/interface-transport/-/interface-transport-1.0.4.tgz#b36206b629878462bc6a1b8034998af02f810c24" - integrity sha512-MOkhtykUrrbgHC1CcAFe/6QTz/BEBbHfu5sf+go6dhBlHXeHI+AcV8Fic5zTZNz71E1SRi2UR+5TVi7ORPL57Q== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - it-stream-types "^1.0.4" - -"@libp2p/interface-transport@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/interface-transport/-/interface-transport-2.1.1.tgz#e463f30b272494c177d3a0bd494545616fd7b624" - integrity sha512-xDM/s8iPN/XfNqD9qNelibRMPKkhOLinXwQeNtoTZjarq+Cg6rtO6/5WBG/49hyI3+r+5jd2eykjPGQbb86NFQ== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-stream-muxer" "^3.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - it-stream-types "^1.0.4" - -"@libp2p/interfaces@^3.0.0", "@libp2p/interfaces@^3.0.2", "@libp2p/interfaces@^3.0.3", "@libp2p/interfaces@^3.2.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.1.tgz#519c77c030b10d776250bbebf65990af53ccb2ee" - integrity sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg== - -"@libp2p/kad-dht@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/kad-dht/-/kad-dht-5.0.2.tgz#64d28ee98f5766e291773a8d6725afb2d8a8e687" - integrity sha512-Z9f1d3DlYnt3tfF6EBSqPvsB9pnm0qs7zvIk2CdRX5vdLy//IOenepcYfgaC4nDnD/ambELq7VSdGQizGG8S5w== - dependencies: - "@libp2p/crypto" "^1.0.4" - "@libp2p/interface-address-manager" "^2.0.0" - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-connection-manager" "^1.1.1" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-metrics" "^3.0.0" - "@libp2p/interface-peer-discovery" "^1.0.1" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interface-peer-store" "^1.2.2" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@libp2p/peer-collections" "^2.2.0" - "@libp2p/peer-id" "^1.1.15" - "@libp2p/record" "^2.0.2" - "@libp2p/topology" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - any-signal "^3.0.0" - datastore-core "^8.0.1" - err-code "^3.0.1" - hashlru "^2.3.0" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-first "^2.0.0" - it-length "^2.0.0" - it-length-prefixed "^8.0.2" - it-map "^2.0.0" - it-merge "^2.0.0" - it-parallel "^3.0.0" - it-pipe "^2.0.3" - it-stream-types "^1.0.4" - it-take "^2.0.0" - k-bucket "^5.1.0" - multiformats "^10.0.0" - p-defer "^4.0.0" - p-queue "^7.2.0" - private-ip "^2.3.3" - protons-runtime "^4.0.1" - timeout-abort-controller "^3.0.0" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - -"@libp2p/logger@^2.0.0", "@libp2p/logger@^2.0.1", "@libp2p/logger@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-2.0.6.tgz#ede3a870d2f90ccf1389e2923a7a590672823821" - integrity sha512-PfTGCBT6buiGeww7heG1JucBK2io2sJ2hntNh+gTVohRy4FyEvZixnWfIVD2rCM8EsbZu3Hmt/qqetzX5BrziQ== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - debug "^4.3.3" - interface-datastore "^8.0.0" - multiformats "^11.0.0" - -"@libp2p/mdns@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/mdns/-/mdns-5.1.1.tgz#956b5dcf806d15c01cb7d489c27ad3f880cc2019" - integrity sha512-fLNcKHtJ1VfAdUHrqLHMiCLrpsWGk8OkZYQN8spwZ1MiX38jqEh5jbPF/m6YmMxnj7UGmaFOnaMhHdhMXWJSvQ== - dependencies: - "@libp2p/interface-peer-discovery" "^1.0.1" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@libp2p/peer-id" "^1.1.15" - "@multiformats/multiaddr" "^11.0.0" - "@types/multicast-dns" "^7.2.1" - multicast-dns "^7.2.0" - multiformats "^10.0.0" - -"@libp2p/mplex@^7.0.0": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-7.1.1.tgz#557567fb6575c471eaa283175c2305d3ef6045fb" - integrity sha512-0owK1aWgXXtjiohXtjwLV7Ehjdj96eBtsapVt7AzlHA+W8uYnI+x058thq3MisyMDlHiiE3BTh6fEf+t2/0dUw== - dependencies: - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-stream-muxer" "^3.0.0" - "@libp2p/logger" "^2.0.0" - abortable-iterator "^4.0.2" - any-signal "^3.0.0" - benchmark "^2.1.4" - err-code "^3.0.1" - it-batched-bytes "^1.0.0" - it-pushable "^3.1.0" - it-stream-types "^1.0.4" - rate-limiter-flexible "^2.3.9" - uint8arraylist "^2.1.1" - uint8arrays "^4.0.2" - varint "^6.0.0" - -"@libp2p/multistream-select@^3.0.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-3.1.2.tgz#2302ac57daa443ceced8481a83c58e39ab601b3f" - integrity sha512-NfF0fwQM4sqiLuNGBVc9z2mfz3OigOfyLJ5zekRBGYHkbKWrBRFS3FligUPr9roCOzH6ojjDkKVd5aK9/llfJQ== - dependencies: - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - it-first "^2.0.0" - it-handshake "^4.1.2" - it-length-prefixed "^8.0.3" - it-merge "^2.0.0" - it-pipe "^2.0.4" - it-pushable "^3.1.0" - it-reader "^6.0.1" - it-stream-types "^1.0.4" - p-defer "^4.0.0" - uint8arraylist "^2.3.1" - uint8arrays "^4.0.2" - -"@libp2p/peer-collections@^2.0.0", "@libp2p/peer-collections@^2.2.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-2.2.2.tgz#70cdddaeaae6c91526b423d30c6002ac3c7a785e" - integrity sha512-sL1A0LBHJAlvqROe+OT61Y6Rg7ff+B+YNDZj+3f/LGvDssyffAQX78cXU+lWKPsT+AwHt7Sk7sO4CsYJbdOScQ== - dependencies: - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/peer-id" "^1.1.0" - -"@libp2p/peer-id-factory@^1.0.18", "@libp2p/peer-id-factory@^1.0.19": - version "1.0.20" - resolved "https://registry.yarnpkg.com/@libp2p/peer-id-factory/-/peer-id-factory-1.0.20.tgz#751d7dc99a4bae1513fc2602a13532c342f83d68" - integrity sha512-+fHhbmDK9Ws6Dmj2ZmfrQouQTZEbTS3FCi3nUDJnnjIS95+radaP085IVkNJYJeeWpxJV90D4EUwtoy83PaoCw== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-keys" "^1.0.2" - "@libp2p/interface-peer-id" "^1.0.0" - "@libp2p/peer-id" "^1.0.0" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -"@libp2p/peer-id@^1.0.0", "@libp2p/peer-id@^1.1.0", "@libp2p/peer-id@^1.1.10", "@libp2p/peer-id@^1.1.11", "@libp2p/peer-id@^1.1.13", "@libp2p/peer-id@^1.1.15", "@libp2p/peer-id@^1.1.16", "@libp2p/peer-id@^1.1.8", "@libp2p/peer-id@^1.1.9": - version "1.1.18" - resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-1.1.18.tgz#f176d7150930d365201b13b97f17c10796afa910" - integrity sha512-Zh3gzbrQZKDMLpoJAJB8gdGtyYFSBKV0dU5vflQ18/7MJDJmjsgKO+sJTYi72yN5sWREs1eGKMhxLo+N1ust5w== - dependencies: - "@libp2p/interface-peer-id" "^1.0.0" - err-code "^3.0.1" - multiformats "^10.0.0" - uint8arrays "^4.0.2" - -"@libp2p/peer-record@^4.0.1", "@libp2p/peer-record@^4.0.3": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-4.0.5.tgz#e83ae0b9ef0d31c4c884599198c47763734a0a4c" - integrity sha512-o4v6N5B0hsx94TnSkLD7v8GmyQ/pNJbhy+pY8YDsmPhcwAGTnpRdlxWZraMBz8ut+vGoD7E34IdMMgJX/tgAJA== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-record" "^2.0.1" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.13" - "@libp2p/utils" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - err-code "^3.0.1" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-filter "^2.0.0" - it-foreach "^1.0.0" - it-map "^2.0.0" - it-pipe "^2.0.3" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - uint8-varint "^1.0.2" - uint8arraylist "^2.1.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - -"@libp2p/peer-store@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-5.0.1.tgz#cd4dbc26bd0ef3ed43c1a7c120f3ec750e343b33" - integrity sha512-TeHxy5Qv+KzajbEZH1wdE6ubk8G7IUyU+Dyl4W06unZpxq6rD+OTnCkvYuEdglROUxmvSBEkFqJnxV6xgVBWJA== - dependencies: - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interface-peer-store" "^1.2.2" - "@libp2p/interface-record" "^2.0.1" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.15" - "@libp2p/peer-record" "^4.0.3" - "@multiformats/multiaddr" "^11.0.0" - err-code "^3.0.1" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-filter "^2.0.0" - it-foreach "^1.0.0" - it-map "^2.0.0" - it-pipe "^2.0.3" - mortice "^3.0.0" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - uint8arraylist "^2.1.1" - uint8arrays "^4.0.2" - -"@libp2p/pubsub@^3.1.2": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-3.1.3.tgz#bd4e363cddc88a11ab24665aadb8933d13896e5b" - integrity sha512-lo3Ay3NHdll2Wt0kzs2RNyWagyECGDx7d4dyKwGQgzhZyoy3FnYQW8vbMLyLLX1FV9DSiWEbFsBxX2MKJXUMyQ== - dependencies: - "@libp2p/components" "^2.0.0" - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-pubsub" "^2.0.0" - "@libp2p/interface-registrar" "^2.0.0" - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-collections" "^2.0.0" - "@libp2p/peer-id" "^1.1.0" - "@libp2p/topology" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - it-length-prefixed "^8.0.2" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - multiformats "^9.6.3" - p-queue "^7.2.0" - uint8arraylist "^2.0.0" - uint8arrays "^3.0.0" - -"@libp2p/pubsub@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-5.0.1.tgz#24523e3285cc15faddebe1504485b31124d09e35" - integrity sha512-pQNpUC6KWDKCm7A9bv4tT2t3a7a4IpJdfzHsRBjAaKEcIRgP/s/q0Xn8ySdcggg1fvdjMp5VY6NfuuRbSCu9LA== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-pubsub" "^3.0.0" - "@libp2p/interface-registrar" "^2.0.0" - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-collections" "^2.0.0" - "@libp2p/peer-id" "^1.1.0" - "@libp2p/topology" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - it-length-prefixed "^8.0.2" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - multiformats "^10.0.0" - p-queue "^7.2.0" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -"@libp2p/record@^2.0.2", "@libp2p/record@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/record/-/record-2.0.4.tgz#f9592d834908e9b084c54bb63b3986c30b32bcf1" - integrity sha512-BLdw/zDh4Nq65nKD/BRKad7++h2pPwY7IxoZNyEN4uvCo6knmfTSlKwqlw4NCYaH27YcupXrhKZ2WAoYjt5ACw== - dependencies: - "@libp2p/interface-dht" "^1.0.0" - err-code "^3.0.1" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - uint8arraylist "^2.1.1" - uint8arrays "^4.0.2" - -"@libp2p/tcp@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/tcp/-/tcp-5.0.2.tgz#dd06a8f8e67897342fefb23c729e4125cb9155fb" - integrity sha512-Lm8RhqfvqJ7SffeausXNHeRT8QC5HXWWI6X9HuLVgl/jZDGKhI0FUWv3J48lUhpvmH4wQyMFLVuZrTukS4F/6g== - dependencies: - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/utils" "^3.0.2" - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - stream-to-it "^0.2.2" - -"@libp2p/topology@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/topology/-/topology-3.0.2.tgz#b3c8dffd01d2ce222e867412f6898af9bd08e8fb" - integrity sha512-RDMmA8Us5uxl7sSWGoTIYyzdthjs6xQD1P/vBQPHlqTAjpjPWuCY019cbqK8lP1JCldCB/n2ljSxDJs1J4cweQ== - dependencies: - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/logger" "^2.0.1" - err-code "^3.0.1" - it-all "^2.0.0" - -"@libp2p/tracked-map@^2.0.0", "@libp2p/tracked-map@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/tracked-map/-/tracked-map-2.0.2.tgz#3ff2d34607a6cfbed95b0dc6a360631f99938df9" - integrity sha512-y5UnoB5NR+i7Xp/wPrHYyJxiNRS0/3ee8chphTG8GptdTWqWcZ+UALKXMb9neMtFL9pivNrOY+A0d+M60eI+RA== - dependencies: - "@libp2p/interface-metrics" "^3.0.0" - -"@libp2p/utils@^3.0.0", "@libp2p/utils@^3.0.1", "@libp2p/utils@^3.0.2": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-3.0.4.tgz#2eb9b8694fa1c3e25e9fa7aa98907a0660aea278" - integrity sha512-EWJNJtlop2ylmGE1BNiMA0u4eTLKoY0LbZ/DOvSDs9VlGSLua9J+LUjp6XV8lazGv7l1rOLiU+1hP5fcmg1+eg== - dependencies: - "@achingbrain/ip-address" "^8.1.0" - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-peer-store" "^1.2.1" - "@libp2p/logger" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - is-loopback-addr "^2.0.1" - it-stream-types "^1.0.4" - private-ip "^3.0.0" - uint8arraylist "^2.3.2" - -"@libp2p/webrtc-peer@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/webrtc-peer/-/webrtc-peer-2.0.2.tgz#71c240e34905c6c97e20fdf703cec025c745c155" - integrity sha512-FozliUqHO1CIzrL8hPc5uT+5AGUWf5Dw3HncL9tte/CoDNVpj6O59ITIRWefssp3oIGEAIjpcebNu1d+mYfVug== - dependencies: - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - delay "^5.0.0" - err-code "^3.0.1" - iso-random-stream "^2.0.2" - it-pushable "^3.0.0" - it-stream-types "^1.0.4" - p-defer "^4.0.0" - p-event "^5.0.1" - uint8arrays "^4.0.2" - -"@libp2p/webrtc-star-protocol@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/webrtc-star-protocol/-/webrtc-star-protocol-2.0.1.tgz#4d1fc5fd3be029eef178b7f579dd1c6858a71810" - integrity sha512-7pOQHWhfCfEQXVdLPqhi0cC0eyYVklzNtNZlEEXcAQ3zRFpAeZsMwg5wowXs1Udu7oxKwog3w3FbgHmvwqStMg== - dependencies: - "@multiformats/multiaddr" "^11.0.0" - socket.io-client "^4.1.2" - -"@libp2p/webrtc-star@^5.0.2": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@libp2p/webrtc-star/-/webrtc-star-5.0.3.tgz#ed894fa609f260839ec86477ebc95b27c4973624" - integrity sha512-tGH72ARnuHaj5FlLMrdU4B2PIZMgUKdS40YqlIu5w9zo4csZ8n07oRHt0B+gRnahLd8wY80uiS6CnmTC5c0skg== - dependencies: - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-peer-discovery" "^1.0.0" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.9" - "@libp2p/utils" "^3.0.1" - "@libp2p/webrtc-peer" "^2.0.0" - "@libp2p/webrtc-star-protocol" "^2.0.0" - "@multiformats/mafmt" "^11.0.2" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - delay "^5.0.0" - err-code "^3.0.1" - iso-random-stream "^2.0.2" - multiformats "^10.0.0" - p-defer "^4.0.0" - socket.io-client "^4.1.2" - uint8arrays "^4.0.2" - -"@libp2p/websockets@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/websockets/-/websockets-5.0.5.tgz#be2ac6e4306e0f6261bb093bd2b9bf1bc49cd640" - integrity sha512-gp6OI/2cBBkbUKw7XougNC8/XZe1fe5eSngWDSE99/wGykwDzyKPnYikUAGhJ4X1VuBDAjogZuJp7PtDif1QPQ== - dependencies: - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/utils" "^3.0.2" - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/multiaddr-to-uri" "^9.0.2" - abortable-iterator "^4.0.2" - it-ws "^5.0.6" - p-defer "^4.0.0" - p-timeout "^6.0.0" - wherearewe "^2.0.1" - ws "^8.12.1" - -"@lit-labs/ssr-dom-shim@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz#427e19a2765681fd83411cd72c55ba80a01e0523" - integrity sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw== +"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" + integrity sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ== "@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.1.tgz#0d958b6d479d0e3db5fc1132ecc4fa84be3f0b93" - integrity sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA== + version "1.6.2" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.2.tgz#c256690f82f2d7d0ffb0b1cdf68dcb1ec86cea28" + integrity sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA== dependencies: "@lit-labs/ssr-dom-shim" "^1.0.0" @@ -3564,21 +2705,6 @@ globby "^11.0.0" read-yaml-file "^1.1.0" -"@mapbox/node-pre-gyp@^1.0.5": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" - integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== - dependencies: - detect-libc "^2.0.0" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.7" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" - "@mattrglobal/bbs-signatures@0.5.0", "@mattrglobal/bbs-signatures@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz#c8e3842a657cabbf7f1e16db06f77c9f84a42f3f" @@ -3634,53 +2760,16 @@ "@types/mdx" "^2.0.0" "@types/react" ">=16" +"@msgpack/msgpack@3.0.0-beta2": + version "3.0.0-beta2" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-3.0.0-beta2.tgz#5bccee30f84df220b33905e3d8249ba96deca0b7" + integrity sha512-y+l1PNV0XDyY8sM3YtuMLK5vE3/hkfId+Do8pLo/OPxfxuFAUwcGz3oiiUuV46/aBpwTzZ+mRWVMtlSKbradhw== + "@msgpack/msgpack@^2.7.2": version "2.8.0" resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== -"@multiformats/mafmt@^11.0.2", "@multiformats/mafmt@^11.0.3": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-11.1.0.tgz#0ba5d5556b7e39afdb02fc5f04d0cc8517dd0221" - integrity sha512-ZGuP26SIbBZutDN/QhqGwuu7b1zTO9DLvG4l3fh15ambPmcwS811MQIyW+d+9Vl7ASheB0qJq0sJrMKsHS3dXA== - dependencies: - "@multiformats/multiaddr" "^11.0.0" - -"@multiformats/multiaddr-to-uri@^9.0.1", "@multiformats/multiaddr-to-uri@^9.0.2": - version "9.0.2" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.2.tgz#4461df67f0c5cd02b21e1d0d1e34831d849b62a7" - integrity sha512-vrWmfFadmix5Ab9l//oRQdQ7O3J5bGJpJRMSm21bHlQB0XV4xtNU6vMZBVXeu3Su79LgflEp37cjTFE3yKf3Hw== - dependencies: - "@multiformats/multiaddr" "^11.0.0" - -"@multiformats/multiaddr@^11.0.0": - version "11.6.1" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-11.6.1.tgz#ec46984a298e715e27a398434c087856db5f3185" - integrity sha512-doST0+aB7/3dGK9+U5y3mtF3jq85KGbke1QiH0KE1F5mGQ9y56mFebTeu2D9FNOm+OT6UHb8Ss8vbSnpGjeLNw== - dependencies: - "@chainsafe/is-ip" "^2.0.1" - dns-over-http-resolver "^2.1.0" - err-code "^3.0.1" - multiformats "^11.0.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - -"@multiformats/murmur3@^2.0.0": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@multiformats/murmur3/-/murmur3-2.1.3.tgz#eb690132bcc898d74257287d133cdf693f81f888" - integrity sha512-YvLK1IrLnRckPsvXhOkZjaIGNonsEdD1dL3NPSaLilV/WjVYeBgnNZXTUsaPzFXGrIFM7motx+yCmmqzXO6gtQ== - dependencies: - multiformats "^11.0.0" - murmurhash3js-revisited "^3.0.0" - -"@multiformats/uri-to-multiaddr@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@multiformats/uri-to-multiaddr/-/uri-to-multiaddr-7.0.0.tgz#25fa4b5a4eddc493b5140d70839f95482f64bd00" - integrity sha512-mB/I4znETEZA/PmflXmnjWj3ENcyJg6Yv3EQQbIdA5n9fJ43c58uMF2Ew7yXtl0Wxt4d1pAVFA6fki2xFrHGew== - dependencies: - "@multiformats/multiaddr" "^11.0.0" - is-ip "^5.0.0" - "@napi-rs/simple-git-android-arm-eabi@0.1.8": version "0.1.8" resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.8.tgz#303bea1ec00db24466e3b3ba13de337d87c5371b" @@ -3817,12 +2906,12 @@ dependencies: eslint-scope "5.1.1" -"@noble/ed25519@^1.6.0": - version "1.7.3" - resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" - integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== -"@noble/secp256k1@^1.5.4", "@noble/secp256k1@^1.7.0": +"@noble/secp256k1@^1.7.0": version "1.7.1" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== @@ -3848,7 +2937,7 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": +"@peculiar/asn1-schema@^2.3.6": version "2.3.6" resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== @@ -3865,15 +2954,15 @@ tslib "^2.0.0" "@peculiar/webcrypto@^1.1.3", "@peculiar/webcrypto@^1.1.6", "@peculiar/webcrypto@^1.1.7": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz#821493bd5ad0f05939bd5f53b28536f68158360a" - integrity sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw== + version "1.4.3" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" + integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== dependencies: - "@peculiar/asn1-schema" "^2.3.0" + "@peculiar/asn1-schema" "^2.3.6" "@peculiar/json-schema" "^1.1.12" pvtsutils "^1.3.2" - tslib "^2.4.1" - webcrypto-core "^1.7.4" + tslib "^2.5.0" + webcrypto-core "^1.7.7" "@perspect3vism/rollup-plugin-dna@^0.0.2": version "0.0.2" @@ -3895,27 +2984,6 @@ schema-utils "^3.0.0" source-map "^0.7.3" -"@pnpm/config.env-replace@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz#c76fa65847c9554e88d910f264c2ba9a1575e833" - integrity sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA== - -"@pnpm/network.ca-file@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" - integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== - dependencies: - graceful-fs "4.2.10" - -"@pnpm/npm-conf@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.1.0.tgz#1bbecd961a1ea447f209556728e2dcadddb0bca6" - integrity sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw== - dependencies: - "@pnpm/config.env-replace" "^1.0.0" - "@pnpm/network.ca-file" "^1.0.1" - config-chain "^1.1.11" - "@popperjs/core@^2.11.6": version "2.11.8" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" @@ -3940,30 +3008,30 @@ kolorist "^1.2.10" resolve "^1.20.0" -"@prefresh/babel-plugin@0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@prefresh/babel-plugin/-/babel-plugin-0.4.4.tgz#54872f9f938d3adff587037ab987c5e6449bdfee" - integrity sha512-/EvgIFMDL+nd20WNvMO0JQnzIl1EJPgmSaSYrZUww7A+aSdKsi37aL07TljrZR1cBMuzFxcr4xvqsUQLFJEukw== +"@prefresh/babel-plugin@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@prefresh/babel-plugin/-/babel-plugin-0.5.0.tgz#61d8ef959007390077c9eddb7e9307c46e19277c" + integrity sha512-joAwpkUDwo7ZqJnufXRGzUb+udk20RBgfA8oLPBh5aJH2LeStmV1luBfeJTztPdyCscC2j2SmZ/tVxFRMIxAEw== -"@prefresh/core@^1.3.3": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@prefresh/core/-/core-1.4.1.tgz#b75a917b500e5373aeb9c485f18ca91e1d4433a8" - integrity sha512-og1vaBj3LMJagVncNrDb37Gqc0cWaUcDbpVt5hZtsN4i2Iwzd/5hyTsDHvlMirhSym3wL9ihU0Xa2VhSaOue7g== +"@prefresh/core@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@prefresh/core/-/core-1.5.1.tgz#2f51c0dd509a7b302d67ee889815653abdf4c0d1" + integrity sha512-e0mB0Oxtog6ZpKPDBYbzFniFJDIktuKMzOHp7sguntU+ot0yi6dbhJRE9Css1qf0u16wdSZjpL2W2ODWuU05Cw== -"@prefresh/utils@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@prefresh/utils/-/utils-1.1.3.tgz#c764c6c8f0917f0a72ae14ec57ed8befde3f9bac" - integrity sha512-Mb9abhJTOV4yCfkXrMrcgFiFT7MfNOw8sDa+XyZBdq/Ai2p4Zyxqsb3EgHLOEdHpMj6J9aiZ54W8H6FTam1u+A== +"@prefresh/utils@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@prefresh/utils/-/utils-1.2.0.tgz#cbdfe549b207041e38bb6cc382408b30cd24fec8" + integrity sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ== "@prefresh/vite@^2.2.8", "@prefresh/vite@^2.2.9": - version "2.2.9" - resolved "https://registry.yarnpkg.com/@prefresh/vite/-/vite-2.2.9.tgz#e719126fbba3f0de93f1f95d494ab44d064243c1" - integrity sha512-1ERBF85Ja9/lkrfaltmo4Gca7R2ClQPSHHDDysFgfvPzHmLUeyB0x9WHwhwov/AA1DnyPhsfYT54z3yQd8XrgA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@prefresh/vite/-/vite-2.4.0.tgz#53fd34b8df21e4e4b03f5147a3277bb3395411d0" + integrity sha512-makifAztmlWCMx79E8tl/gMKPKe3WartplGk+GTqtXSZ/JqoTiN4nkF9GqlhATqGEvsdtRnlDGKQ09s7fneJ/Q== dependencies: "@babel/core" "^7.9.6" - "@prefresh/babel-plugin" "0.4.4" - "@prefresh/core" "^1.3.3" - "@prefresh/utils" "^1.1.2" + "@prefresh/babel-plugin" "0.5.0" + "@prefresh/core" "^1.5.1" + "@prefresh/utils" "^1.2.0" "@rollup/pluginutils" "^4.1.0" "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": @@ -4019,10 +3087,10 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@remix-run/router@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.4.0.tgz#74935d538e4df8893e47831a7aea362f295bcd39" - integrity sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q== +"@remix-run/router@1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.6.3.tgz#8205baf6e17ef93be35bf62c37d2d594e9be0dad" + integrity sha512-EXJysQ7J3veRECd0kZFQwYYd5sJMcq2O/m60zu1W2l3oVQ9xtub8jTOtYRE0+M2iomyG/W3Ps7+vp2kna0C27Q== "@rollup/plugin-alias@^3.1.5": version "3.1.9" @@ -4078,6 +3146,18 @@ magic-string "^0.25.7" resolve "^1.17.0" +"@rollup/plugin-commonjs@^25.0.4": + version "25.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz#a7547a0c4ec3fa79818eb313e1de0023e548f4e6" + integrity sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.27.0" + "@rollup/plugin-json@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" @@ -4109,6 +3189,18 @@ is-module "^1.0.0" resolve "^1.19.0" +"@rollup/plugin-node-resolve@^15.2.1": + version "15.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz#a15b14fb7969229e26a30feff2816d39eff503f0" + integrity sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" + "@rollup/plugin-node-resolve@^8.0.0": version "8.4.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" @@ -4130,6 +3222,14 @@ "@rollup/pluginutils" "^3.1.0" magic-string "^0.25.7" +"@rollup/plugin-typescript@^11.1.0": + version "11.1.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.1.tgz#258663a7aa6b51390dd39ae6e5502f2c4b2807cb" + integrity sha512-Ioir+x5Bejv72Lx2Zbz3/qGg7tvGbxQZALCLoJaGrkNXak/19+vKgKYJYM3i/fJxvsb23I9FuFQ8CUBEfsmBRg== + dependencies: + "@rollup/pluginutils" "^5.0.1" + resolve "^1.22.1" + "@rollup/plugin-typescript@^4.0.0": version "4.1.2" resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-4.1.2.tgz#6f910430276ae3e53a47a12ad65820627e7b6ad9" @@ -4155,10 +3255,19 @@ estree-walker "^2.0.1" picomatch "^2.2.2" +"@rollup/pluginutils@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" + integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + "@rushstack/eslint-patch@^1.1.0", "@rushstack/eslint-patch@^1.1.3": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" - integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== + version "1.3.1" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.1.tgz#edbb85ff95f3be41eaa70c6d6ad6d8ba0a9c7e46" + integrity sha512-RkmuBcqiNioeeBKbgzMlOdreUkJfYaSjwgx9XDgGGpjvWgyaxWvDmZVSN9CS6LjEASadhgPv2BcFp+SeouWXXA== "@samverschueren/stream-to-observable@^0.3.0", "@samverschueren/stream-to-observable@^0.3.1": version "0.3.1" @@ -4167,23 +3276,6 @@ dependencies: any-observable "^0.3.0" -"@sideway/address@^4.1.3": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" - integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" - integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - "@sinclair/typebox@^0.24.1": version "0.24.51" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" @@ -4209,11 +3301,6 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@sindresorhus/is@^5.2.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" - integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== - "@sinonjs/commons@^1.7.0": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" @@ -4235,12 +3322,12 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== +"@sinonjs/fake-timers@^10.0.2", "@sinonjs/fake-timers@^10.2.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz#b3e322a34c5f26e3184e7f6115695f299c1b1194" + integrity sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg== dependencies: - "@sinonjs/commons" "^2.0.0" + "@sinonjs/commons" "^3.0.0" "@sinonjs/fake-timers@^6.0.1": version "6.0.1" @@ -4256,10 +3343,10 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/samsam@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-7.0.1.tgz#5b5fa31c554636f78308439d220986b9523fc51f" - integrity sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw== +"@sinonjs/samsam@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" + integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== dependencies: "@sinonjs/commons" "^2.0.0" lodash.get "^4.4.2" @@ -4270,11 +3357,6 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== -"@socket.io/component-emitter@~3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" - integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== - "@stablelib/aead@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" @@ -4351,28 +3433,10 @@ "@stablelib/sha512" "^1.0.1" "@stablelib/wipe" "^1.0.1" -"@stablelib/hash@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" - integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== - -"@stablelib/hkdf@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" - integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== - dependencies: - "@stablelib/hash" "^1.0.1" - "@stablelib/hmac" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/hmac@^1.0.1": +"@stablelib/hash@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec" - integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== - dependencies: - "@stablelib/constant-time" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== "@stablelib/int@^1.0.1": version "1.0.1" @@ -4402,15 +3466,6 @@ "@stablelib/binary" "^1.0.1" "@stablelib/wipe" "^1.0.1" -"@stablelib/sha256@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" - integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - "@stablelib/sha512@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" @@ -4425,7 +3480,7 @@ resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== -"@stablelib/x25519@^1.0.0", "@stablelib/x25519@^1.0.1": +"@stablelib/x25519@^1.0.0": version "1.0.3" resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== @@ -4588,77 +3643,81 @@ dependencies: defer-to-connect "^2.0.0" -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - "@tauri-apps/api@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" - integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== + version "1.3.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.3.0.tgz#d0c853ab2cc7506bd826c5f7f260c67c7c15def5" + integrity sha512-AH+3FonkKZNtfRtGrObY38PrzEj4d+1emCbwNGu0V2ENbXjlLHMZQlUh+Bhu/CRmjaIwZMGJ3yFvWaZZgTHoog== -"@tauri-apps/cli-darwin-arm64@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.2.1.tgz#e75d6582f76b6ef33f251f9b559e7692b7892faa" - integrity sha512-WiAxSON52owFI65Whd3NjcKjXdO1zJfafBVZ3v+Y3F2zlXhRPiirXbtefAc3mvN56zDz/pfi018Qb4XesuVzHA== +"@tauri-apps/api@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.4.0.tgz#b4013ca3d17b853f7df29fe14079ebb4d52dbffa" + integrity sha512-Jd6HPoTM1PZSFIzq7FB8VmMu3qSSyo/3lSwLpoapW+lQ41CL5Dow2KryLg+gyazA/58DRWI9vu/XpEeHK4uMdw== -"@tauri-apps/cli-darwin-x64@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.2.1.tgz#3fefdb0154d7d804ea1b08fad342abec625b36e4" - integrity sha512-jfumnrn7RYKVtDmHgrQhImoxpqT51bDrO4KxgpIXaYSaf6MdG2JT72dwUovPrURw0JX2Z/Elihq+dYbrsKoV/w== +"@tauri-apps/cli-darwin-arm64@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.4.0.tgz#e76bb8515ae31f03f2cbd440c1a09b237a79b3ac" + integrity sha512-nA/ml0SfUt6/CYLVbHmT500Y+ijqsuv5+s9EBnVXYSLVg9kbPUZJJHluEYK+xKuOj6xzyuT/+rZFMRapmJD3jQ== -"@tauri-apps/cli-linux-arm-gnueabihf@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.2.1.tgz#6f5f403334b840d0085fec38cca4551c5c6b36a6" - integrity sha512-n4p6Ekn6Wa9X/klUGevEGgoWAGApGGsLrJYE4c8bKTbAUfQ9Nyzjh8gK/GDii1dg9oRW0FdXDa6BJa7aEEj9sA== +"@tauri-apps/cli-darwin-x64@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.4.0.tgz#dd1472460550d0aa0ec6e699b073be2d77e5b962" + integrity sha512-ov/F6Zr+dg9B0PtRu65stFo2G0ow2TUlneqYYrkj+vA3n+moWDHfVty0raDjMLQbQt3rv3uayFMXGPMgble9OA== -"@tauri-apps/cli-linux-arm64-gnu@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.2.1.tgz#d1c536d0fe4819029de9132974bdfb6fa08e55a7" - integrity sha512-oAHkQQGfNCh8pQQHuDzzqt+S5sOj3tiUkySaquR2z/AQEHeDGAMrRGLZwOiDw9Xvu7qxFiF9H0e5OMK7BkncDw== +"@tauri-apps/cli-linux-arm-gnueabihf@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.4.0.tgz#325e90e47d260ba71a499850ce769b5a6bdfd48d" + integrity sha512-zwjbiMncycXDV7doovymyKD7sCg53ouAmfgpUqEBOTY3vgBi9TwijyPhJOqoG5vUVWhouNBC08akGmE4dja15g== -"@tauri-apps/cli-linux-arm64-musl@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.2.1.tgz#22dd054d3ae2a923d5f7d3c7f529f48e7113ec19" - integrity sha512-1dEZ5fdFYkMyB1U7ZkDJUlwYwCeqy9Y3vXmtZ6pCxrvgs844s8+RIFDuMU42pTN+lUxfFeQARmv0LpS4eF/QWQ== +"@tauri-apps/cli-linux-arm64-gnu@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.4.0.tgz#b5d8f5cba3f8f7c7d44d071681f0ab0a37f2c46e" + integrity sha512-5MCBcziqXC72mMXnkZU68mutXIR6zavDxopArE2gQtK841IlE06bIgtLi0kUUhlFJk2nhPRgiDgdLbrPlyt7fw== -"@tauri-apps/cli-linux-x64-gnu@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.2.1.tgz#bfe23577a46a74699b27714d82162f0ae9280090" - integrity sha512-wkgCD3s5P6tgBPnn0/gDx7MXMx2Hx+jdA+JP8zdCq4cIeYXlxdZG/zXbHb5ldPadNh582lzHiGg+Pmc+wDg2fA== +"@tauri-apps/cli-linux-arm64-musl@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.4.0.tgz#f805ab2ee415875900f4b456f17dc4900d2a7911" + integrity sha512-7J3pRB6n6uNYgIfCeKt2Oz8J7oSaz2s8GGFRRH2HPxuTHrBNCinzVYm68UhVpJrL3bnGkU0ziVZLsW/iaOGfUg== -"@tauri-apps/cli-linux-x64-musl@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.2.1.tgz#dce7fb0254a1975238bdde5882115b38271ec9b7" - integrity sha512-zD+a+5cSlYVU0ECOojWp71ok/9jE0DJufzb9oky17XIKV/oiOAG60z4OYRe+oqxYS1TcBt+pUa1/2zlu/6SRdA== +"@tauri-apps/cli-linux-x64-gnu@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.4.0.tgz#d3f5e69c22420c7ac9e4021b7a94bce2e48cb45d" + integrity sha512-Zh5gfAJxOv5AVWxcwuueaQ2vIAhlg0d6nZui6nMyfIJ8dbf3aZQ5ZzP38sYow5h/fbvgL+3GSQxZRBIa3c2E1w== -"@tauri-apps/cli-win32-ia32-msvc@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.2.1.tgz#b6cb355f2d85704710c845800a29784536fb7240" - integrity sha512-nEgdRd8czaKL1RQfj946dsfzlk6atmD95Fm7NVTVOe77PFHTS3ztHeWK7X6jirCaOF3h/F7qpJVCU6JMnq2tfA== +"@tauri-apps/cli-linux-x64-musl@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.4.0.tgz#2e7f718272ffdd9ace80f57a35023ba0c74767ad" + integrity sha512-OLAYoICU3FaYiTdBsI+lQTKnDHeMmFMXIApN0M+xGiOkoIOQcV9CConMPjgmJQ867+NHRNgUGlvBEAh9CiJodQ== -"@tauri-apps/cli-win32-x64-msvc@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.2.1.tgz#b2b431ffed68fab9024d59ac2a2bafb02c5b9a5a" - integrity sha512-ceWiQkmNNRrnfgbLMnndT4QF1IyLK7aOJsMqS/HueshAwmVQWnC1DUE0C58Taetgq38Cavc4gGnZOCHuH6ZuTw== +"@tauri-apps/cli-win32-arm64-msvc@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.4.0.tgz#85cdb52a06feb92da785def4d02512099464525e" + integrity sha512-gZ05GENFbI6CB5MlOUsLlU0kZ9UtHn9riYtSXKT6MYs8HSPRffPHaHSL0WxsJweWh9nR5Hgh/TUU8uW3sYCzCg== -"@tauri-apps/cli@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.2.1.tgz#d7f61547915a8b052a92197ac70b8322838c6d2d" - integrity sha512-JrFFT1/4V+AGSRjKdgszZwOr+/a1519LDhNxBkbsIg6D/kFK+3kk1qImaQBY9DvvIWK6IV4whc8OAkgxm+Sl3w== +"@tauri-apps/cli-win32-ia32-msvc@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.4.0.tgz#0b7c921204058215aec9a5a00f735e73909bd330" + integrity sha512-JsetT/lTx/Zq98eo8T5CiRyF1nKeX04RO8JlJrI3ZOYsZpp/A5RJvMd/szQ17iOzwiHdge+tx7k2jHysR6oBlQ== + +"@tauri-apps/cli-win32-x64-msvc@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.4.0.tgz#23abe3f08c0df89111c29602f91c21a23577b908" + integrity sha512-z8Olcnwp5aYhzqUAarFjqF+oELCjuYWnB2HAJHlfsYNfDCAORY5kct3Fklz8PSsubC3U2EugWn8n42DwnThurg== + +"@tauri-apps/cli@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.4.0.tgz#72732ae61e6b7d097e44a8a2ef5f211b2d01d98b" + integrity sha512-VXYr2i2iVFl98etQSQsqLzXgX96bnWiNZd1YADgatqwy/qecbd6Kl5ZAPB5R4ynsgE8A1gU7Fbzh7dCEQYFfmA== optionalDependencies: - "@tauri-apps/cli-darwin-arm64" "1.2.1" - "@tauri-apps/cli-darwin-x64" "1.2.1" - "@tauri-apps/cli-linux-arm-gnueabihf" "1.2.1" - "@tauri-apps/cli-linux-arm64-gnu" "1.2.1" - "@tauri-apps/cli-linux-arm64-musl" "1.2.1" - "@tauri-apps/cli-linux-x64-gnu" "1.2.1" - "@tauri-apps/cli-linux-x64-musl" "1.2.1" - "@tauri-apps/cli-win32-ia32-msvc" "1.2.1" - "@tauri-apps/cli-win32-x64-msvc" "1.2.1" + "@tauri-apps/cli-darwin-arm64" "1.4.0" + "@tauri-apps/cli-darwin-x64" "1.4.0" + "@tauri-apps/cli-linux-arm-gnueabihf" "1.4.0" + "@tauri-apps/cli-linux-arm64-gnu" "1.4.0" + "@tauri-apps/cli-linux-arm64-musl" "1.4.0" + "@tauri-apps/cli-linux-x64-gnu" "1.4.0" + "@tauri-apps/cli-linux-x64-musl" "1.4.0" + "@tauri-apps/cli-win32-arm64-msvc" "1.4.0" + "@tauri-apps/cli-win32-ia32-msvc" "1.4.0" + "@tauri-apps/cli-win32-x64-msvc" "1.4.0" "@testing-library/dom@^8.0.0": version "8.20.0" @@ -4733,11 +3792,6 @@ mermaid "10.2.1" unist-util-visit "4.1.2" -"@tokenizer/token@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" - integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== - "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -4774,7 +3828,7 @@ canonicalize "^1.0.3" cbor "^5.1.0" -"@transmute/did-key-ed25519@^0.2.1-unstable.29", "@transmute/did-key-ed25519@^0.2.1-unstable.42": +"@transmute/did-key-ed25519@^0.2.1-unstable.42": version "0.2.1-unstable.42" resolved "https://registry.yarnpkg.com/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz#b319eea9991f3ed092c221fee69bbe1edd71d8a1" integrity sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw== @@ -4787,7 +3841,7 @@ bs58 "^4.0.1" canonicalize "^1.0.1" -"@transmute/did-key-secp256k1@^0.2.1-unstable.29", "@transmute/did-key-secp256k1@^0.2.1-unstable.42": +"@transmute/did-key-secp256k1@^0.2.1-unstable.42": version "0.2.1-unstable.42" resolved "https://registry.yarnpkg.com/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz#619a2bcc10c53adb831930610f1c49f5ec771261" integrity sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ== @@ -4831,14 +3885,6 @@ "@transmute/did-key-web-crypto" "^0.2.1-unstable.42" "@transmute/did-key-x25519" "^0.2.1-unstable.42" -"@transmute/did-wallet@lucksus/did-wallet": - version "0.0.0-6" - resolved "https://codeload.github.com/lucksus/did-wallet/tar.gz/cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2" - dependencies: - base64url "^3.0.1" - jsonschema "^1.2.4" - lodash "^4.17.11" - "@transmute/ld-key-pair@^0.6.1-unstable.37": version "0.6.1-unstable.37" resolved "https://registry.yarnpkg.com/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz#ffe8af071b4ea991a49c795724b93999f4e6c8af" @@ -4883,9 +3929,9 @@ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@tsconfig/svelte@^1.0.0": version "1.0.13" @@ -4912,9 +3958,9 @@ integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" - integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" + integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -4938,18 +3984,11 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" - integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== - dependencies: - "@babel/types" "^7.3.0" - -"@types/bn.js@*": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" + integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== dependencies: - "@types/node" "*" + "@babel/types" "^7.20.7" "@types/body-parser@*", "@types/body-parser@1.19.2": version "1.19.2" @@ -4984,14 +4023,14 @@ "@types/chai" "*" "@types/chai@*": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== + version "4.3.5" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" + integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== "@types/connect-history-api-fallback@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + version "1.5.0" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" + integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" @@ -5015,20 +4054,6 @@ dependencies: "@types/ms" "*" -"@types/dns-packet@*": - version "5.2.4" - resolved "https://registry.yarnpkg.com/@types/dns-packet/-/dns-packet-5.2.4.tgz#0de4ee48f900a62b014ce61a3c9ab5d33dc06b0d" - integrity sha512-OAruArypdNxR/tzbmrtoyEuXeNTLaZCpO19BXaNC10T5ACIbvjmvhmV2RDEy2eLc3w8IjK7SY3cvUCcAW+sfoQ== - dependencies: - "@types/node" "*" - -"@types/elliptic@^6.4.9": - version "6.4.14" - resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.14.tgz#7bbaad60567a588c1f08b10893453e6b9b4de48e" - integrity sha512-z4OBcDAU0GVwDTuwJzQCiL6188QvZMkvoERgcVjq0/mPM8jCfdwZ3x5zQEVoL9WCAru3aG5wl3Z5Ww5wBWn7ZQ== - dependencies: - "@types/bn.js" "*" - "@types/eslint-scope@^3.7.3": version "3.7.4" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" @@ -5038,9 +4063,9 @@ "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.21.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.2.tgz#2b61b43a8b0e66006856a2a4c8e51f6f773ead27" - integrity sha512-EMpxUyystd3uZVByZap1DACsMXvb82ypQnGn89e1Y0a+LYu3JJscUd/gqhRsVFDkaD2MIiWo0MT8EfXr3DGRKw== + version "8.40.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.0.tgz#ae73dc9ec5237f2794c4f79efd6a4c73b13daf23" + integrity sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -5052,26 +4077,16 @@ dependencies: "@types/estree" "*" -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== - "@types/expect@*": version "24.3.0" resolved "https://registry.yarnpkg.com/@types/expect/-/expect-24.3.0.tgz#d7cab8b3c10c2d92a0cbb31981feceb81d3486f1" @@ -5080,13 +4095,14 @@ expect "*" "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.33": - version "4.17.33" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" - integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" + "@types/send" "*" "@types/express-serve-static-core@4.17.31": version "4.17.31" @@ -5097,7 +4113,7 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14", "@types/express@^4.17.8": +"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.8": version "4.17.17" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== @@ -5156,15 +4172,15 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== -"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.1": +"@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== "@types/http-proxy@^1.17.8": - version "1.17.10" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.10.tgz#e576c8e4a0cc5c6a138819025a88e167ebb38d6c" - integrity sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g== + version "1.17.11" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" + integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== dependencies: "@types/node" "*" @@ -5195,9 +4211,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.2.tgz#13ca45d528a0f81a4792b7df199f58ad46c2a0e3" - integrity sha512-bbne90W7is+m88ezmZrLiTpp41tIoTdvPC5t3gLoNgu/6qbGdWTC2JWqPWQRJn2Q7rVYTr8aTWqOjhGJDXyvAQ== + version "29.5.2" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.2.tgz#86b4afc86e3a8f3005b297ed8a72494f89e6395b" + integrity sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -5224,9 +4240,9 @@ integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== "@types/json-stable-stringify@^1.0.33": version "1.0.34" @@ -5256,11 +4272,11 @@ "@types/node" "*" "@types/lodash@*": - version "4.14.191" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" - integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + version "4.14.195" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" + integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== -"@types/long@^4.0.0", "@types/long@^4.0.1": +"@types/long@^4.0.0": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== @@ -5273,9 +4289,9 @@ "@types/lodash" "*" "@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + version "3.0.11" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.11.tgz#dc130f7e7d9306124286f6d6cee40cf4d14a3dc0" + integrity sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw== dependencies: "@types/unist" "*" @@ -5289,22 +4305,22 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + "@types/minimatch@*": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/minimatch@^3.0.4": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - "@types/minimist@^1.2.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/mocha@^10.0.0": +"@types/mocha@*", "@types/mocha@^10.0.0": version "10.0.1" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== @@ -5314,26 +4330,18 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/multicast-dns@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@types/multicast-dns/-/multicast-dns-7.2.1.tgz#6527b28ce62bcdc08a38f6a329a3d23145c99d95" - integrity sha512-A2PmB8MRcNVEkw6wzGT5rtBHqyHOVjiRMkJH+zpJKXipSi+GGkHg6JjNFApDiYK9WefJqkVG0taln1VMl4TGfw== - dependencies: - "@types/dns-packet" "*" - "@types/node" "*" - "@types/node-fetch@^2.5.11", "@types/node-fetch@^2.6.1": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + version "2.6.4" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" + integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== dependencies: "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@>=6", "@types/node@^18.0.0": - version "18.15.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.3.tgz#f0b991c32cfc6a4e7f3399d6cb4b8cf9a0315014" - integrity sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw== +"@types/node@*", "@types/node@>=6": + version "20.2.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" + integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== "@types/node@18.11.10": version "18.11.10" @@ -5350,20 +4358,20 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^14.11.2": - version "14.18.38" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.38.tgz#2169ca4b70aa59aa5a8923509e50619dde48b0cf" - integrity sha512-zMRIidN2Huikv/+/U7gRPFYsXDR/7IGqFZzTLnCEj5+gkrQjsowfamaxEnyvArct5hxGA3bTxMXlYhH78V6Cew== +"@types/node@^14.11.2", "@types/node@^14.14.22": + version "14.18.48" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.48.tgz#ee5c7ac6e38fd2a9e6885f15c003464cf2da343c" + integrity sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg== "@types/node@^16.11.26": - version "16.18.16" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.16.tgz#09ff98b144abae2d7cce3e9fe9040ab2bf73222c" - integrity sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA== + version "16.18.34" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.34.tgz#62d2099b30339dec4b1b04a14c96266459d7c8b2" + integrity sha512-VmVm7gXwhkUimRfBwVI1CHhwp86jDWR04B5FGebMMyxV90SlCmFujwUHrxTD4oO+SOYU86SoxvhgeRQJY7iXFg== -"@types/node@^8.0.24": - version "8.10.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" - integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== +"@types/node@^18.0.0": + version "18.16.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.16.tgz#3b64862856c7874ccf7439e6bab872d245c86d8e" + integrity sha512-NpaM49IGQQAUlBhHMF82QH80J08os4ZmyF9MkpCzWAGuOHqE4gTEbhzd7L3l5LmWuZ6E0OiC1FweQ4tsiW35+g== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -5376,9 +4384,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.0.0", "@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/prop-types@*": version "15.7.5" @@ -5406,23 +4414,23 @@ integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/react-dom@<18.0.0": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.19.tgz#36feef3aa35d045cacd5ed60fe0eef5272f19492" - integrity sha512-PiYG40pnQRdPHnlf7tZnp0aQ6q9tspYr72vD61saO6zFCybLfMqwUCN0va1/P+86DXn18ZWeW30Bk7xlC5eEAQ== + version "17.0.20" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.20.tgz#e0c8901469d732b36d8473b40b679ad899da1b53" + integrity sha512-4pzIjSxDueZZ90F52mU3aPoogkHIoSIDG+oQ+wQK7Cy2B9S+MvOqY0uEA/qawKz381qrEDkvpwyt8Bm31I8sbA== dependencies: "@types/react" "^17" "@types/react-dom@^18.0.9": - version "18.0.11" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" - integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== + version "18.2.4" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.4.tgz#13f25bfbf4e404d26f62ac6e406591451acba9e0" + integrity sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw== dependencies: "@types/react" "*" "@types/react@*": - version "18.0.28" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.28.tgz#accaeb8b86f4908057ad629a26635fe641480065" - integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew== + version "18.2.9" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.9.tgz#9207f8571afdc59a9c9c30df50e8ad2591ecefaf" + integrity sha512-pL3JAesUkF7PEQGxh5XOwdXGV907te6m1/Qe1ERJLgomojS6Ne790QiA7GUl434JEkFA2aAaB6qJ5z4e1zJn/w== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -5438,9 +4446,9 @@ csstype "^3.0.2" "@types/react@^17", "@types/react@^17.0.40": - version "17.0.53" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.53.tgz#10d4d5999b8af3d6bc6a9369d7eb953da82442ab" - integrity sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw== + version "17.0.60" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.60.tgz#a4a97dcdbebad76612c188fc06440e4995fd8ad2" + integrity sha512-pCH7bqWIfzHs3D+PDs3O/COCQJka+Kcw3RnO9rFA2zalqoXg7cNjJDh6mZ7oRtY1wmY4LVwDdAbA1F7Z8tv3BQ== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -5453,6 +4461,11 @@ dependencies: "@types/node" "*" +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -5465,11 +4478,6 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@types/retry@0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" - integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== - "@types/sass@^1.16.0": version "1.45.0" resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.45.0.tgz#a949eb1e080ff34715e6c2040357b940bffb89bb" @@ -5478,9 +4486,9 @@ sass "*" "@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== "@types/secp256k1@^4.0.3": version "4.0.3" @@ -5495,9 +4503,17 @@ integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== "@types/semver@^7.3.12", "@types/semver@^7.3.3": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" "@types/serve-index@^1.9.1": version "1.9.1" @@ -5522,9 +4538,9 @@ "@types/node" "*" "@types/sinon@*": - version "10.0.13" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.13.tgz#60a7a87a70d9372d0b7b38cc03e825f46981fb83" - integrity sha512-UVjDqJblVNQYvVNUsj0PuYYw0ELRmgt1Nt5Vk0pT5f16ROGfcKJY8o1HVuMOJOpD727RrGB9EGvoaTQE5tgxZQ== + version "10.0.15" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.15.tgz#513fded9c3cf85e589bbfefbf02b2a0541186b48" + integrity sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ== dependencies: "@types/sinonjs__fake-timers" "*" @@ -5546,9 +4562,9 @@ integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/testing-library__jest-dom@^5.9.1": - version "5.14.5" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" - integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ== + version "5.14.6" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.6.tgz#4887f6e1af11215428ab02777873bcede98a53b0" + integrity sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA== dependencies: "@types/jest" "*" @@ -5563,9 +4579,9 @@ integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== "@types/unzipper@^0.10.5": - version "0.10.5" - resolved "https://registry.yarnpkg.com/@types/unzipper/-/unzipper-0.10.5.tgz#36a963cf025162b4ac31642590cb4192971d633b" - integrity sha512-NrLJb29AdnBARpg9S/4ktfPEisbJ0AvaaAr3j7Q1tg8AgcEUsq2HqbNzvgLRoWyRtjzeLEv7vuL39u1mrNIyNA== + version "0.10.6" + resolved "https://registry.yarnpkg.com/@types/unzipper/-/unzipper-0.10.6.tgz#767101c65fa3968a725c02de11884f75952b091e" + integrity sha512-zcBj329AHgKLQyz209N/S9R0GZqXSkUQO4tJSYE3x02qg4JuDFpgKMj50r82Erk1natCWQDIvSccDddt7jPzjA== dependencies: "@types/node" "*" @@ -5579,13 +4595,20 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== -"@types/ws@8.5.4", "@types/ws@^8.5.1": +"@types/ws@8.5.4": version "8.5.4" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== dependencies: "@types/node" "*" +"@types/ws@^8.5.1": + version "8.5.5" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" + integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -5606,9 +4629,9 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.22" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" - integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== dependencies: "@types/yargs-parser" "*" @@ -5625,14 +4648,14 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz#bc2400c3a23305e8c9a9c04aa40933868aaaeb47" - integrity sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg== + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" + integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== dependencies: "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/type-utils" "5.55.0" - "@typescript-eslint/utils" "5.55.0" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/type-utils" "5.59.9" + "@typescript-eslint/utils" "5.59.9" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" @@ -5641,101 +4664,91 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.55.0.tgz#ea2dd8737834af3a36b6a7be5bee57f57160c942" - integrity sha512-3ZqXIZhdGyGQAIIGATeMtg7prA6VlyxGtcy5hYIR/3qUqp3t18pWWUYhL9mpsDm7y8F9mr3ISMt83TiqCt7OPQ== + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.9.tgz#e77482a8b70f1a6aa3a1c6a128be4a5e0e6db940" + integrity sha512-eZTK/Ci0QAqNc/q2MqMwI2+QI5ZI9HM12FcfGwbEvKif5ev/CIIYLmrlckvgPrC8XSbl39HtErR5NJiQkRkvWg== dependencies: - "@typescript-eslint/utils" "5.55.0" + "@typescript-eslint/utils" "5.59.9" "@typescript-eslint/parser@^5.21.0", "@typescript-eslint/parser@^5.5.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.55.0.tgz#8c96a0b6529708ace1dcfa60f5e6aec0f5ed2262" - integrity sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw== + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" + integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== dependencies: - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/typescript-estree" "5.55.0" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/typescript-estree" "5.59.9" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz#e863bab4d4183ddce79967fe10ceb6c829791210" - integrity sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw== +"@typescript-eslint/scope-manager@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz#eadce1f2733389cdb58c49770192c0f95470d2f4" + integrity sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ== dependencies: - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/visitor-keys" "5.55.0" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/visitor-keys" "5.59.9" -"@typescript-eslint/type-utils@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz#74bf0233523f874738677bb73cb58094210e01e9" - integrity sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA== +"@typescript-eslint/type-utils@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz#53bfaae2e901e6ac637ab0536d1754dfef4dafc2" + integrity sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q== dependencies: - "@typescript-eslint/typescript-estree" "5.55.0" - "@typescript-eslint/utils" "5.55.0" + "@typescript-eslint/typescript-estree" "5.59.9" + "@typescript-eslint/utils" "5.59.9" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.55.0.tgz#9830f8d3bcbecf59d12f821e5bc6960baaed41fd" - integrity sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug== +"@typescript-eslint/types@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.9.tgz#3b4e7ae63718ce1b966e0ae620adc4099a6dcc52" + integrity sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw== -"@typescript-eslint/typescript-estree@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz#8db7c8e47ecc03d49b05362b8db6f1345ee7b575" - integrity sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ== +"@typescript-eslint/typescript-estree@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz#6bfea844e468427b5e72034d33c9fffc9557392b" + integrity sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA== dependencies: - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/visitor-keys" "5.55.0" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/visitor-keys" "5.59.9" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.55.0", "@typescript-eslint/utils@^5.43.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.55.0.tgz#34e97322e7ae5b901e7a870aabb01dad90023341" - integrity sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw== +"@typescript-eslint/utils@5.59.9", "@typescript-eslint/utils@^5.58.0": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.9.tgz#adee890107b5ffe02cd46fdaa6c2125fb3c6c7c4" + integrity sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/typescript-estree" "5.55.0" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/typescript-estree" "5.59.9" eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz#01ad414fca8367706d76cdb94adf788dc5b664a2" - integrity sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw== +"@typescript-eslint/visitor-keys@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz#9f86ef8e95aca30fb5a705bb7430f95fc58b146d" + integrity sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q== dependencies: - "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/types" "5.59.9" eslint-visitor-keys "^3.3.0" "@undecaf/barcode-detector-polyfill@^0.9.15": - version "0.9.15" - resolved "https://registry.yarnpkg.com/@undecaf/barcode-detector-polyfill/-/barcode-detector-polyfill-0.9.15.tgz#f19535553ff946054c550d7557df94137c934e73" - integrity sha512-uJSjIbXxWujOFVjZLjBXwENY5zA+15uKSN3/V+5F1gov1eM+HkpdCC9oy8jN3viY/JwLKv2zsAq4wr9V/jiomw== + version "0.9.16" + resolved "https://registry.yarnpkg.com/@undecaf/barcode-detector-polyfill/-/barcode-detector-polyfill-0.9.16.tgz#3033d55536e720ddc28e590bfccc2efdefc0bea5" + integrity sha512-wijWm5sHavKBpd0TWuQ++5XEFf9E+8zmrD5ezGJipNj+SbziKm2MQqNRAOpGN+LHGYHF00MwEJafYxNz3LWzkA== dependencies: "@undecaf/zbar-wasm" "^0.9.12" "@undecaf/zbar-wasm@^0.9.12": - version "0.9.12" - resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.12.tgz#158ebf73d6a82112e0eea749a54f77b3857304c7" - integrity sha512-r580a4yNDEJFCayS+t4ibDjPNVLI60zo5045XuUgVQAbAzOfyAlEiwvr1PjYehOrS97rHoPk5hcMNP2n2WUu/w== - -"@vascosantos/moving-average@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@vascosantos/moving-average/-/moving-average-1.1.0.tgz#8d5793b09b2d6021ba5e620c6a0f876c20db7eaa" - integrity sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w== - -"@vercel/ncc@^0.33.1": - version "0.33.4" - resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.33.4.tgz#e44a87511f583b7ba88e4b9ae90eeb7ba252b872" - integrity sha512-ln18hs7dMffelP47tpkaR+V5Tj6coykNyxJrlcmCormPqRQjB/Gv4cu2FfBG+PMzIfdZp2CLDsrrB1NPU22Qhg== + version "0.9.13" + resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.13.tgz#dc17280770a8d075205c32dd4d1ce95faec0546f" + integrity sha512-Xl4eyfU8nwtTHF4Wi0Qyklq8BC6BmW++GYlN0gCeIgrqeIDmV7xp3nNpIN4fQpIbdvq3lvgnvVcBKAiYn9FvzA== "@vitejs/plugin-react-refresh@^1.3.6": version "1.3.6" @@ -5748,125 +4761,125 @@ "@rollup/pluginutils" "^4.1.1" react-refresh "^0.10.0" -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" "@wry/context@^0.4.0": @@ -5878,9 +4891,9 @@ tslib "^1.9.3" "@wry/context@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.0.tgz#be88e22c0ddf62aeb0ae9f95c3d90932c619a5c8" - integrity sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ== + version "0.7.3" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.3.tgz#240f6dfd4db5ef54f81f6597f6714e58d4f476a1" + integrity sha512-Nl8WTesHp89RF803Se9X3IiHjdmLBrIvPMaJkl+rKVJAYyPsz1TEUbu89943HpvujtSJgDUx9W4vZw3K1Mr3sA== dependencies: tslib "^2.3.0" @@ -5892,9 +4905,9 @@ tslib "^1.9.3" "@wry/equality@^0.5.0": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" - integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== + version "0.5.6" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.6.tgz#cd4a533c72c3752993ab8cbf682d3d20e3cb601e" + integrity sha512-D46sfMTngaYlrH+OspKf8mIJETntFnf6Hsjb0V41jAXJ7Bx2kB8Rv8RCUujuVWYttFtHkUNp7g+FwxNQAr6mXA== dependencies: tslib "^2.3.0" @@ -5915,11 +4928,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - JSONStream@^1.0.3: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -5943,39 +4951,6 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -abortable-iterator@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/abortable-iterator/-/abortable-iterator-4.0.2.tgz#aea6a4a6a696badcbad1c9fff5a9ca85f0f286a4" - integrity sha512-SJGELER5yXr9v3kiL6mT5RZ1qlyJ9hV4nm34+vfsdIM1lp3zENQvpsqKgykpFLgRMUn3lzlizLTpiOASW05/+g== - dependencies: - get-iterator "^2.0.0" - it-stream-types "^1.0.3" - -abstract-level@^1.0.2, abstract-level@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" - integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== - dependencies: - buffer "^6.0.3" - catering "^2.1.0" - is-buffer "^2.0.5" - level-supports "^4.0.0" - level-transcoder "^1.0.1" - module-error "^1.0.1" - queue-microtask "^1.2.3" - -abstract-logging@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" - integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== - accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -5992,10 +4967,10 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: version "5.3.2" @@ -6031,7 +5006,12 @@ acorn@^8.0.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: +acorn@^8.10.0, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + +acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -6076,7 +5056,7 @@ ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv-keywords@^5.0.0: +ajv-keywords@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== @@ -6093,7 +5073,7 @@ ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.6.0, ajv@^8.9.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -6120,7 +5100,7 @@ anchor-markdown-header@^0.6.0: dependencies: emoji-regex "~10.1.0" -ansi-align@^3.0.0, ansi-align@^3.0.1: +ansi-align@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== @@ -6215,11 +5195,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -6230,10 +5205,10 @@ any-observable@^0.5.1: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.5.1.tgz#ab7d49ff64ebe6dd3ae26760a3f5a881e8db791e" integrity sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA== -any-signal@^3.0.0, any-signal@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6" - integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@^2.0.0: version "2.0.0" @@ -6392,7 +5367,7 @@ apollo-server-errors@^3.3.1: resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== -apollo-server-express@3.12.0, apollo-server-express@^3.12.0: +apollo-server-express@3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.12.0.tgz#a6e392bb0427544b8c7e5d841ef07f7691b0c105" integrity sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ== @@ -6426,16 +5401,6 @@ apollo-server-types@^3.8.0: apollo-reporting-protobuf "^3.4.0" apollo-server-env "^4.2.1" -apollo-server@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-3.12.0.tgz#bd43d6dadb8cb16ed34edfc6ad97a81b1fab748a" - integrity sha512-wZHLgBoIdGxr/YpPTG5RwNnS+B2y70T/nCegCnU6Yl+H3PXB92OIguLMhdJIZVjukIOhiQT12dNIehqLQ+1hMQ== - dependencies: - "@types/express" "4.17.14" - apollo-server-core "^3.12.0" - apollo-server-express "^3.12.0" - express "^4.17.1" - apollo-utilities@1.3.4, apollo-utilities@^1.3.0, apollo-utilities@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" @@ -6455,24 +5420,11 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - arch@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - are-we-there-yet@~1.1.2: version "1.1.7" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" @@ -6508,22 +5460,19 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -args@^5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/args/-/args-5.0.3.tgz#943256db85021a85684be2f0882f25d796278702" - integrity sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA== +aria-query@^5.0.0, aria-query@^5.1.3: + version "5.2.1" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.2.1.tgz#bc285d9d654d1df121bcd0c134880d415ca67c15" + integrity sha512-7uFg4b+lETFgdaJyETnILsXgnnzVnkHcgRbwbPwevm5x/LmUlt3MjczMRe1zg824iBgXZNRPTBftNYyRSKLp2g== dependencies: - camelcase "5.0.0" - chalk "2.4.2" - leven "2.1.0" - mri "1.1.4" + dequal "^2.0.3" -aria-query@^5.0.0, aria-query@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== dependencies: - deep-equal "^2.0.5" + dequal "^2.0.3" arr-diff@^4.0.0: version "4.0.0" @@ -6593,11 +5542,6 @@ array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: get-intrinsic "^1.1.3" is-string "^1.0.7" -array-shuffle@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-shuffle/-/array-shuffle-3.0.0.tgz#9a927cc2ca4c8ef4d71cddef7c9ee7b3b733d54b" - integrity sha512-rogEGxHOQPhslOhpg12LJkB+bbAl484/s2AJq0BxtzQDQfKl76fS2u9zWgg3p3b9ENcuvE7K8A7l5ddiPjCRnw== - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -6655,7 +5599,7 @@ arrify@^1.0.0, arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -asap@^2.0.0, asap@^2.0.3, asap@~2.0.6: +asap@^2.0.3, asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== @@ -6676,7 +5620,7 @@ asciidoctor@^2.2.0: "@asciidoctor/cli" "3.5.0" "@asciidoctor/core" "2.2.6" -asn1.js@^5.0.1, asn1.js@^5.2.0: +asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== @@ -6774,11 +5718,6 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -atomic-sleep@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" - integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - auto-bind@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-5.0.1.tgz#50d8e63ea5a1dddcb5e5e36451c1a8266ffbb2ae" @@ -6812,23 +5751,16 @@ aws4@^1.8.0: integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axe-core@^4.6.2: - version "4.6.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" - integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== + version "4.7.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" + integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== -axios@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - -axobject-query@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" - integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== +axobject-query@^3.1.1, axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== dependencies: - deep-equal "^2.0.5" + dequal "^2.0.3" babel-code-frame@^6.26.0: version "6.26.0" @@ -6936,29 +5868,29 @@ babel-plugin-named-asset-import@^0.3.8: resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== +babel-plugin-polyfill-corejs2@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz#75044d90ba5043a5fb559ac98496f62f3eb668fd" + integrity sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw== dependencies: "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.0" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== +babel-plugin-polyfill-corejs3@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz#39248263c38191f0d226f928d666e6db1b4b3a8a" + integrity sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" + "@babel/helper-define-polyfill-provider" "^0.4.0" + core-js-compat "^3.30.1" -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== +babel-plugin-polyfill-regenerator@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz#e7344d88d9ef18a3c47ded99362ae4a757609380" + integrity sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.0" babel-plugin-transform-hook-names@^1.0.2: version "1.0.2" @@ -7142,14 +6074,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -benchmark@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629" - integrity sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ== - dependencies: - lodash "^4.17.4" - platform "^1.3.3" - better-path-resolve@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d" @@ -7195,63 +6119,6 @@ binary@~0.3.0: buffers "~0.1.1" chainsaw "~0.1.0" -bintrees@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" - integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bl@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" - integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== - dependencies: - buffer "^6.0.3" - inherits "^2.0.4" - readable-stream "^3.4.0" - -blob-to-it@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-2.0.1.tgz#e3d826ac643ad4999d0dc53195b3878fb762bfe3" - integrity sha512-JdrAMsN0JmsI2fPfd5MpBqVUZHlETNQka/tBWzWXjixj9WttW6Lgti2MyEPAaQrjTJ/TZZMkeyJovH39qyF21A== - dependencies: - browser-readablestream-to-it "^2.0.0" - -blockstore-core@^2.0.0, blockstore-core@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/blockstore-core/-/blockstore-core-2.0.2.tgz#d82ad3f5385355ac7a9e399c222f1b0ce1ba32fd" - integrity sha512-ALry3rBp2pTEi4F/usjCJGRluAKYFWI9Np7uE0pZHfDeScMJSj/fDkHEWvY80tPYu4kj03sLKRDGJlZH+V7VzQ== - dependencies: - err-code "^3.0.1" - interface-blockstore "^3.0.0" - interface-store "^3.0.0" - it-all "^1.0.4" - it-drain "^1.0.4" - it-filter "^1.0.2" - it-take "^1.0.1" - multiformats "^10.0.0" - -blockstore-datastore-adapter@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/blockstore-datastore-adapter/-/blockstore-datastore-adapter-4.0.0.tgz#dabff6f8f9490a04142212175ae5184a8bffe25a" - integrity sha512-vzy2lgLb7PQ0qopuZk6B+syRULdUt9w/ffNl7EXcvGZLS5+VoUmh4Agdp1OVuoaMEfXoEqIvCaPXi/v3829vBg== - dependencies: - blockstore-core "^2.0.0" - err-code "^3.0.1" - interface-blockstore "^3.0.0" - interface-datastore "^7.0.0" - it-drain "^2.0.0" - it-pushable "^3.1.0" - multiformats "^10.0.1" - bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -7262,7 +6129,7 @@ bluebird@~3.4.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -7319,9 +6186,9 @@ body@^5.1.0: safe-json-parse "~1.0.1" bonjour-service@^1.0.11: - version "1.1.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.0.tgz#424170268d68af26ff83a5c640b95def01803a13" - integrity sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q== + version "1.1.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" + integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== dependencies: array-flatten "^2.1.2" dns-equal "^1.0.0" @@ -7365,20 +6232,6 @@ boxen@^5.0.0: widest-line "^3.1.0" wrap-ansi "^7.0.0" -boxen@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.0.2.tgz#465dd03e846c11f2d4c7eb0d1b3a39d66bd7057e" - integrity sha512-1Z4UJabXUP1/R9rLpoU3O2lEMnG3pPLAs/ZD2lF3t2q7qD5lM8rqbtnvtvm4N0wEyNlE+9yZVTVAGmd1V5jabg== - dependencies: - ansi-align "^3.0.1" - camelcase "^7.0.0" - chalk "^5.0.1" - cli-boxes "^3.0.0" - string-width "^5.1.2" - type-fest "^2.13.0" - widest-line "^4.0.1" - wrap-ansi "^8.0.1" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -7418,9 +6271,9 @@ braces@^3.0.2, braces@~3.0.2: fill-range "^7.0.1" breakword@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/breakword/-/breakword-1.0.5.tgz#fd420a417f55016736b5b615161cae1c8f819810" - integrity sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg== + version "1.0.6" + resolved "https://registry.yarnpkg.com/breakword/-/breakword-1.0.6.tgz#242506e7b871b7fad1bce8dc05cb0f2a129c12bd" + integrity sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw== dependencies: wcwidth "^1.0.1" @@ -7429,16 +6282,6 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-level@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" - integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.1" - module-error "^1.0.2" - run-parallel-limit "^1.1.0" - browser-pack@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" @@ -7456,16 +6299,6 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-readablestream-to-it@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76" - integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== - -browser-readablestream-to-it@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.1.tgz#53b2e4066636faa5b613ad0f48fa1f0a282d907a" - integrity sha512-X9zw312iV6yVozvrwmZNFVNRxkOJZC7XL+G7sVoRoDGKQkcoCzK/TdkBlnLOzmO5HsnpZzmW67dNlsAIstuhjQ== - browser-resolve@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" @@ -7594,14 +6427,24 @@ browserify@^17.0.0: xtend "^4.0.0" browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== + version "4.21.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551" + integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA== + dependencies: + caniuse-lite "^1.0.30001489" + electron-to-chromium "^1.4.411" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + +browserslist@^4.21.9: + version "4.21.10" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" + update-browserslist-db "^1.0.11" bs-logger@0.x: version "0.2.6" @@ -7644,14 +6487,6 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - buffer@^5.1.0, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -7688,25 +6523,13 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== -busboy@1.6.0, busboy@^1.6.0: +busboy@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: streamsearch "^1.1.0" -byte-access@^1.0.0, byte-access@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/byte-access/-/byte-access-1.0.1.tgz#84badd99be3671c03f0dd6a039a9c963983724af" - integrity sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw== - dependencies: - uint8arraylist "^2.0.0" - -byteman@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/byteman/-/byteman-1.3.5.tgz#d6061f7536c7e7c4bcb756037ef9c4c266ec51fd" - integrity sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA== - bytes@1: version "1.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" @@ -7717,7 +6540,7 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== -bytes@3.1.2, bytes@^3.1.0: +bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== @@ -7745,24 +6568,6 @@ cacheable-lookup@^2.0.0: "@types/keyv" "^3.1.1" keyv "^4.0.0" -cacheable-lookup@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" - integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== - -cacheable-request@^10.2.8: - version "10.2.8" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.8.tgz#899ae6c0c8c7127f263b2005ecaac07c95124079" - integrity sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A== - dependencies: - "@types/http-cache-semantics" "^4.0.1" - get-stream "^6.0.1" - http-cache-semantics "^4.1.1" - keyv "^4.5.2" - mimic-response "^4.0.0" - normalize-url "^8.0.0" - responselike "^3.0.0" - cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -7777,9 +6582,9 @@ cacheable-request@^6.0.0: responselike "^1.0.2" cacheable-request@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== dependencies: clone-response "^1.0.2" get-stream "^5.1.0" @@ -7848,11 +6653,6 @@ camelcase-keys@^6.2.2: map-obj "^4.0.0" quick-lru "^4.0.1" -camelcase@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" - integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -7863,11 +6663,6 @@ camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camelcase@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" - integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== - caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -7878,16 +6673,21 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001466" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz#c1e6197c540392e09709ecaa9e3e403428c53375" - integrity sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001489: + version "1.0.30001495" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001495.tgz#64a0ccef1911a9dcff647115b4430f8eff1ef2d9" + integrity sha512-F6x5IEuigtUfU5ZMQK2jsy5JqUUlEFRVZq8bO2a+ysq5K7jD6PPc9YXZj78xDNS3uNchesp1Jw47YXEqr+Viyg== caniuse-lite@^1.0.30001406: version "1.0.30001505" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001505.tgz#10a343e49d31cbbfdae298ef73cb0a9f46670dc5" integrity sha512-jaAOR5zVtxHfL0NjZyflVTtXm3D3J9P15zSJ7HmQF8dSKGA6tqzQq+0ZI3xkjyQj46I4/M0K2GbMpcAFOcbr3A== +caniuse-lite@^1.0.30001517: + version "1.0.30001527" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz#813826554828245ccee776c850566dce12bdeaba" + integrity sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ== + canonicalize@^1.0.1, canonicalize@^1.0.3: version "1.0.8" resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.8.tgz#24d1f1a00ed202faafd9bf8e63352cd4450c6df1" @@ -7900,15 +6700,6 @@ canvas-renderer@~2.2.0: dependencies: "@types/node" "*" -capital-case@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" - integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -7926,11 +6717,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -catering@^2.1.0, catering@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" - integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== - cbor@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" @@ -7939,11 +6725,6 @@ cbor@^5.1.0: bignumber.js "^9.0.1" nofilter "^1.0.4" -cborg@^1.10.0, cborg@^1.3.3, cborg@^1.3.4, cborg@^1.5.4, cborg@^1.6.0, cborg@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.0.tgz#0fe157961dd47b537ccb84dc9ba681de8b699013" - integrity sha512-/eM0JCaL99HDHxjySNQJLaolZFVdl6VA0/hEKIoiQPcQzE5LrG5QHdml0HaBt31brgB9dNe1zMr3f8IVrpotRQ== - ccount@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" @@ -7990,15 +6771,6 @@ chalk@2.3.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -8018,6 +6790,15 @@ chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -8026,11 +6807,6 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== - chalk@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" @@ -8040,24 +6816,6 @@ chalk@~2.1.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" -change-case@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" - integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== - dependencies: - camel-case "^4.1.2" - capital-case "^1.0.4" - constant-case "^3.0.4" - dot-case "^3.0.4" - header-case "^2.0.4" - no-case "^3.0.4" - param-case "^3.0.4" - pascal-case "^3.1.2" - path-case "^3.0.4" - sentence-case "^3.0.4" - snake-case "^3.0.4" - tslib "^2.0.3" - char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -8192,16 +6950,11 @@ chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1, cho optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1, chownr@^1.1.4: +chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -8231,9 +6984,9 @@ cjs-module-lexer@^0.6.0: integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== class-utils@^0.3.5: version "0.3.6" @@ -8253,17 +7006,6 @@ class-validator@^0.13.1: libphonenumber-js "^1.9.43" validator "^13.7.0" -classic-level@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" - integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.0" - module-error "^1.0.1" - napi-macros "~2.0.0" - node-gyp-build "^4.3.0" - clean-css@^5.2.2: version "5.3.2" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" @@ -8281,11 +7023,6 @@ cli-boxes@^2.2.1: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== -cli-boxes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" - integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== - cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -8358,13 +7095,6 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone-regexp@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-3.0.0.tgz#c6dd5c6b85482306778f3dc4ac2bb967079069c2" - integrity sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw== - dependencies: - is-regexp "^3.0.0" - clone-response@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" @@ -8401,10 +7131,16 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== -coercer@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/coercer/-/coercer-1.1.2.tgz#eaea4459511f73f9f36ade04a98107ce75824b70" - integrity sha512-Hu19wnyO8jzg7khfk50U6w3TGcdl8AXPalTcC0mDfHIqsWl/+y7oKdnpEneXW27DIgQh1R79U8seiTeWiNQjsw== +code-red@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35" + integrity sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + "@types/estree" "^1.0.1" + acorn "^8.10.0" + estree-walker "^3.0.3" + periscopic "^3.1.0" collect-v8-coverage@^1.0.0: version "1.0.1" @@ -8438,7 +7174,7 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -8451,11 +7187,6 @@ color-string@^1.6.0: color-name "^1.0.0" simple-swizzle "^0.2.2" -color-support@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - color@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" @@ -8470,9 +7201,9 @@ colord@^2.9.1: integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== colorette@^2.0.10: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== combine-source-map@^0.8.0, combine-source-map@~0.8.0: version "0.8.0" @@ -8532,6 +7263,11 @@ commander@^2.15.0, commander@^2.20.0, commander@^2.20.3: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" @@ -8646,17 +7382,6 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -configstore@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" - integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== - dependencies: - dot-prop "^6.0.1" - graceful-fs "^4.2.6" - unique-string "^3.0.0" - write-file-atomic "^3.0.3" - xdg-basedir "^5.0.1" - confusing-browser-globals@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" @@ -8672,20 +7397,11 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== -constant-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" - integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case "^2.0.2" - constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -8718,11 +7434,6 @@ convert-hex@~0.1.0: resolved "https://registry.yarnpkg.com/convert-hex/-/convert-hex-0.1.0.tgz#08c04568922c27776b8a2e81a95d393362ea0b65" integrity sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A== -convert-hrtime@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-5.0.0.tgz#f2131236d4598b95de856926a67100a0a97e9fa3" - integrity sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg== - convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" @@ -8753,17 +7464,17 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== -core-js-compat@^3.25.1: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.29.1.tgz#15c0fb812ea27c973c18d425099afa50b934b41b" - integrity sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA== +core-js-compat@^3.30.1, core-js-compat@^3.30.2: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" + integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== dependencies: browserslist "^4.21.5" core-js-pure@^3.23.3: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.29.1.tgz#1be6ca2b8772f6b4df7fc4621743286e676c6162" - integrity sha512-4En6zYVi0i0XlXHVz/bi6l1XDjCqkKRq765NXuX+SnaIatlE96Odt5lMLjdxUiNI1v9OXI5DSLWYPlmTfkTktg== + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.2.tgz#005a82551f4af3250dcfb46ed360fad32ced114e" + integrity sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg== core-js@^2.4.0: version "2.6.12" @@ -8771,9 +7482,9 @@ core-js@^2.4.0: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.19.2: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.29.1.tgz#40ff3b41588b091aaed19ca1aa5cb111803fa9a6" - integrity sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw== + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" + integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== core-util-is@1.0.2: version "1.0.2" @@ -8898,11 +7609,11 @@ create-require@^1.1.0: integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + version "3.1.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.6.tgz#bae05aa31a4da760969756318feeee6e70f15d6c" + integrity sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g== dependencies: - node-fetch "2.6.7" + node-fetch "^2.6.11" cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" @@ -8960,13 +7671,6 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -crypto-random-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" - integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== - dependencies: - type-fest "^1.0.1" - css-blank-pseudo@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" @@ -8988,9 +7692,9 @@ css-declaration-sorter@^4.0.1: timsort "^0.3.0" css-declaration-sorter@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" - integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" + integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== css-has-pseudo@^3.0.4: version "3.0.4" @@ -9000,14 +7704,14 @@ css-has-pseudo@^3.0.4: postcss-selector-parser "^6.0.9" css-loader@^6.5.1: - version "6.7.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" - integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== + version "6.8.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" + integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== dependencies: icss-utils "^5.1.0" - postcss "^8.4.19" + postcss "^8.4.21" postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" + postcss-modules-local-by-default "^4.0.3" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" @@ -9103,6 +7807,14 @@ css-tree@^1.1.2, css-tree@^1.1.3: mdn-data "2.0.14" source-map "^0.6.1" +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + css-what@^3.2.1: version "3.4.2" resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" @@ -9119,9 +7831,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.4.1.tgz#61d55c0173126689922a219e15e131e4b5caf422" - integrity sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ== + version "7.6.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" + integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== cssesc@^3.0.0: version "3.0.0" @@ -9262,6 +7974,11 @@ cssom@^0.4.4: resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== + cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" @@ -9275,9 +7992,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" - integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== csv-generate@^3.4.3: version "3.4.3" @@ -9294,7 +8011,7 @@ csv-stringify@^5.6.5: resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.6.5.tgz#c6d74badda4b49a79bf4e72f91cce1e33b94de00" integrity sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== -csv@^5.5.0: +csv@^5.5.3: version "5.5.3" resolved "https://registry.yarnpkg.com/csv/-/csv-5.5.3.tgz#cd26c1e45eae00ce6a9b7b27dcb94955ec95207d" integrity sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== @@ -9577,14 +8294,6 @@ d3@^7.4.0, d3@^7.8.2: d3-transition "3" d3-zoom "3" -dag-jose@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dag-jose/-/dag-jose-3.0.1.tgz#0c474eff3e70ad522b5d42e848786358c11ea7c6" - integrity sha512-HUdzCqM4ukT168fgFl1IgOVf5J9I7WSbvBovOhOsQWIJZ+LGGVEd/Dg4f1ZirslsBZzLEeXU8LBuPpf4he5CKg== - dependencies: - "@ipld/dag-cbor" "^8.0.0" - multiformats "^10.0.1" - dagre-d3-es@7.0.10: version "7.0.10" resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz#19800d4be674379a3cd8c86a8216a2ac6827cadc" @@ -9610,6 +8319,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -9619,89 +8333,24 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -datastore-core@^8.0.1: - version "8.0.4" - resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-8.0.4.tgz#a5951c8e530f0ba11ca44f6bb3ce5d7070a3d44e" - integrity sha512-oBA6a024NFXJOTu+w9nLAimfy4wCYUhdE/5XQGtdKt1BmCVtPYW10GORvVT3pdZBcse6k/mVcBl+hjkXIlm65A== - dependencies: - "@libp2p/logger" "^2.0.0" - err-code "^3.0.1" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-map "^2.0.0" - it-merge "^2.0.0" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - it-take "^2.0.0" - uint8arrays "^4.0.2" - -datastore-fs@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/datastore-fs/-/datastore-fs-8.0.0.tgz#273407f5259ae3dc46c254fc5abf5a85756147d9" - integrity sha512-yXPf+d08RL9wdWqZbLaJxbS0FMkKNCoYYXW6MausrFAF03hCWvap62bvPC7fX415PF0v/8JOw1aSJyGJ9WjtHA== - dependencies: - datastore-core "^8.0.1" - fast-write-atomic "^0.2.0" - interface-datastore "^7.0.0" - it-glob "^1.0.1" - it-map "^1.0.5" - it-parallel-batch "^1.0.9" - mkdirp "^1.0.4" - -datastore-level@^9.0.0: - version "9.0.4" - resolved "https://registry.yarnpkg.com/datastore-level/-/datastore-level-9.0.4.tgz#1e2534fef6aedda528dcb5ead7c1f4cbcbb46d3a" - integrity sha512-HKf2tVVWywdidI+94z0B5NLx4J94wTLCT1tYXXxJ58MK/Y5rdX8WVRp9XmZaODS70uxpNC8/UrvWr0iTBZwkUA== - dependencies: - abstract-level "^1.0.3" - datastore-core "^8.0.1" - interface-datastore "^7.0.0" - it-filter "^2.0.0" - it-map "^2.0.0" - it-sort "^2.0.0" - it-take "^2.0.0" - level "^8.0.0" - -datastore-pubsub@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/datastore-pubsub/-/datastore-pubsub-6.0.0.tgz#f38077e8cf657b4cde9ccaaa306ebc42882431c7" - integrity sha512-HvzzDwfquX9zFaBsoj1Ue9ewlYX4dqneTTW2fRoKYsG4LQWwMXAU925qiki31kUe//QjYFN/Mi2xuwdk65PQog== - dependencies: - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-pubsub" "^3.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - datastore-core "^8.0.1" - debug "^4.2.0" - err-code "^3.0.1" - interface-datastore "^7.0.0" - uint8arrays "^4.0.2" - date-fns@^1.27.2: version "1.30.1" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -dateformat@^4.5.1: - version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" - integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== - dayjs@^1.11.7: version "1.11.8" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.8.tgz#4282f139c8c19dd6d0c7bd571e30c2d0ba7698ea" integrity sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ== -debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.4, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -9715,11 +8364,6 @@ debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" -debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== - decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" @@ -9769,13 +8413,6 @@ decompress-response@^5.0.0: dependencies: mimic-response "^2.0.0" -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -9788,29 +8425,6 @@ deep-eql@^4.1.2: dependencies: type-detect "^4.0.0" -deep-equal@^2.0.5: - version "2.2.0" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" - integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== - dependencies: - call-bind "^1.0.2" - es-get-iterator "^1.1.2" - get-intrinsic "^1.1.3" - is-arguments "^1.1.1" - is-array-buffer "^3.0.1" - 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.4.3" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -9827,11 +8441,11 @@ deep-is@^0.1.3, deep-is@~0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.3.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" - integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-gateway@^6.0.2, default-gateway@^6.0.3: +default-gateway@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== @@ -9850,7 +8464,7 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== -defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: +defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== @@ -9860,7 +8474,7 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4: +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== @@ -9916,11 +8530,6 @@ delaunator@5: dependencies: robust-predicates "^3.0.0" -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -9936,11 +8545,6 @@ delimit-stream@0.1.0: resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== -denque@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf" - integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== - depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -9961,15 +8565,15 @@ deps-sort@^2.0.1: subarg "^1.0.0" through2 "^2.0.0" -dequal@^2.0.0: +dequal@^2.0.0, dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -9994,11 +8598,6 @@ detect-libc@^1.0.2: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== -detect-libc@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== - detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -10017,7 +8616,7 @@ detect-port-alt@^1.1.6: address "^1.0.1" debug "^2.6.0" -detective@^5.2.0, detective@^5.2.1: +detective@^5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== @@ -10026,24 +8625,11 @@ detective@^5.2.0, detective@^5.2.1: defined "^1.0.0" minimist "^1.2.6" -dezalgo@^1.0.0, dezalgo@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" - integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== - dependencies: - asap "^2.0.0" - wrappy "1" - didyoumean@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== -diff-match-patch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" - integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== - diff-sequences@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" @@ -10110,29 +8696,10 @@ dns-equal@^1.0.0: resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== -dns-over-http-resolver@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9" - integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== - dependencies: - debug "^4.3.1" - native-fetch "^3.0.0" - receptacle "^1.3.2" - -dns-over-http-resolver@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-2.1.1.tgz#a3ff3fd7614cea7a4b72594eaf12fb3c85080456" - integrity sha512-Lm/eXB7yAQLJ5WxlBGwYfBY7utduXPZykcSmcG6K7ozM0wrZFvxZavhT6PqI0kd/5CUTfev/RrEFQqyU4CGPew== - dependencies: - debug "^4.3.1" - native-fetch "^4.0.2" - receptacle "^1.3.2" - undici "^5.12.0" - dns-packet@^5.2.2: - version "5.4.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" - integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== + version "5.6.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" + integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -10223,13 +8790,6 @@ domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -10251,7 +8811,7 @@ domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1: dependencies: domelementtype "^2.2.0" -domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: +domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== @@ -10281,13 +8841,13 @@ domutils@^2.4.2, domutils@^2.5.2, domutils@^2.8.0: domhandler "^4.2.0" domutils@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" - integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== dependencies: dom-serializer "^2.0.0" domelementtype "^2.3.0" - domhandler "^5.0.1" + domhandler "^5.0.3" dot-case@^3.0.4: version "3.0.4" @@ -10338,11 +8898,6 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -10363,62 +8918,15 @@ ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-download@^3.0.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8" - integrity sha512-F/p1+fwr/UAMl6NXp2w6Ke5x5WReguHp6EDm/1tIIqUyXfOW7JezoMoAUNL0ZaKDDCbciydllMwq8qq/f9ks0w== - dependencies: - debug "^2.2.0" - fs-extra "^0.30.0" - home-path "^1.0.1" - minimist "^1.2.0" - nugget "^2.0.0" - path-exists "^2.1.0" - rc "^1.1.2" - semver "^5.3.0" - sumchecker "^1.2.0" - -electron-eval@^0.9.0: - version "0.9.10" - resolved "https://registry.yarnpkg.com/electron-eval/-/electron-eval-0.9.10.tgz#9f97818b0d711ae8ae103fd186eeb0e9588a2921" - integrity sha512-VrAw2MrAjCwM8EGQsY+n48/f9P4W+AH56adERtDEb9bl5Hw9aN+ectmuK9QIi2XA11g+owQlyj2N4AzvdT363A== - dependencies: - cross-spawn "^5.1.0" - electron "^1.6.11" - ndjson "^1.5.0" - optionalDependencies: - headless "https://github.com/paulkernfeld/node-headless/tarball/master" - -electron-fetch@^1.7.2: - version "1.9.1" - resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.9.1.tgz#e28bfe78d467de3f2dec884b1d72b8b05322f30f" - integrity sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA== - dependencies: - encoding "^0.1.13" - -electron-to-chromium@^1.4.284: - version "1.4.330" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz#4740378db7160d7210afb29800c74048cdf10a99" - integrity sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q== - -electron-webrtc@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/electron-webrtc/-/electron-webrtc-0.3.0.tgz#546d1ca81a445348c32062cb9da5e7a4a6acadcf" - integrity sha512-p4x21lsoG2S3ErTcc1svH/OCcLsNKEwQsxK9PIsefMPRp5lB6Ux10oRVVTy3BqFPxuus3csjTSFJXXOZaGPMmQ== - dependencies: - debug "^2.2.0" - electron-eval "^0.9.0" - get-browser-rtc "^1.0.2" - hat "^0.0.3" +electron-to-chromium@^1.4.411: + version "1.4.425" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.425.tgz#399df13091b836d28283a545c25c8e4d9da86da8" + integrity sha512-wv1NufHxu11zfDbY4fglYQApMswleE9FL/DSeyOyauVXDZ+Kco96JK/tPfBUaDqfRarYp2WH2hJ/5UnVywp9Jg== -electron@^1.6.11: - version "1.8.8" - resolved "https://registry.yarnpkg.com/electron/-/electron-1.8.8.tgz#a90cddb075291f49576993e6f5c8bb4439301cae" - integrity sha512-1f9zJehcTTGjrkb06o6ds+gsRq6SYhZJyxOk6zIWjRH8hVy03y/RzUDELzNas71f5vcvXmfGVvyjeEsadDI8tg== - dependencies: - "@types/node" "^8.0.24" - electron-download "^3.0.1" - extract-zip "^1.0.3" +electron-to-chromium@^1.4.477: + version "1.4.508" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz#5641ff2f5ba11df4bd960fe6a2f9f70aa8b9af96" + integrity sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg== electron@^20.0.3: version "20.3.12" @@ -10439,7 +8947,7 @@ elkjs@^0.8.2: resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.8.2.tgz#c37763c5a3e24e042e318455e0147c912a7c248e" integrity sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ== -elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -10502,40 +9010,17 @@ encodeurl@^1.0.2, encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" -engine.io-client@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.4.0.tgz#88cd3082609ca86d7d3c12f0e746d12db4f47c91" - integrity sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.11.0" - xmlhttprequest-ssl "~2.0.0" - -engine.io-parser@~5.0.3: - version "5.0.6" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" - integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== - -enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== +enhanced-resolve@^5.14.1: + version "5.14.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" + integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -10562,7 +9047,7 @@ entities@^3.0.1: resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== -entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: +entities@^4.2.0, entities@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== @@ -10572,11 +9057,6 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -err-code@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" - integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -10606,7 +9086,7 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: version "1.21.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== @@ -10651,25 +9131,10 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-get-iterator@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - 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" - -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" + integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== es-set-tostringtag@^2.0.1: version "2.0.1" @@ -10706,11 +9171,6 @@ es6-promise@^3.1.2: resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== -es6-promise@^4.0.5: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - esbuild-android-64@0.15.18: version "0.15.18" resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" @@ -10861,33 +9321,33 @@ esbuild@^0.15.5: esbuild-windows-64 "0.15.18" esbuild-windows-arm64 "0.15.18" -esbuild@^0.16.14: - version "0.16.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" - integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== +esbuild@^0.17.5: + version "0.17.19" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" + integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== optionalDependencies: - "@esbuild/android-arm" "0.16.17" - "@esbuild/android-arm64" "0.16.17" - "@esbuild/android-x64" "0.16.17" - "@esbuild/darwin-arm64" "0.16.17" - "@esbuild/darwin-x64" "0.16.17" - "@esbuild/freebsd-arm64" "0.16.17" - "@esbuild/freebsd-x64" "0.16.17" - "@esbuild/linux-arm" "0.16.17" - "@esbuild/linux-arm64" "0.16.17" - "@esbuild/linux-ia32" "0.16.17" - "@esbuild/linux-loong64" "0.16.17" - "@esbuild/linux-mips64el" "0.16.17" - "@esbuild/linux-ppc64" "0.16.17" - "@esbuild/linux-riscv64" "0.16.17" - "@esbuild/linux-s390x" "0.16.17" - "@esbuild/linux-x64" "0.16.17" - "@esbuild/netbsd-x64" "0.16.17" - "@esbuild/openbsd-x64" "0.16.17" - "@esbuild/sunos-x64" "0.16.17" - "@esbuild/win32-arm64" "0.16.17" - "@esbuild/win32-ia32" "0.16.17" - "@esbuild/win32-x64" "0.16.17" + "@esbuild/android-arm" "0.17.19" + "@esbuild/android-arm64" "0.17.19" + "@esbuild/android-x64" "0.17.19" + "@esbuild/darwin-arm64" "0.17.19" + "@esbuild/darwin-x64" "0.17.19" + "@esbuild/freebsd-arm64" "0.17.19" + "@esbuild/freebsd-x64" "0.17.19" + "@esbuild/linux-arm" "0.17.19" + "@esbuild/linux-arm64" "0.17.19" + "@esbuild/linux-ia32" "0.17.19" + "@esbuild/linux-loong64" "0.17.19" + "@esbuild/linux-mips64el" "0.17.19" + "@esbuild/linux-ppc64" "0.17.19" + "@esbuild/linux-riscv64" "0.17.19" + "@esbuild/linux-s390x" "0.17.19" + "@esbuild/linux-x64" "0.17.19" + "@esbuild/netbsd-x64" "0.17.19" + "@esbuild/openbsd-x64" "0.17.19" + "@esbuild/sunos-x64" "0.17.19" + "@esbuild/win32-arm64" "0.17.19" + "@esbuild/win32-ia32" "0.17.19" + "@esbuild/win32-x64" "0.17.19" escalade@^3.1.1: version "3.1.1" @@ -10904,11 +9364,6 @@ escape-goat@^3.0.0: resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-3.0.0.tgz#e8b5fb658553fe8a3c4959c316c6ebb8c842b19c" integrity sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw== -escape-goat@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" - integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== - escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -10971,9 +9426,9 @@ eslint-config-next@^12.0.8: eslint-plugin-react-hooks "^4.5.0" eslint-config-prettier@^8.3.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz#f1cc58a8afebc50980bd53475451df146c13182d" - integrity sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA== + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== eslint-config-react-app@^7.0.1: version "7.0.1" @@ -11016,9 +9471,9 @@ eslint-import-resolver-typescript@^2.7.1: tsconfig-paths "^3.14.1" eslint-module-utils@^2.7.4: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" @@ -11127,11 +9582,11 @@ eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.7: string.prototype.matchall "^4.0.8" eslint-plugin-testing-library@^5.0.1: - version "5.10.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.10.2.tgz#12f231ad9b52b6aef45c801fd00aa129a932e0c2" - integrity sha512-f1DmDWcz5SDM+IpCkEX0lbFqrrTs8HRsEElzDEqN/EBI0hpRj8Cns5+IVANXswE8/LeybIJqPAOQIFu2j5Y5sw== + version "5.11.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.0.tgz#0bad7668e216e20dd12f8c3652ca353009163121" + integrity sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q== dependencies: - "@typescript-eslint/utils" "^5.43.0" + "@typescript-eslint/utils" "^5.58.0" eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" @@ -11141,10 +9596,10 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -11154,10 +9609,10 @@ eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint-webpack-plugin@^3.1.1: version "3.2.0" @@ -11171,15 +9626,15 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.3.0: - version "8.36.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf" - integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw== + version "8.42.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" + integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.1" - "@eslint/js" "8.36.0" - "@humanwhocodes/config-array" "^0.11.8" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.42.0" + "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -11188,9 +9643,9 @@ eslint@^8.3.0: debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.5.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -11198,13 +9653,12 @@ eslint@^8.3.0: find-up "^5.0.0" glob-parent "^6.0.2" globals "^13.19.0" - grapheme-splitter "^1.0.4" + graphemer "^1.4.0" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -11237,14 +9691,14 @@ esmify@^2.1.1: duplexer2 "^0.1.4" through2 "^2.0.5" -espree@^9.5.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113" - integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw== +espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.4.1" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" @@ -11330,12 +9784,12 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== -estree-walker@^2.0.1: +estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -estree-walker@^3.0.0: +estree-walker@^3.0.0, estree-walker@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== @@ -11352,27 +9806,17 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -event-iterator@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/event-iterator/-/event-iterator-2.0.0.tgz#10f06740cc1e9fd6bc575f334c2bc1ae9d2dbf62" - integrity sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ== - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -eventemitter3@^4.0.0, eventemitter3@^4.0.4, eventemitter3@^4.0.7: +eventemitter3@^4.0.0, eventemitter3@^4.0.4: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0, events@^3.2.0, events@^3.3.0: +events@^3.0.0, events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -11446,21 +9890,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -11479,11 +9908,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - expect@*, expect@^29.0.0: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" @@ -11517,7 +9941,7 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -express@4.18.2, express@^4.17.1, express@^4.17.3: +express@4.18.2, express@^4.17.3: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== @@ -11611,16 +10035,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.0.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - extract-zip@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" @@ -11652,11 +10066,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-fifo@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.1.0.tgz#17d1a3646880b9891dfa0c54e69c5fef33cad779" - integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== - fast-glob@^3.2.12, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" @@ -11678,21 +10087,11 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-redact@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" - integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== - -fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8: +fast-safe-stringify@^2.0.7: version "2.1.1" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== -fast-write-atomic@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz#7ee8ef0ce3c1f531043c09ae8e5143361ab17ede" - integrity sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw== - fastparse@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" @@ -11740,6 +10139,14 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -11777,27 +10184,13 @@ file-loader@^6.2.0: loader-utils "^2.0.0" schema-utils "^3.0.0" -file-type@^18.0.0: - version "18.2.1" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.2.1.tgz#6d8f1fa3b079606f6ecf89483346f55fcd2c671b" - integrity sha512-Yw5MtnMv7vgD2/6Bjmmuegc8bQEVA9GmAyaR18bMYWKqsWDG9wgYZ1j4I6gNMF5Y5JBDcUcjRQqNQx7Y8uotcg== - dependencies: - readable-web-to-node-stream "^3.0.2" - strtok3 "^7.0.0" - token-types "^5.0.1" - -filelist@^1.0.1: +filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== dependencies: minimatch "^5.0.1" -filesize@^10.0.5: - version "10.0.6" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.0.6.tgz#5f4cd2721664cd925db3a7a5a87bbfd6ab5ebb1a" - integrity sha512-rzpOZ4C9vMFDqOa6dNpog92CoLYjD79dnjLk2TYDDtImRIyLTOzqojCb05Opd1WuiWjs+fshhCgTd8cl7y5t+g== - filesize@^8.0.6: version "8.0.7" resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" @@ -11890,13 +10283,6 @@ find-yarn-workspace-root2@1.2.16: micromatch "^4.0.2" pkg-dir "^4.2.0" -find-yarn-workspace-root@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" - integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== - dependencies: - micromatch "^4.0.2" - flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -11919,11 +10305,6 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatstr@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" - integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== - flatted@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" @@ -11939,17 +10320,12 @@ flexsearch@^0.7.21: resolved "https://registry.yarnpkg.com/flexsearch/-/flexsearch-0.7.31.tgz#065d4110b95083110b9b6c762a71a77cc52e4702" integrity sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA== -fnv1a@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fnv1a/-/fnv1a-1.1.1.tgz#4e01d51bae60735d00e54ffde02581fe2e74f465" - integrity sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag== - focus-visible@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/focus-visible/-/focus-visible-5.2.0.tgz#3a9e41fccf587bd25dcc2ef045508284f0a4d6b3" integrity sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ== -follow-redirects@^1.0.0, follow-redirects@^1.14.8: +follow-redirects@^1.0.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -11990,11 +10366,6 @@ fork-ts-checker-webpack-plugin@^6.5.0: semver "^7.3.2" tapable "^1.0.0" -form-data-encoder@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" - integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -12018,15 +10389,12 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== -formidable@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.1.1.tgz#81269cbea1a613240049f5f61a9d97731517414f" - integrity sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ== +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== dependencies: - dezalgo "^1.0.4" - hexoid "^1.0.0" - once "^1.4.0" - qs "^6.11.0" + fetch-blob "^3.1.2" forwarded@0.2.0: version "0.2.0" @@ -12045,24 +10413,11 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -freeport-promise@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/freeport-promise/-/freeport-promise-2.0.0.tgz#11e4f81e24d680b88a20c15b2103551f4b6663d8" - integrity sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg== - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -from2@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - front-matter@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.3.0.tgz#7203af896ce357ee04e2aa45169ea91ed7f67504" @@ -12077,22 +10432,6 @@ front-matter@^4.0.2: dependencies: js-yaml "^3.13.1" -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@^10.0.0, fs-extra@^10.0.1: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -12120,7 +10459,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.0, fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -12137,17 +10476,10 @@ fs-minipass@^1.2.7: dependencies: minipass "^2.6.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-monkey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== +fs-monkey@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== fs.realpath@^1.0.0: version "1.0.0" @@ -12174,11 +10506,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function-timeout@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/function-timeout/-/function-timeout-0.1.1.tgz#6bf71d3d24c894d43b2bec312cabb8c5add2e9da" - integrity sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg== - function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -12189,31 +10516,11 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functions-have-names@^1.2.2: +functions-have-names@^1.2.2, functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -gar@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/gar/-/gar-1.0.4.tgz#f777bc7db425c0572fdeb52676172ca1ae9888b8" - integrity sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w== - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -12252,47 +10559,26 @@ get-assigned-identifiers@^1.2.0: resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== -get-browser-rtc@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz#d1494e299b00f33fc8e9d6d3343ba4ba99711a2c" - integrity sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ== - get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-folder-size@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/get-folder-size/-/get-folder-size-4.0.0.tgz#d73eedb4b2fa9144a3b5a115909d129e1ba8300a" - integrity sha512-Z6sv92povPRhGTNv1j8pMOzkXCcJOYWFTSrulKzoF9qbIRHXtR2Vfjw964jsWVMrIKnwHzm/0jl8IFONbBbEKw== - dependencies: - gar "^1.0.4" - get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" - integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" has "^1.0.3" + has-proto "^1.0.1" has-symbols "^1.0.3" -get-iterator@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" - integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== - -get-iterator@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-2.0.0.tgz#c9ac9f8002e5d8d6b4dc9dae07c30945022a58c1" - integrity sha512-BDJawD5PU2gZv6Vlp8O28H4GnZcsr3h9gZUvnAP5xXP3WOy/QAoOsyMepSkw21jur+4t5Vppde72ChjhTIzxzg== - get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -12327,7 +10613,7 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -12398,11 +10684,6 @@ gitbook-plugin-search@*, gitbook-plugin-search@^2.2.1: resolved "https://registry.yarnpkg.com/gitbook-plugin-search/-/gitbook-plugin-search-2.2.1.tgz#6d25b5a776990fa98fdfdfa37de331f78e0f6b13" integrity sha512-oP9jhaKFUVPo756G9ywuuI43YdkZClSjfpFzNKe/a/Rcn3oVsrAM/PjdQ+dt65KfZVo3iW1LY4WdiZnNqzRP8g== -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== - github-slugger@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" @@ -12449,6 +10730,18 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@7.1.7: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -12485,6 +10778,17 @@ glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-agent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" @@ -12601,23 +10905,6 @@ got@^10.6.0: to-readable-stream "^2.0.0" type-fest "^0.10.0" -got@^12.1.0: - version "12.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.0.tgz#8d382ee5de4432c086e83c133efdd474484f6ac7" - integrity sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ== - dependencies: - "@sindresorhus/is" "^5.2.0" - "@szmarczak/http-timer" "^5.0.1" - cacheable-lookup "^7.0.0" - cacheable-request "^10.2.8" - decompress-response "^6.0.0" - form-data-encoder "^2.1.2" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^3.0.0" - got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -12635,12 +10922,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@4.2.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.2.11: +graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -12650,6 +10932,11 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + graphql-query-complexity@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" @@ -12657,13 +10944,6 @@ graphql-query-complexity@^0.7.0: dependencies: lodash.get "^4.4.2" -graphql-subscriptions@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-2.0.0.tgz#11ec181d475852d8aec879183e8e1eb94f2eb79a" - integrity sha512-s6k2b8mmt9gF9pEfkxsaO1lTxaySfKoEJzEfmwguBbQ//Oq23hIXCfR1hm4kdh5hnR20RdwB+s3BCb+0duHSZA== - dependencies: - iterall "^1.3.0" - graphql-subscriptions@^1.1.0: version "1.2.1" resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" @@ -12710,14 +10990,6 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" -hamt-sharding@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-3.0.2.tgz#a3fba1e4e6b58469388a0e1458768c78c0cd95f6" - integrity sha512-f0DzBD2tSmLFdFsLAvOflIBqFPjerbA7BfmwO8mVho/5hXwgyyYhv+ijIzidQf/DpDX3bRjAQvhGoBFj+DBvPw== - dependencies: - sparse-array "^1.3.1" - uint8arrays "^4.0.2" - handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -12735,16 +11007,6 @@ handlebars@^4.1.0, handlebars@^4.7.7: optionalDependencies: uglify-js "^3.1.4" -hapi-pino@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/hapi-pino/-/hapi-pino-8.5.0.tgz#ab36dfeb0059479e66fa6363e8f3ec2dc6a575d2" - integrity sha512-p0phuePalD8965r6mboCBLIMWRO2vQAx+VSnXhTKxnF/4Sf+dk8Uze7109w9QfhlvGMqvBTEF6SxGStObBB/Lw== - dependencies: - "@hapi/hoek" "^9.0.0" - abstract-logging "^2.0.0" - pino "^6.0.0" - pino-pretty "^4.0.0" - har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -12824,7 +11086,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== @@ -12865,11 +11127,6 @@ has-yarn@^2.1.0: resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== -has-yarn@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" - integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== - has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -12903,11 +11160,6 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hashlru@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/hashlru/-/hashlru-2.3.0.tgz#5dc15928b3f6961a2056416bb3a4910216fdfb51" - integrity sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A== - hast-util-from-dom@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/hast-util-from-dom/-/hast-util-from-dom-4.2.0.tgz#25836ddecc3cc0849d32749c2a7aec03e94b59a7" @@ -13012,28 +11264,11 @@ hastscript@^7.0.0: property-information "^6.0.0" space-separated-tokens "^2.0.0" -hat@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" - integrity sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug== - he@1.2.0, he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -header-case@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" - integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== - dependencies: - capital-case "^1.0.4" - tslib "^2.0.3" - -"headless@https://github.com/paulkernfeld/node-headless/tarball/master": - version "1.1.0" - resolved "https://github.com/paulkernfeld/node-headless/tarball/master#0ded78103ce64e40d1ca65a57b95faebaa664dd1" - heap@^0.2.6: version "0.2.7" resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" @@ -13044,11 +11279,6 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -hexoid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" - integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== - highlight.js@^10.7.1: version "10.7.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" @@ -13070,20 +11300,15 @@ hoist-non-react-statics@^3.3.2: dependencies: react-is "^16.7.0" -home-path@^1.0.1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.7.tgz#cf77d7339ff3ddc3347a23c52612b1f5e7e56313" - integrity sha512-tM1pVa+u3ZqQwIkXcWfhUlY3HWS3TsnKsfi2OHHvnhkX52s9etyktPyy1rQotkr0euWimChDq+QkQuDe8ngUlQ== - honkit@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/honkit/-/honkit-4.0.4.tgz#9b1aa11ed050ec306780c3eb39257512b6e1619e" - integrity sha512-quKzP5kGGp3/Ey1+h9kISMa/NBmED7rSuaD8whdniGK/7OUJCEJg/0fKwZgLZLMAIS+AIowhxoV+gvQ30S1NFQ== + version "4.0.7" + resolved "https://registry.yarnpkg.com/honkit/-/honkit-4.0.7.tgz#dd1480721f0a4980418465e59a8211a9c5de1a3e" + integrity sha512-E6+OQ+vrR7Ig2cJyoNwnYtmRQQD/IzPgZJwlv9gmYQ5OIc6DfpcuS32f2Dfwis5AVMa7nwKcpmwO07e+X2JFUw== dependencies: - "@honkit/asciidoc" "^4.0.1" - "@honkit/honkit-plugin-highlight" "^4.0.0" - "@honkit/honkit-plugin-theme-default" "^4.0.3" - "@honkit/markdown-legacy" "^4.0.1" + "@honkit/asciidoc" "^4.0.7" + "@honkit/honkit-plugin-highlight" "^4.0.7" + "@honkit/honkit-plugin-theme-default" "^4.0.7" + "@honkit/markdown-legacy" "^4.0.7" bash-color "^0.0.4" cheerio "^1.0.0-rc.12" chokidar "^3.3.0" @@ -13123,8 +11348,6 @@ honkit@^4.0.0: omit-keys "^0.1.0" open "^7.0.0" q "^1.5.1" - read-installed "^4.0.3" - request "^2.88.0" resolve "^1.17.0" semver "^5.1.0" send "^0.17.1" @@ -13190,15 +11413,20 @@ html-entities@1.2.0: integrity sha512-0md7tlUUyb0BEQGsZzbqty1CgV6RESOoxdivt94AScqhBhYsPCCQCOaGvur/RospMjYpPJ7iFe3zw4Bu4SVA8g== html-entities@^2.1.0, html-entities@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== + version "2.3.5" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.5.tgz#9f117bf6a5962efc31e094f6c6dad3cf3b95e33e" + integrity sha512-72TJlcMkYsEJASa/3HnX7VT59htM7iSHbH59NSZbtc+22Ap0Txnlx91sfeB+/A7wNZg7UxtZdhAW4y+/jimrdg== html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== +html-escaper@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-3.0.3.tgz#4d336674652beb1dcbc29ef6b6ba7f6be6fdfed6" + integrity sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ== + html-minifier-terser@^6.0.2: version "6.1.0" resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" @@ -13213,9 +11441,9 @@ html-minifier-terser@^6.0.2: terser "^5.10.0" html-webpack-plugin@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" - integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== + version "5.5.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz#826838e31b427f5f7f30971f8d8fa2422dfa6763" + integrity sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -13259,16 +11487,16 @@ htmlparser2@^7.2.0: entities "^3.0.1" htmlparser2@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" - integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: domelementtype "^2.3.0" - domhandler "^5.0.2" + domhandler "^5.0.3" domutils "^3.0.1" - entities "^4.3.0" + entities "^4.4.0" -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1: +http-cache-semantics@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -13353,14 +11581,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -13389,11 +11609,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== - i18n-t@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/i18n-t/-/i18n-t-1.0.1.tgz#b7bf4b003e395dc747843e8fca5de477658b0b1c" @@ -13408,7 +11623,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6, iconv-lite@^0.6.2, iconv-lite@^0.6.3: +iconv-lite@0.6, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -13437,7 +11652,7 @@ identity-obj-proxy@^3.0.0: dependencies: harmony-reflect "^1.4.6" -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: +ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -13455,9 +11670,9 @@ ignore@^5.1.8, ignore@^5.2.0: integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immer@^9.0.7: - version "9.0.19" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.19.tgz#67fb97310555690b5f9cd8380d38fc0aabb6b38b" - integrity sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ== + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== immutability-helper@^2.7.1: version "2.9.1" @@ -13525,11 +11740,6 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -13696,57 +11906,7 @@ insert-module-globals@^7.2.1: undeclared-identifiers "^1.1.2" xtend "^4.0.0" -interface-blockstore@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/interface-blockstore/-/interface-blockstore-3.0.2.tgz#bdb81f8ffd3819da7f9a6f87f41a62dba13647ed" - integrity sha512-lJXCyu3CwidOvNjkJARwCmoxl/HNX/mrfMxtyq5e/pVZA1SrlTj5lvb4LBYbfoynzewGUPcUU4DEUaXoLKliHQ== - dependencies: - interface-store "^3.0.0" - multiformats "^10.0.0" - -interface-datastore@^6.0.2: - version "6.1.1" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" - integrity sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg== - dependencies: - interface-store "^2.0.2" - nanoid "^3.0.2" - uint8arrays "^3.0.0" - -interface-datastore@^7.0.0: - version "7.0.4" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-7.0.4.tgz#f09ae4e2896f57f876d5d742a59e982fb3f42891" - integrity sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw== - dependencies: - interface-store "^3.0.0" - nanoid "^4.0.0" - uint8arrays "^4.0.2" - -interface-datastore@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-8.1.0.tgz#006f74166e40e0a761cc3178bc633edb514fa8d7" - integrity sha512-WBxcqKBYVGjgmgOT4VgXFgPEpZEQbiSV5AqndKH+ZAgzEtexXVIkGx1RSBoFkN4OfiwF5w4dFGWQUHS/vJYJyg== - dependencies: - interface-store "^4.0.0" - nanoid "^4.0.0" - uint8arrays "^4.0.2" - -interface-store@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c" - integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== - -interface-store@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-3.0.4.tgz#670d95ef45f3b7061d154c3cbfaf39a538167ad7" - integrity sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ== - -interface-store@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-4.1.0.tgz#2b70e318f342928698220fe0d12fec10d1ed04f9" - integrity sha512-zdE2mjrpaS0FGT97IXrTs5hZLVRlURqPfM9gT4UkWGrkzeBigQh/ER5nbcFi4QXn3YAHqp2aX+/Wu4QyT8bbxg== - -internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: +internal-slot@^1.0.3, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -13765,14 +11925,6 @@ intersection-observer@^0.12.2: resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375" integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg== -into-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" - integrity sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA== - dependencies: - from2 "^2.3.0" - p-is-promise "^3.0.0" - invariant@^2.2.0, invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -13780,550 +11932,15 @@ invariant@^2.2.0, invariant@^2.2.2: dependencies: loose-envify "^1.0.0" -ip-regex@^4.0.0, ip-regex@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - -ip-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632" - integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw== - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== - -ipfs-bitswap@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/ipfs-bitswap/-/ipfs-bitswap-13.0.0.tgz#7f38002d3e522ca08c3e6a349e0241b0ee5dd4cc" - integrity sha512-dTDRrXJmg27d/Z2V7bGo7zO6bPvLJrLpVyZldRSTUQgkd8pkrnM9Gs9S3hJyZS8n5BdFrGXBa4/tTMJwJ9d4lg== - dependencies: - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-store" "^1.2.0" - "@libp2p/topology" "^3.0.0" - "@libp2p/tracked-map" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" - "@vascosantos/moving-average" "^1.1.0" - abortable-iterator "^4.0.2" - any-signal "^3.0.0" - blockstore-core "^2.0.1" - debug "^4.2.0" - err-code "^3.0.1" - interface-blockstore "^3.0.0" - it-length-prefixed "^8.0.2" - it-pipe "^2.0.4" - just-debounce-it "^3.0.1" - multiformats "^10.0.1" - protobufjs "^7.0.0" - readable-stream "^4.0.0" - timeout-abort-controller "^3.0.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - varint-decoder "^1.0.0" - -ipfs-cli@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/ipfs-cli/-/ipfs-cli-0.15.0.tgz#d19e4478c29a92bb6e62dc207932407419024925" - integrity sha512-rZ+fAlVIwVpTNhzTQZuhuO/51ic2AQGWCZkrVy/4t7qxjOO19GrldfRRtD/aewjlMd3+P9ttwfXQboVzAWsqXw== - dependencies: - "@ipld/dag-cbor" "^8.0.0" - "@ipld/dag-json" "^9.0.0" - "@ipld/dag-pb" "^3.0.0" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.10" - "@multiformats/mafmt" "^11.0.2" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/multiaddr-to-uri" "^9.0.1" - byteman "^1.3.5" - execa "^6.1.0" - get-folder-size "^4.0.0" - ipfs-core "^0.17.0" - ipfs-core-types "^0.13.0" - ipfs-core-utils "^0.17.0" - ipfs-daemon "^0.15.0" - ipfs-http-client "^59.0.0" - ipfs-utils "^9.0.6" - it-concat "^3.0.1" - it-merge "^2.0.0" - it-pipe "^2.0.3" - it-split "^2.0.0" - it-tar "^6.0.0" - jsondiffpatch "^0.4.1" - multiformats "^10.0.0" - parse-duration "^1.0.0" - pretty-bytes "^6.0.0" - progress "^2.0.3" - stream-to-it "^0.2.2" - uint8arrays "^4.0.2" - yargs "^17.4.0" - -ipfs-core-config@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/ipfs-core-config/-/ipfs-core-config-0.6.0.tgz#47ce9313351212bbbeb99acfa9c857ac8634bc5e" - integrity sha512-ga2rzjH2vtZRsDir4zjVh+gi6zlGno/yjfHhQn9GYUcKUL0HQ/aBG7XcLw8w7KgVMc93VMVGqfM3ueEGGW9X4Q== - dependencies: - "@chainsafe/libp2p-gossipsub" "^4.0.0" - "@libp2p/floodsub" "^5.0.0" - "@libp2p/logger" "^2.0.2" - "@libp2p/mdns" "^5.0.0" - "@libp2p/tcp" "^5.0.0" - "@libp2p/webrtc-star" "^5.0.2" - blockstore-datastore-adapter "^4.0.0" - datastore-core "^8.0.1" - datastore-fs "^8.0.0" - datastore-level "^9.0.0" - err-code "^3.0.1" - hashlru "^2.3.0" - interface-datastore "^7.0.0" - ipfs-repo "^16.0.0" - ipfs-utils "^9.0.6" - is-ipfs "^7.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-foreach "^1.0.0" - p-queue "^7.2.0" - uint8arrays "^4.0.2" - -ipfs-core-types@0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz#53c60f589e4e54c2d566f0c856c2fcf0ea4a5577" - integrity sha512-s5+kXXcjkIdWPHblrE0TyiKxROQdL7zfkVI7FpEEwv5rtHCjpI0I4vKSzziZLLzLXf3a2F1qtscOnlaT0ruWBw== - dependencies: - interface-datastore "^6.0.2" - multiaddr "^10.0.0" - multiformats "^9.5.1" - -ipfs-core-types@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.13.0.tgz#eb2f27df7b91940e39b201b08affc9a65f63f503" - integrity sha512-IIKS9v2D5KIqReZMbyuCStI4FRyIbRA9nD3fji1KgKJPiic1N3iGe2jL4hy4Y3FQ30VbheWJ9jAROwMyvqxYNA== - dependencies: - "@ipld/dag-pb" "^3.0.0" - "@libp2p/interface-keychain" "^1.0.3" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.2" - "@libp2p/interface-pubsub" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - "@types/node" "^18.0.0" - interface-datastore "^7.0.0" - ipfs-unixfs "^8.0.0" - multiformats "^10.0.0" - -ipfs-core-utils@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.17.0.tgz#cb3581e66b588c2d80f6d8b05d15d0262447093a" - integrity sha512-mZbQ9ZkLGGR988hO0iCsB6FXDb0fS0vYRue07Ia8O3ODdKjZ69Jx7zYoYqpjTQQCgEN6RrX98aCTOw+ifziGvw== - dependencies: - "@libp2p/logger" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/multiaddr-to-uri" "^9.0.1" - any-signal "^3.0.0" - blob-to-it "^2.0.0" - browser-readablestream-to-it "^2.0.0" - err-code "^3.0.1" - ipfs-core-types "^0.13.0" - ipfs-unixfs "^8.0.0" - ipfs-utils "^9.0.6" - it-all "^2.0.0" - it-map "^2.0.0" - it-peekable "^2.0.0" - it-to-stream "^1.0.0" - merge-options "^3.0.4" - multiformats "^10.0.0" - nanoid "^4.0.0" - parse-duration "^1.0.0" - timeout-abort-controller "^3.0.0" - uint8arrays "^4.0.2" - -ipfs-core@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/ipfs-core/-/ipfs-core-0.17.0.tgz#9cae68236f22ddf86173f678e7dbeea2635cbfa4" - integrity sha512-mngpgSIO14n3U2iZzjxUn/AQ8LVVxrN/VRRXbJArxtSJuz1anx2kgtemRaUZt4q5juWHjk8tLtVdNDlS0bXGkg== - dependencies: - "@chainsafe/libp2p-noise" "^10.0.0" - "@ipld/car" "^5.0.0" - "@ipld/dag-cbor" "^8.0.0" - "@ipld/dag-json" "^9.0.0" - "@ipld/dag-pb" "^3.0.0" - "@libp2p/bootstrap" "^5.0.0" - "@libp2p/crypto" "^1.0.0" - "@libp2p/delegated-content-routing" "^3.0.0" - "@libp2p/delegated-peer-routing" "^3.0.0" - "@libp2p/interface-dht" "^1.0.2" - "@libp2p/interface-keys" "^1.0.3" - "@libp2p/interface-peer-id" "^1.0.5" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/kad-dht" "^5.0.1" - "@libp2p/logger" "^2.0.2" - "@libp2p/mplex" "^7.0.0" - "@libp2p/peer-id" "^1.1.16" - "@libp2p/peer-id-factory" "^1.0.19" - "@libp2p/record" "^2.0.3" - "@libp2p/websockets" "^5.0.0" - "@multiformats/mafmt" "^11.0.2" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/multiaddr-to-uri" "^9.0.1" - "@multiformats/murmur3" "^2.0.0" - any-signal "^3.0.0" - array-shuffle "^3.0.0" - blockstore-core "^2.0.1" - dag-jose "^3.0.1" - datastore-core "^8.0.1" - datastore-pubsub "^6.0.0" - dlv "^1.1.3" - err-code "^3.0.1" - hamt-sharding "^3.0.0" - hashlru "^2.3.0" - interface-blockstore "^3.0.0" - interface-datastore "^7.0.0" - ipfs-bitswap "^13.0.0" - ipfs-core-config "^0.6.0" - ipfs-core-types "^0.13.0" - ipfs-core-utils "^0.17.0" - ipfs-http-client "^59.0.0" - ipfs-repo "^16.0.0" - ipfs-unixfs "^8.0.0" - ipfs-unixfs-exporter "^9.0.0" - ipfs-unixfs-importer "^11.0.0" - ipfs-utils "^9.0.6" - ipns "^4.0.0" - is-domain-name "^1.0.1" - is-ipfs "^7.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-first "^2.0.0" - it-last "^2.0.0" - it-map "^2.0.0" - it-merge "^2.0.0" - it-parallel "^3.0.0" - it-peekable "^2.0.0" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - it-tar "^6.0.0" - it-to-buffer "^3.0.0" - just-safe-set "^4.0.2" - libp2p "^0.40.0" - merge-options "^3.0.4" - mortice "^3.0.0" - multiformats "^10.0.0" - pako "^2.0.4" - parse-duration "^1.0.0" - timeout-abort-controller "^3.0.0" - uint8arrays "^4.0.2" - -ipfs-daemon@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/ipfs-daemon/-/ipfs-daemon-0.15.0.tgz#62c9cd0931698ba88b8d719162a6faf55d7fd470" - integrity sha512-I/KVYr6dUH6vFfFMqtmBhRl/V+18y5WPYBoQsHe1YrwdNQszj6GnSc6/etH+I8phD+J/QFZHqoZhoVw2kNup3A== - dependencies: - "@libp2p/logger" "^2.0.0" - "@libp2p/webrtc-star" "^5.0.2" - "@mapbox/node-pre-gyp" "^1.0.5" - ipfs-core "^0.17.0" - ipfs-core-types "^0.13.0" - ipfs-grpc-server "^0.11.0" - ipfs-http-gateway "^0.12.0" - ipfs-http-server "^0.14.0" - ipfs-utils "^9.0.6" - libp2p "^0.40.0" - optionalDependencies: - electron-webrtc "^0.3.0" - prom-client "^14.0.1" - wrtc "^0.4.6" - -ipfs-grpc-protocol@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.7.0.tgz#1b13768d444b2a8ded45864471aa9bf451ae533e" - integrity sha512-T0+nvF1H83hbxmhZ/KKpm05MpvP7/mePdNvz/6h1mPXXOsfXdB3lKjcJbhbwegeKndDSjbnBWGOGN8Ql8x/1lQ== - -ipfs-grpc-server@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/ipfs-grpc-server/-/ipfs-grpc-server-0.11.0.tgz#d918e20cf36591714ea58ab1d34972deab1cf07a" - integrity sha512-nqZ74hZE3GV2LEmNypmfvPDc1ZvyrPoSGNPZI9OVML67+ZjtRwwp+wZYVaHpeDrgY8p2ihRu0jZeH5/2m4XZhw== - dependencies: - "@grpc/grpc-js" "^1.1.8" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.10" - "@multiformats/multiaddr" "^11.0.0" - change-case "^4.1.1" - coercer "^1.1.2" - ipfs-core-types "^0.13.0" - ipfs-grpc-protocol "^0.7.0" - it-first "^2.0.0" - it-map "^2.0.0" - it-peekable "^2.0.0" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - nanoid "^4.0.0" - protobufjs "^7.0.0" - uint8arrays "^4.0.2" - ws "^8.5.0" - -ipfs-http-client@^59.0.0: - version "59.0.0" - resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-59.0.0.tgz#66bc208d6bcbaaf238c054b3c0c0beffa2774190" - integrity sha512-cFMU8ykKgxK2/uAw4Hthy2Kd+UuoFBno89DOdUqHYvmilKrmfV5vrYwviVWLYveIpkkaj8FB5x4TBxsiU99y0Q== - dependencies: - "@ipld/dag-cbor" "^8.0.0" - "@ipld/dag-json" "^9.0.0" - "@ipld/dag-pb" "^3.0.0" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.10" - "@multiformats/multiaddr" "^11.0.0" - any-signal "^3.0.0" - dag-jose "^3.0.1" - err-code "^3.0.1" - ipfs-core-types "^0.13.0" - ipfs-core-utils "^0.17.0" - ipfs-utils "^9.0.6" - it-first "^2.0.0" - it-last "^2.0.0" - merge-options "^3.0.4" - multiformats "^10.0.0" - parse-duration "^1.0.0" - stream-to-it "^0.2.2" - uint8arrays "^4.0.2" - -ipfs-http-gateway@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/ipfs-http-gateway/-/ipfs-http-gateway-0.12.0.tgz#c5cd3981ac876e1a292e2424bafb394ae4dfd799" - integrity sha512-x2kVh/dh/c/9mmYoNXp2ay21qDe4jwPhyZ36frRT0NMY+7Q9G5vgzwwFV1qWwBobvvlJeQEntO8vvfBvGtfQmQ== - dependencies: - "@hapi/ammo" "^5.0.1" - "@hapi/boom" "^9.1.0" - "@hapi/hapi" "^20.0.0" - "@libp2p/logger" "^2.0.0" - "@multiformats/uri-to-multiaddr" "^7.0.0" - hapi-pino "^8.5.0" - ipfs-core-types "^0.13.0" - ipfs-http-response "^5.0.0" - is-ipfs "^7.0.0" - it-last "^2.0.0" - it-to-stream "^1.0.0" - joi "^17.2.1" - multiformats "^10.0.0" - uint8arrays "^4.0.2" - -ipfs-http-response@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ipfs-http-response/-/ipfs-http-response-5.0.0.tgz#647530dd5117b844fbbebbb1ed750f12fc9251f5" - integrity sha512-UxuaPbHBuMD56jHS2nek2N3+GN1P/cDKYg/ZbwA2R/cCWCvEVPWnes01tchej00uFUoZXZbfi33fP6D0OJreHw== - dependencies: - "@libp2p/logger" "^2.0.0" - ejs "^3.1.6" - file-type "^18.0.0" - filesize "^10.0.5" - it-concat "^3.0.1" - it-map "^2.0.0" - it-reader "^6.0.1" - it-to-stream "^1.0.0" - mime-types "^2.1.30" - p-try-each "^1.0.1" - -ipfs-http-server@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/ipfs-http-server/-/ipfs-http-server-0.14.0.tgz#c2b7b73117b05fa9abe5f89fda9d9913577cf5e6" - integrity sha512-IWN6ckpJVrJfr6el/AeXJHvLjzgPidzWqiI5fTp5bZNonbwG6pbk/y2SDrN9oClGNDbU3TeuOxeO1uQqOVZDnw== - dependencies: - "@hapi/boom" "^9.1.0" - "@hapi/content" "^5.0.2" - "@hapi/hapi" "^20.0.0" - "@ipld/dag-pb" "^3.0.0" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.10" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/uri-to-multiaddr" "^7.0.0" - any-signal "^3.0.0" - dlv "^1.1.3" - hapi-pino "^8.5.0" - ipfs-core-types "^0.13.0" - ipfs-core-utils "^0.17.0" - ipfs-http-gateway "^0.12.0" - ipfs-unixfs "^8.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-last "^2.0.0" - it-map "^2.0.0" - it-merge "^2.0.0" - it-multipart "^3.0.0" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - it-reduce "^2.0.0" - joi "^17.2.1" - just-safe-set "^4.0.2" - multiformats "^10.0.0" - parse-duration "^1.0.0" - stream-to-it "^0.2.2" - timeout-abort-controller "^3.0.0" - uint8arrays "^4.0.2" - optionalDependencies: - prom-client "^14.0.1" - -ipfs-repo-migrations@^14.0.0: - version "14.0.1" - resolved "https://registry.yarnpkg.com/ipfs-repo-migrations/-/ipfs-repo-migrations-14.0.1.tgz#a91cad47ba08760746380df6a49146cb895db18a" - integrity sha512-wE22g05hzxegCWMhNj7deagCLsKPcNf8KmK1QN4WMob0kuZ4kDxCg7fusM68tGrOnhE+Ll/AVHseFlzmoU/ZbQ== - dependencies: - "@ipld/dag-pb" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - cborg "^1.3.4" - datastore-core "^8.0.1" - debug "^4.1.0" - fnv1a "^1.0.1" - interface-blockstore "^3.0.0" - interface-datastore "^7.0.0" - it-length "^2.0.0" - multiformats "^10.0.1" - protobufjs "^7.0.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - -ipfs-repo@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/ipfs-repo/-/ipfs-repo-16.0.0.tgz#5d880101f884a192759b49c5f963684bf86a6fb3" - integrity sha512-CYlHO3MK1CNfuCkRyLxXB9pKj2nx4yomH92DilhwDW+Et4rQ/8279RgmEh5nFNf7BgvIvYPE+3hVErGbVytS5Q== - dependencies: - "@ipld/dag-pb" "^3.0.0" - bytes "^3.1.0" - cborg "^1.3.4" - datastore-core "^8.0.1" - debug "^4.1.0" - err-code "^3.0.1" - interface-blockstore "^3.0.0" - interface-datastore "^7.0.0" - ipfs-repo-migrations "^14.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-first "^2.0.0" - it-map "^2.0.0" - it-merge "^2.0.0" - it-parallel-batch "^2.0.0" - it-pipe "^2.0.4" - it-pushable "^3.1.0" - just-safe-get "^4.1.1" - just-safe-set "^4.1.1" - merge-options "^3.0.4" - mortice "^3.0.0" - multiformats "^10.0.1" - p-queue "^7.3.0" - proper-lockfile "^4.0.0" - quick-lru "^6.1.1" - sort-keys "^5.0.0" - uint8arrays "^4.0.2" - -ipfs-unixfs-exporter@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-9.0.2.tgz#faee5aba34d7a532c967ae98217c23411205b88c" - integrity sha512-CoktRT+MgS3H06/IXrmtJpuLQcux7ff30y0ndDRYnZLCvnqD2Fr3YicoY1sDb8JluIPZ70Pmwovb6Du4NfKk+w== - dependencies: - "@ipld/dag-cbor" "^8.0.0" - "@ipld/dag-pb" "^3.0.0" - "@multiformats/murmur3" "^2.0.0" - err-code "^3.0.1" - hamt-sharding "^3.0.0" - interface-blockstore "^3.0.0" - ipfs-unixfs "^8.0.0" - it-last "^2.0.0" - it-map "^2.0.0" - it-parallel "^3.0.0" - it-pipe "^2.0.4" - it-pushable "^3.1.0" - multiformats "^10.0.0" - p-queue "^7.3.0" - uint8arrays "^4.0.2" - -ipfs-unixfs-importer@^11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-11.0.1.tgz#be881a390a3d134ff2d87598ade7e65eb8e3034c" - integrity sha512-e7Ca5zj8MMcQAqQR1YQrEicgZEiUf0xoBLMmu/6g/PtZ0U1oZBFsaIHcbDIjjjrEXxxhK6IcAvqSfqqUBnGfBg== - dependencies: - "@ipld/dag-pb" "^3.0.0" - "@multiformats/murmur3" "^2.0.0" - err-code "^3.0.1" - hamt-sharding "^3.0.0" - interface-blockstore "^3.0.0" - ipfs-unixfs "^8.0.0" - it-all "^2.0.0" - it-batch "^2.0.0" - it-first "^2.0.0" - it-parallel-batch "^2.0.0" - merge-options "^3.0.4" - multiformats "^10.0.0" - rabin-wasm "^0.1.4" - uint8arraylist "^2.3.3" - uint8arrays "^4.0.2" - -ipfs-unixfs@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-8.0.0.tgz#342c09edab3cbed8baf26f661d81a0f72ab420e6" - integrity sha512-PAHtfyjiFs2PZBbeft5QRyXpVOvZ2zsGqID+zVRla7fjC1zRTqJkrGY9h6dF03ldGv/mSmFlNZh479qPC6aZKg== - dependencies: - err-code "^3.0.1" - protobufjs "^7.0.0" - -ipfs-utils@^9.0.6: - version "9.0.14" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.14.tgz#24f5fda1f4567685eb32bca2543d518f95fd8704" - integrity sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg== - dependencies: - any-signal "^3.0.0" - browser-readablestream-to-it "^1.0.0" - buffer "^6.0.1" - electron-fetch "^1.7.2" - err-code "^3.0.1" - is-electron "^2.2.0" - iso-url "^1.1.5" - it-all "^1.0.4" - it-glob "^1.0.1" - it-to-stream "^1.0.0" - merge-options "^3.0.4" - nanoid "^3.1.20" - native-fetch "^3.0.0" - node-fetch "^2.6.8" - react-native-fetch-api "^3.0.0" - stream-to-it "^0.2.2" - -ipfs@^0.65.0: - version "0.65.0" - resolved "https://registry.yarnpkg.com/ipfs/-/ipfs-0.65.0.tgz#18e6c014b27ae6dc6705052a3649ba6b72bfeb8d" - integrity sha512-VAee8AjNzx6HY5E/IltAu3hyylSqgpCxWp3ID09k3jUweBfzDHDo3k57W+NyZwfPh2fPneUBEzfycOv7x7dycA== - dependencies: - "@libp2p/logger" "^2.0.0" - ipfs-cli "^0.15.0" - ipfs-core "^0.17.0" - semver "^7.3.2" - update-notifier "^6.0.0" - -ipns@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ipns/-/ipns-4.0.0.tgz#933fe5e2a5c6408a91e6f82441c9dd734982ed09" - integrity sha512-I+it3SkkQ8oYF7tT1Yphipau+3KEyJ72r6BDNWaVlQM+nTu28Zz1v5NoQCH9lqkh2nUpW02nSFOQJ3S4lqAyzg== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-keys" "^1.0.3" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.9" - cborg "^1.3.3" - err-code "^3.0.1" - interface-datastore "^7.0.0" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - timestamp-nano "^1.0.0" - uint8arrays "^4.0.2" + version "2.1.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== is-absolute-url@^2.0.0: version "2.1.0" @@ -14370,7 +11987,7 @@ is-alphanumerical@^2.0.0: is-alphabetical "^2.0.0" is-decimal "^2.0.0" -is-arguments@^1.0.4, is-arguments@^1.1.1: +is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -14424,12 +12041,12 @@ is-buffer@^1.1.0, is-buffer@^1.1.5, is-buffer@~1.1.6: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@^2.0.0, is-buffer@^2.0.5: +is-buffer@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-builtin-module@^3.1.0: +is-builtin-module@^3.1.0, is-builtin-module@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== @@ -14467,17 +12084,10 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: has "^1.0.3" @@ -14495,7 +12105,7 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1, is-date-object@^1.0.5: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -14540,16 +12150,6 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-domain-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-domain-name/-/is-domain-name-1.0.1.tgz#f6eb33b14a497541dca58335137d4466e0c20da1" - integrity sha512-52ToNggHmkZGPl8yLFNrk+cKHUUnkhS0l2jh+yMLq6kj9C5IMLSztvJsW5WO5eMy0OS0jdu4o2tptT9dN0hAFg== - -is-electron@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.2.tgz#3778902a2044d76de98036f5dc58089ac4d80bb9" - integrity sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg== - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -14634,42 +12234,6 @@ is-interactive@^1.0.0: resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== -is-ip@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" - integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== - dependencies: - ip-regex "^4.0.0" - -is-ip@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-5.0.0.tgz#1516ba75f1226550ff9b1ab50a0d47da27bd92a6" - integrity sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ== - dependencies: - ip-regex "^5.0.0" - super-regex "^0.2.0" - -is-ipfs@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-7.0.3.tgz#e68beb321a943e0f3ce23f6e441cdba8553312a2" - integrity sha512-IwjmN5DYrWQgk75dPX9WOFDbGpStJg6SLMLXXlxwpI3/SnwAIz3PwrdnxB+s2k+RjOTn9ueFIbGWxF2VMUYmLQ== - dependencies: - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" - iso-url "^1.1.3" - multiformats "^10.0.1" - uint8arrays "^4.0.2" - -is-loopback-addr@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz#0b43534f0b16ff899f1f19f322b59c38bd25fa03" - integrity sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw== - -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -14685,11 +12249,6 @@ is-npm@^5.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== -is-npm@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" - integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== - is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -14778,14 +12337,14 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-reference@^1.1.2, is-reference@^1.2.1: +is-reference@1.2.1, is-reference@^1.1.2, is-reference@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: "@types/estree" "*" -is-reference@^3.0.0: +is-reference@^3.0.0, is-reference@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831" integrity sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w== @@ -14805,11 +12364,6 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== -is-regexp@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-3.1.0.tgz#0235eab9cda5b83f96ac4a263d8c32c9d5ad7422" - integrity sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA== - is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -14827,11 +12381,6 @@ is-scoped@^2.1.0: dependencies: scoped-regex "^2.0.0" -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -14856,11 +12405,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -14908,11 +12452,6 @@ is-url-superb@^4.0.0: resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -14920,14 +12459,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -14945,11 +12476,6 @@ is-yarn-global@^0.3.0: resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== -is-yarn-global@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" - integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== - is@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" @@ -14975,24 +12501,6 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -iso-constants@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/iso-constants/-/iso-constants-0.1.2.tgz#3d2456ed5aeaa55d18564f285ba02a47a0d885b4" - integrity sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ== - -iso-random-stream@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/iso-random-stream/-/iso-random-stream-2.0.2.tgz#a24f77c34cfdad9d398707d522a6a0cc640ff27d" - integrity sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ== - dependencies: - events "^3.3.0" - readable-stream "^3.4.0" - -iso-url@^1.1.2, iso-url@^1.1.3, iso-url@^1.1.5: - version "1.2.1" - resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" - integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== - iso-url@~0.4.7: version "0.4.7" resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" @@ -15082,300 +12590,20 @@ istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -it-all@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" - integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== - -it-all@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-all/-/it-all-2.0.1.tgz#45d530ecf6e13fb81d7ba583cdfd55ffdb376b05" - integrity sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA== - -it-batch@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-1.0.9.tgz#7e95aaacb3f9b1b8ca6c8b8367892171d6a5b37f" - integrity sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA== - -it-batch@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-2.0.1.tgz#a0822be9b18743c41d8525835f788a7f297ba41f" - integrity sha512-2gWFuPzamh9Dh3pW+OKjc7UwJ41W4Eu2AinVAfXDMfrC5gXfm3b1TF+1UzsygBUgKBugnxnGP+/fFRyn+9y1mQ== - -it-batched-bytes@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/it-batched-bytes/-/it-batched-bytes-1.0.1.tgz#a3b12a10db24308c76a1126032af9184afc2dc63" - integrity sha512-ptBiZ0Mh3kJYySpG0pCS7JgvWhaAW1fGfKDVFtNIuNTA+bpSlXINvD5H3b14ZlJbnJFzFzRSCSZ10E1nH4z/WQ== - dependencies: - it-stream-types "^1.0.4" - p-defer "^4.0.0" - uint8arraylist "^2.4.1" - -it-concat@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/it-concat/-/it-concat-3.0.1.tgz#71ffcc66e0f766af3caf61805de0d3106086cdc9" - integrity sha512-adsCBiPaDM46TrrpmNPEWru++/oFiLWZAnteM5ODPs0NRkDfjDyom+qyXvag7bP/Kp3Z6Vqv+U1idZs5gmyIAg== - dependencies: - uint8arraylist "^2.3.3" - uint8arrays "^4.0.2" - -it-drain@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-1.0.5.tgz#0466d4e286b37bcd32599d4e99b37a87cb8cfdf6" - integrity sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg== - -it-drain@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-2.0.1.tgz#f50f6ce5cb8592a9d6337c9b5e780348877b152d" - integrity sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ== - -it-filter@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-1.0.3.tgz#66ea0cc4bf84af71bebd353c05a9c5735fcba751" - integrity sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w== - -it-filter@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-2.0.1.tgz#117da6c075ac3d727d15e06de61e124e8a6cb105" - integrity sha512-w9pBEnqq0Ab+AZHqa4JlfRIhu1GKTPKXFSKHSh7w7ilKoHsT6wTASb2bDi/3/unvXuNo+cz/WH1yolov3WwgUg== - -it-first@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1" - integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g== - -it-first@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-first/-/it-first-2.0.1.tgz#75d66b254c385ae3a1906def060a69006a437cef" - integrity sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw== - -it-foreach@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/it-foreach/-/it-foreach-1.0.1.tgz#a4dab99c111457d1480bef6c4f9382076d9a6b81" - integrity sha512-eaVFhKxU+uwPs7+DKYxjuL6pj6c50/MBlAH+XPMgPWRRVIChVoyEIsdUQkkC0Ad6oTUmJbKRTnJxEY6o2aIs7A== - -it-glob@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-1.0.2.tgz#bab9b04d6aaac42884502f3a0bfee84c7a29e15e" - integrity sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q== - dependencies: - "@types/minimatch" "^3.0.4" - minimatch "^3.0.4" - -it-handshake@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/it-handshake/-/it-handshake-4.1.2.tgz#9261f1869ce0162810a530e88bd40d5e7ce8e0a3" - integrity sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw== - dependencies: - it-pushable "^3.1.0" - it-reader "^6.0.1" - it-stream-types "^1.0.4" - p-defer "^4.0.0" - uint8arraylist "^2.0.0" - -it-last@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-last/-/it-last-2.0.1.tgz#a6f3253459cb77e917aeada3b2c4ae9f3e66c64b" - integrity sha512-uVMedYW0wa2Cx0TAmcOCLbfuLLII7+vyURmhKa8Zovpd+aBTMsmINtsta2n364wJ5qsEDBH+akY1sUtAkaYBlg== - -it-length-prefixed@^8.0.2, it-length-prefixed@^8.0.3: - version "8.0.4" - resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-8.0.4.tgz#80bd356d93d77a8989a71200f8ca0860db040404" - integrity sha512-5OJ1lxH+IaqJB7lxe8IAIwt9UfSfsmjKJoAI/RO9djYoBDt1Jfy9PeVHUmOfqhqyu/4kJvWBFAJUaG1HhLQ12A== - dependencies: - err-code "^3.0.1" - it-stream-types "^1.0.4" - uint8-varint "^1.0.1" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -it-length@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-length/-/it-length-2.0.1.tgz#f4793637a35456bf14caea176e426b66aedb5ff4" - integrity sha512-BynaPOK4UwcQX2Z+kqsQygXUNW9NZswfTnscfP7MLhFvVhRYbYJv8XH+09/Qwf8ktk65QdsGoVnDmQUCUGCyvg== - -it-map@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c" - integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== - -it-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-map/-/it-map-2.0.1.tgz#d5251fd6b222d6ee39293d406a3f8fce54fb9220" - integrity sha512-a2GcYDHiAh/eSU628xlvB56LA98luXZnniH2GlD0IdBzf15shEq9rBeb0Rg3o1SWtNILUAwqmQxEXcewGCdvmQ== - -it-merge@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-merge/-/it-merge-2.0.1.tgz#6137c63f0dbdcb3b8b74ec67549f2b3351c84da8" - integrity sha512-ItoBy3dPlNKnhjHR8e7nfabfZzH4Jy2OMPvayYH3XHy4YNqSVKmWTIxhz7KX4UMBsLChlIJZ+5j6csJgrYGQtw== - dependencies: - it-pushable "^3.1.0" - -it-multipart@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/it-multipart/-/it-multipart-3.0.1.tgz#6d95ea731a4957bbb3b9ac7884c51e5a46195090" - integrity sha512-yU/wRmDk2up+OkdZcHy2mKbM2KdnbOuYOsqQzufroXzS49KdpygwKJe9tyVhqlfgk/Q+ceEPMDeAjhJOaUmYhw== - dependencies: - formidable "^2.0.1" - it-pushable "^3.1.0" - -it-pair@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/it-pair/-/it-pair-2.0.4.tgz#3113fd3f0b573f823cfd6c4339432ea7ddebc7c8" - integrity sha512-S3y3mTJ3muuxcHBGcIzNONofAN+G3iAgmSjS78qARkRWI2ImJXybjj0h52uSW+isgrJqIx2iFB/T8ZEBc8kDSw== - dependencies: - it-stream-types "^1.0.3" - p-defer "^4.0.0" - -it-parallel-batch@^1.0.9: - version "1.0.11" - resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-1.0.11.tgz#f889b4e1c7a62ef24111dbafbaaa010b33d00f69" - integrity sha512-UWsWHv/kqBpMRmyZJzlmZeoAMA0F3SZr08FBdbhtbe+MtoEBgr/ZUAKrnenhXCBrsopy76QjRH2K/V8kNdupbQ== - dependencies: - it-batch "^1.0.9" - -it-parallel-batch@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-2.0.1.tgz#23eb07bbeb73521253d7c8a1566b53137103077c" - integrity sha512-tXh567/JfDGJ90Zi//H9HkL7kY27ARp0jf2vu2jUI6PUVBWfsoT+gC4eT41/b4+wkJXSGgT8ZHnivAOlMfcNjA== - dependencies: - it-batch "^2.0.0" - -it-parallel@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/it-parallel/-/it-parallel-3.0.1.tgz#cdffdad1af4681cd3738afbb47f34cc38647fa8e" - integrity sha512-Wq9DcoLrFV9n5YzWC4BlOQT+v5qgir/iIO/CJ1eV0T5t9rcCZFPKOZB3E8wIhZ5ruSApc2w7UKrbn5iENqew5A== - dependencies: - p-defer "^4.0.0" - -it-pb-stream@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/it-pb-stream/-/it-pb-stream-2.0.4.tgz#9d246d186d6cbfc0e3860a1796e181085359638b" - integrity sha512-p0chBIT3HrZt3hIqvBEi+NgZxxT25MTJ362nKoHmzA/k/WsUPPbeSz7Ad+wRcGxZn2O5JEXCS5lOGRjSDSnlNg== - dependencies: - it-handshake "^4.1.2" - it-length-prefixed "^8.0.2" - it-stream-types "^1.0.4" - uint8arraylist "^2.0.0" - -it-peekable@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-2.0.1.tgz#1e118610473aa511efc70f3bb7a7066178728dd3" - integrity sha512-fJ/YTU9rHRhGJOM2hhQKKEfRM6uKB9r4yGGFLBHqp72ACC8Yi6+7/FhuBAMG8cpN6mLoj9auVX7ZJ3ul6qFpTA== - -it-pipe@^2.0.3, it-pipe@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/it-pipe/-/it-pipe-2.0.5.tgz#9caf7993dcbbc3824bc6ef64ee8b94574f65afa7" - integrity sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw== - dependencies: - it-merge "^2.0.0" - it-pushable "^3.1.0" - it-stream-types "^1.0.3" - -it-pushable@^3.0.0, it-pushable@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-3.1.2.tgz#6f2420fb192f637613c561720945a36b6d9160ae" - integrity sha512-zU9FbeoGT0f+yobwm8agol2OTMXbq4ZSWLEi7hug6TEZx4qVhGhGyp31cayH04aBYsIoO2Nr5kgMjH/oWj2BJQ== - -it-reader@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-6.0.2.tgz#2177afca42f0b41c6acc582cc6fc6869ae8d4dd4" - integrity sha512-rQdVyml+r/2v8PQsPfJgf626tAkbA7NW1EF6zuucT2Ryy1U6YJtSuCJL8fKuDOyiR/mLzbfP0QQJlSeeoLph2A== - dependencies: - it-stream-types "^1.0.4" - uint8arraylist "^2.0.0" - -it-reduce@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-reduce/-/it-reduce-2.0.1.tgz#0e897315d9fc98dc7a77ab3024a51b06552ba8ab" - integrity sha512-F6Ysj5LEH1SmDicEc/wlwEaDNQHGwOdUpLHd5Ze9FK7QHU0HD8qykQak0SaS4EdUUtOTYnBz1cwX1JSzNEbYAw== - -it-sort@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-sort/-/it-sort-2.0.1.tgz#37af025862f7adb30d7fc1f8520b3cd7ef219ef6" - integrity sha512-9f4jKOTHfxc/FJpg/wwuQ+j+88i+sfNGKsu2HukAKymm71/XDnBFtOAOzaimko3YIhmn/ERwnfEKrsYLykxw9A== - dependencies: - it-all "^2.0.0" - -it-split@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/it-split/-/it-split-2.0.2.tgz#6bbc8a719a426624f4305695760f8f07c3daf6b2" - integrity sha512-903fJ75Yb7mX6StecbshNHgj+qbaesVP48fw2SH+HktH/KEtErjYul7rU/UZhTH5TCD01u8fV4kRIrZZGVMYbg== - dependencies: - uint8arraylist "^2.4.1" - -it-stream-types@^1.0.2, it-stream-types@^1.0.3, it-stream-types@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/it-stream-types/-/it-stream-types-1.0.5.tgz#9c72e6adefdea9dac69d0a28fbea783deebd508d" - integrity sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA== - -it-take@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/it-take/-/it-take-1.0.2.tgz#b5f1570014db7c3454897898b69bb7ac9c3bffc1" - integrity sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw== - -it-take@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-take/-/it-take-2.0.1.tgz#f9e5ddf0b73a18ba00e62fb532d9d3cde3fe4ce6" - integrity sha512-DL7kpZNjuoeSTnB9dMAJ0Z3m2T29LRRAU+HIgkiQM+1jH3m8l9e/1xpWs8JHTlbKivbqSFrQMTc8KVcaQNmsaA== - -it-tar@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/it-tar/-/it-tar-6.0.1.tgz#6164227c4f20cb870efb89e2a6693ffde77f69b1" - integrity sha512-KMKNqYQr/m3mJE0ERg6F2Snlk1d68tEMeOP0bPf5vboka1y0L7CZD2nlf57H+C9R31TA0SbtiOqkblRxEIONfg== - dependencies: - iso-constants "^0.1.2" - it-reader "^6.0.1" - it-stream-types "^1.0.4" - it-to-buffer "^3.0.0" - p-defer "^4.0.0" - uint8arraylist "^2.3.2" - uint8arrays "^4.0.2" - -it-to-buffer@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/it-to-buffer/-/it-to-buffer-3.0.1.tgz#ac00e7d9616c7a7d1613f29dc437c67d0e473271" - integrity sha512-TiMudfypF2yW+HdNfhDgbkNQ42yuK1MizB716kwnzIJSQa8AM15zh+VZG2L/xQWaqyWfra1dr9neWO55xsYolA== - dependencies: - uint8arrays "^4.0.2" - -it-to-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-1.0.0.tgz#6c47f91d5b5df28bda9334c52782ef8e97fe3a4a" - integrity sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA== - dependencies: - buffer "^6.0.3" - fast-fifo "^1.0.0" - get-iterator "^1.0.2" - p-defer "^3.0.0" - p-fifo "^1.0.0" - readable-stream "^3.6.0" - -it-ws@^5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/it-ws/-/it-ws-5.0.6.tgz#9b69ff2ef9d08fda18ef2db604acf972d0fedded" - integrity sha512-TEEJQaGtkxgP/nGVq8dq48nPT85Afu8kwwvtDFLj4rQLWRhZcb26RWdXLdn9qhXkWPiWbK5H7JWBW1Bebj/SuQ== - dependencies: - event-iterator "^2.0.0" - iso-url "^1.1.2" - it-stream-types "^1.0.2" - uint8arrays "^4.0.2" - ws "^8.4.0" - iterall@^1.2.1, iterall@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== jake@^10.8.5: - version "10.8.5" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" - integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== + version "10.8.7" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== dependencies: async "^3.2.3" chalk "^4.0.2" - filelist "^1.0.1" - minimatch "^3.0.4" + filelist "^1.0.4" + minimatch "^3.1.2" jdenticon@^3.1.0: version "3.2.0" @@ -16277,42 +13505,16 @@ jest@^27.4.3: import-local "^3.0.2" jest-cli "^27.5.1" -jmespath@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" - integrity sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w== - -joi@^17.2.1: - version "17.8.4" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.8.4.tgz#f2d91ab8acd3cca4079ba70669c65891739234aa" - integrity sha512-jjdRHb5WtL+KgSHvOULQEPPv4kcl+ixd1ybOFQq3rWLgEEqc03QMmilodL0GVJE14U/SQDXkUhQUSZANGDH/AA== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.1" - "@sideway/pinpoint" "^2.0.0" - -jose@^4.8.1: - version "4.13.1" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.13.1.tgz#449111bb5ab171db85c03f1bd2cb1647ca06db1c" - integrity sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ== - -joycon@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" - integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== +jiti@^1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" + integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== js-base64@^3.7.3: version "3.7.5" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== -js-sdsl@^4.1.4: - version "4.3.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" - integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -16338,11 +13540,6 @@ js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" - integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -16472,21 +13669,6 @@ jsonc-parser@^3.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== -jsondiffpatch@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz#9fb085036767f03534ebd46dcd841df6070c5773" - integrity sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw== - dependencies: - chalk "^2.3.0" - diff-match-patch "^1.0.0" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -16523,11 +13705,6 @@ jsonschema@1.1.0: resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.1.0.tgz#039cc219ed524b06e71daf12ca60d02639faf29a" integrity sha512-nQhT+ioA1XM8CpxJYlBfcUj6HF3f3f2KbLgV3tcxOt85RKpk2b0Do/C5BnCCCfdAarAjWRSFlln0Uanl4tBCHA== -jsonschema@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" - integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== - jsprim@^1.2.2: version "1.4.2" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" @@ -16557,33 +13734,11 @@ juice@^8.0.0: slick "^1.12.2" web-resource-inliner "^6.0.1" -just-debounce-it@^3.0.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/just-debounce-it/-/just-debounce-it-3.2.0.tgz#4352265f4af44188624ce9fdbc6bff4d49c63a80" - integrity sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ== - just-extend@^4.0.2: version "4.2.1" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== -just-safe-get@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/just-safe-get/-/just-safe-get-4.2.0.tgz#8b184907473ae9995c9b30a52ce3462544437dca" - integrity sha512-+tS4Bvgr/FnmYxOGbwziJ8I2BFk+cP1gQHm6rm7zo61w1SbxBwWGEq/Ryy9Gb6bvnloPq6pz7Bmm4a0rjTNlXA== - -just-safe-set@^4.0.2, just-safe-set@^4.1.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/just-safe-set/-/just-safe-set-4.2.1.tgz#aa2d26abedc670ef247c1eaabeba73dc07a05cea" - integrity sha512-La5CP41Ycv52+E4g7w1sRV8XXk7Sp8a/TwWQAYQKn6RsQz1FD4Z/rDRRmqV3wJznS1MDF3YxK7BCudX1J8FxLg== - -k-bucket@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-5.1.0.tgz#db2c9e72bd168b432e3f3e8fc092e2ccb61bff89" - integrity sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg== - dependencies: - randombytes "^2.1.0" - katex@^0.16.0, katex@^0.16.7: version "0.16.7" resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.7.tgz#36be1d4ed96e8afdc5863407e70f8fb250aeafd5" @@ -16591,16 +13746,6 @@ katex@^0.16.0, katex@^0.16.7: dependencies: commander "^8.3.0" -key-encoder@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba" - integrity sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg== - dependencies: - "@types/elliptic" "^6.4.9" - asn1.js "^5.0.1" - bn.js "^4.11.8" - elliptic "^6.4.1" - keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -16608,7 +13753,7 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -keyv@^4.0.0, keyv@^4.5.2: +keyv@^4.0.0: version "4.5.2" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== @@ -16620,6 +13765,11 @@ khroma@^2.0.0: resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b" integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== +kill-process-by-name@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/kill-process-by-name/-/kill-process-by-name-1.0.5.tgz#d729c6a9509ac756dad5f2bd61851e01dd598e89" + integrity sha512-uxgO15GtTsK5ofd/c17saZ7GagZEJrMt5VY4AL5X+vVS3kw5uHfzyIk5+npRD8gowWvx3cB37vrCy/yr0PyD8A== + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -16644,26 +13794,12 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== - optionalDependencies: - graceful-fs "^4.1.9" - kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -kleur@^4.0.3, kleur@^4.1.4: +kleur@^4.0.3, kleur@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== @@ -16674,9 +13810,9 @@ klona@^2.0.4, klona@^2.0.5: integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== kolorist@^1.2.10: - version "1.7.0" - resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.7.0.tgz#8e22bc470ea2d2743dbd461808f8b5246b19f5f4" - integrity sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g== + version "1.8.0" + resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== kramed@0.5.6: version "0.5.6" @@ -16710,13 +13846,6 @@ latest-version@^5.1.0: dependencies: package-json "^6.3.0" -latest-version@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" - integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== - dependencies: - package-json "^8.1.0" - launch-editor@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" @@ -16735,32 +13864,6 @@ layout-base@^2.0.0: resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== -level-supports@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" - integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== - -level-transcoder@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" - integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== - dependencies: - buffer "^6.0.3" - module-error "^1.0.1" - -level@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" - integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== - dependencies: - browser-level "^1.0.1" - classic-level "^1.2.0" - -leven@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -16782,87 +13885,24 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libp2p@^0.40.0: - version "0.40.0" - resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-0.40.0.tgz#c93b586d99f58192b43801444053536a5f9cbbd1" - integrity sha512-AeLaA+8KIhUhjpXZcs20+Pnf2wIBp+zdSYPD1IgGCF0PlMbTdCvaIqhPzpTSd3+e5k7NZlgpd/BvCOLgQbfm5Q== - dependencies: - "@achingbrain/nat-port-mapper" "^1.0.3" - "@libp2p/connection" "^4.0.2" - "@libp2p/crypto" "^1.0.4" - "@libp2p/interface-address-manager" "^2.0.0" - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-connection-encrypter" "^3.0.1" - "@libp2p/interface-connection-manager" "^1.1.1" - "@libp2p/interface-content-routing" "^1.0.2" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-metrics" "^3.0.0" - "@libp2p/interface-peer-discovery" "^1.0.1" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interface-peer-routing" "^1.0.1" - "@libp2p/interface-peer-store" "^1.2.2" - "@libp2p/interface-pubsub" "^3.0.0" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/interface-stream-muxer" "^3.0.0" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@libp2p/multistream-select" "^3.0.0" - "@libp2p/peer-collections" "^2.0.0" - "@libp2p/peer-id" "^1.1.15" - "@libp2p/peer-id-factory" "^1.0.18" - "@libp2p/peer-record" "^4.0.3" - "@libp2p/peer-store" "^5.0.0" - "@libp2p/tracked-map" "^2.0.1" - "@libp2p/utils" "^3.0.2" - "@multiformats/mafmt" "^11.0.2" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - any-signal "^3.0.0" - datastore-core "^8.0.1" - err-code "^3.0.1" - events "^3.3.0" - hashlru "^2.3.0" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-first "^2.0.0" - it-foreach "^1.0.0" - it-handshake "^4.1.2" - it-length-prefixed "^8.0.2" - it-map "^2.0.0" - it-merge "^2.0.0" - it-pair "^2.0.2" - it-pipe "^2.0.3" - it-sort "^2.0.0" - it-stream-types "^1.0.4" - merge-options "^3.0.4" - multiformats "^10.0.0" - mutable-proxy "^1.0.0" - node-forge "^1.3.1" - p-fifo "^1.0.0" - p-retry "^5.0.0" - p-settle "^5.0.0" - private-ip "^2.3.3" - protons-runtime "^4.0.1" - rate-limiter-flexible "^2.3.11" - retimer "^3.0.0" - sanitize-filename "^1.6.3" - set-delayed-interval "^1.0.0" - timeout-abort-controller "^3.0.0" - uint8arraylist "^2.3.2" - uint8arrays "^4.0.2" - wherearewe "^2.0.0" - xsalsa20 "^1.1.0" - libphonenumber-js@^1.9.43: - version "1.10.24" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.24.tgz#a1744cf29df86d5a587562ea28dde12320eb6ab6" - integrity sha512-3Dk8f5AmrcWqg+oHhmm9hwSTqpWHBdSqsHmjCJGroULFubi0+x7JEIGmRZCuL3TI8Tx39xaKqfnhsDQ4ALa/Nw== + version "1.10.34" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.34.tgz#63374bb988688ac28b03ed6c4b344d412199d56c" + integrity sha512-p6g4NaQH4gK1gre32+kV14Mk6GPo2EDcPDvjbi+D2ycsPFsN4gVWNbs0itdHLZqByg6YEK8mE7OeP200I/ScTQ== + +libsodium-wrappers@^0.7.11: + version "0.7.11" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz#53bd20606dffcc54ea2122133c7da38218f575f7" + integrity sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q== + dependencies: + libsodium "^0.7.11" -lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: +libsodium@^0.7.11: + version "0.7.11" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.11.tgz#cd10aae7bcc34a300cc6ad0ac88fcca674cfbc2e" + integrity sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A== + +lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== @@ -16872,6 +13912,17 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +linkedom@^0.14.26: + version "0.14.26" + resolved "https://registry.yarnpkg.com/linkedom/-/linkedom-0.14.26.tgz#fd8ddaef1a052e1191fb2e881605a1a001409f3b" + integrity sha512-mK6TrydfFA7phrnp+1j57ycBwFI5bGSW6YXlw9acHoqF+mP/y+FooEYYyniOt5Ot57FSKB3iwmnuQ1UUyNLm5A== + dependencies: + css-select "^5.1.0" + cssom "^0.5.0" + html-escaper "^3.0.3" + htmlparser2 "^8.0.1" + uhyphen "^0.2.0" + listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" @@ -16931,29 +13982,30 @@ listr@^0.14.3: p-map "^2.0.0" rxjs "^6.3.3" -lit-element@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.2.2.tgz#d148ab6bf4c53a33f707a5168e087725499e5f2b" - integrity sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ== +lit-element@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.2.tgz#9913bf220b85065f0e5f1bb8878cc44f36b50cfa" + integrity sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ== dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.0" "@lit/reactive-element" "^1.3.0" - lit-html "^2.2.0" + lit-html "^2.7.0" -lit-html@^2.2.0, lit-html@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.6.1.tgz#eb29f0b0c2ab54ea77379db11fc011b0c71f1cda" - integrity sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw== +lit-html@^2.7.0: + version "2.7.4" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.7.4.tgz#6d75001977c206683685b9d76594a516afda2954" + integrity sha512-/Jw+FBpeEN+z8X6PJva5n7+0MzCVAH2yypN99qHYYkq8bI+j7I39GH+68Z/MZD6rGKDK9RpzBw7CocfmHfq6+g== dependencies: "@types/trusted-types" "^2.0.2" lit@^2.0.0-rc.2, lit@^2.3.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/lit/-/lit-2.6.1.tgz#5951a2098b9bde5b328c73b55c15fdc0eefd96d7" - integrity sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw== + version "2.7.5" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.5.tgz#60bc82990cfad169d42cd786999356dcf79b035f" + integrity sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ== dependencies: "@lit/reactive-element" "^1.6.0" - lit-element "^3.2.0" - lit-html "^2.6.0" + lit-element "^3.3.0" + lit-html "^2.7.0" livereload-js@^2.3.0: version "2.4.0" @@ -17008,6 +14060,11 @@ loader-utils@^3.2.0: resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== +locate-character@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" + integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -17100,7 +14157,7 @@ lodash.zip@^4.2.0: resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" integrity sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== -lodash@4, lodash@4.x, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.7.0: +lodash@4.x, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -17139,19 +14196,6 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -long@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" - integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== - -longbits@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/longbits/-/longbits-1.1.0.tgz#d6a7b2411dead1cf4b79ee4586816e65c7356ab9" - integrity sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ== - dependencies: - byte-access "^1.0.1" - uint8arraylist "^2.0.0" - longest-streak@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" @@ -17176,17 +14220,6 @@ loupe@^2.3.1: dependencies: get-func-name "^2.0.0" -lowdb@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" - integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== - dependencies: - graceful-fs "^4.1.3" - is-promise "^2.1.0" - lodash "4" - pify "^3.0.0" - steno "^0.4.1" - lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -17204,11 +14237,6 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - "lru-cache@7.10.1 - 7.13.1": version "7.13.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" @@ -17263,6 +14291,20 @@ magic-string@^0.25.0, magic-string@^0.25.2, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + +magic-string@^0.30.0: + version "0.30.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -17663,6 +14705,11 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" @@ -17674,11 +14721,11 @@ media-typer@0.3.0: integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memfs@^3.1.2, memfs@^3.4.3: - version "3.4.13" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.13.tgz#248a8bd239b3c240175cd5ec548de5227fc4f345" - integrity sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg== + version "3.5.3" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.3.tgz#d9b40fe4f8d5788c5f895bda804cd0d9eeee9f3b" + integrity sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw== dependencies: - fs-monkey "^1.0.3" + fs-monkey "^1.0.4" memoize-one@^5.1.1: version "5.2.1" @@ -17752,13 +14799,6 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== -merge-options@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" - integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== - dependencies: - is-plain-obj "^2.1.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -18279,12 +15319,12 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.52.0, mime-db@1.x.x, "mime-db@>= 1.43.0 < 2": +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.30, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -18316,11 +15356,6 @@ mimic-fn@^3.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -18331,25 +15366,15 @@ mimic-response@^2.0.0, mimic-response@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -mimic-response@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" - integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== - min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.4.5: - version "2.7.3" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.3.tgz#794aa4d598bf178a66b2a35fe287c3df3eac394e" - integrity sha512-CD9cXeKeXLcnMw8FZdtfrRrLaM7gwCl4nKuKn2YkY2Bw5wdlB8zU2cCzw+w2zS9RFvbrufTBkMCJACNPwqQA0w== + version "2.7.6" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" + integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== dependencies: schema-utils "^4.0.0" @@ -18405,7 +15430,7 @@ minimist@1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -18418,18 +15443,6 @@ minipass@^2.6.0, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^4.0.0: - version "4.2.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.5.tgz#9e0e5256f1e3513f8c34691dd68549e85b2c8ceb" - integrity sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q== - minizlib@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" @@ -18437,14 +15450,6 @@ minizlib@^1.3.3: dependencies: minipass "^2.9.0" -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -18454,21 +15459,21 @@ mixin-deep@^1.2.0: is-extendable "^1.0.1" mixme@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.5.tgz#bf8f67d8caf10fdb49fd23198fd1fa6d8e406627" - integrity sha512-/6IupbRx32s7jjEwHcycXikJwFD5UujbVNuJFkeKLYje+92OvtuPniF6JhnFm5JCTDUhS+kYK3W/4BWYQYXz7w== + version "0.5.9" + resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.9.tgz#a5a58e17354632179ff3ce5b0fc130899c8ba81c" + integrity sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw== -mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: +mkdirp-classic@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@1.x, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -18523,31 +15528,11 @@ module-deps@^6.2.3: through2 "^2.0.0" xtend "^4.0.0" -module-error@^1.0.1, module-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" - integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== - moment@^2.24.0: version "2.29.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== -mortice@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mortice/-/mortice-3.0.1.tgz#27c1943b1841502c7b27a9c8fea789f87c124515" - integrity sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA== - dependencies: - nanoid "^4.0.0" - observable-webworkers "^2.0.1" - p-queue "^7.2.0" - p-timeout "^6.0.0" - -mri@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" - integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== - mri@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" @@ -18568,19 +15553,7 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multiaddr@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-10.0.1.tgz#0d15848871370860a4d266bb44d93b3dac5d90ef" - integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg== - dependencies: - dns-over-http-resolver "^1.2.3" - err-code "^3.0.1" - is-ip "^3.1.0" - multiformats "^9.4.5" - uint8arrays "^3.0.0" - varint "^6.0.0" - -multicast-dns@^7.2.0, multicast-dns@^7.2.5: +multicast-dns@^7.2.5: version "7.2.5" resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== @@ -18588,39 +15561,11 @@ multicast-dns@^7.2.0, multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -multiformats@^10.0.0, multiformats@^10.0.1: - version "10.0.3" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-10.0.3.tgz#d4147d01f9a31271c6fb5d24adf9b01f9e656bba" - integrity sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw== - -multiformats@^11.0.0: - version "11.0.2" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60" - integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg== - -multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.1, multiformats@^9.6.3, multiformats@^9.6.4: +multiformats@^9.4.2: version "9.9.0" resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== -multistream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8" - integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw== - dependencies: - once "^1.4.0" - readable-stream "^3.6.0" - -murmurhash3js-revisited@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz#6bd36e25de8f73394222adc6e41fa3fac08a5869" - integrity sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g== - -mutable-proxy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mutable-proxy/-/mutable-proxy-1.0.0.tgz#3c6e6f9304c2e5a4751bb65b5a66677de9bcf3c8" - integrity sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A== - mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" @@ -18631,20 +15576,24 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== -nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - -nanoid@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.1.tgz#398d7ccfdbf9faf2231b2ca7e8fff5dbca6a509b" - integrity sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww== +nanoid@^3.3.4, nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== nanomatch@^1.2.9: version "1.2.13" @@ -18663,26 +15612,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - -napi-macros@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" - integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== - -native-fetch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" - integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== - -native-fetch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-4.0.2.tgz#75c8a44c5f3bb021713e5e24f2846750883e49af" - integrity sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg== - natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -18693,16 +15622,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -ndjson@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-1.5.0.tgz#ae603b36b134bcec347b452422b0bf98d5832ec8" - integrity sha512-hUPLuaziboGjNF7wHngkgVc0FOclR8dDk/HfEvTtDr/iUrqBWiRcRSTK3/nLOqKH33th714BrMmTPtObI9gZxQ== - dependencies: - json-stringify-safe "^5.0.1" - minimist "^1.2.0" - split2 "^2.1.0" - through2 "^2.0.3" - needle@^2.2.1: version "2.9.1" resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" @@ -18744,11 +15663,6 @@ neon-cli@0.4.0: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" -netmask@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" - integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== - new-github-release-url@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-1.0.0.tgz#493847e6fecce39c247e9d89929be773d2e7f777" @@ -18871,13 +15785,6 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-abi@^3.3.0: - version "3.33.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.33.0.tgz#8b23a0cec84e1c5f5411836de6a9b84bccf26e7f" - integrity sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog== - dependencies: - semver "^7.3.5" - node-abort-controller@^3.0.1: version "3.1.1" resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" @@ -18888,26 +15795,33 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-fetch@2, node-fetch@^2.5.11, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7, node-fetch@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" - integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@2, node-fetch@^2.6.0, node-fetch@^2.6.11, node-fetch@^2.6.7: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== dependencies: whatwg-url "^5.0.0" -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== +node-fetch@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" + integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow== dependencies: - whatwg-url "^5.0.0" + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" -node-forge@^1, node-forge@^1.1.0, node-forge@^1.3.1: +node-forge@^1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: +node-gyp-build@^4.2.0: version "4.6.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== @@ -18945,26 +15859,15 @@ node-pre-gyp@0.14.0: semver "^5.3.0" tar "^4.4.2" -node-pre-gyp@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz#df9ab7b68dd6498137717838e4f92a33fc9daa42" - integrity sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== node-wget-js@^1.0.1: version "1.0.1" @@ -18991,14 +15894,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -19050,15 +15946,10 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -normalize-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" - integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== - np@^7.6.2: - version "7.6.3" - resolved "https://registry.yarnpkg.com/np/-/np-7.6.3.tgz#da3eeb750fa8d583f658b02a16f1199a11c9e10f" - integrity sha512-GTFNvIhu/cZqzUhil/AlISCiipYeAUVx0JtyjtmumFJvWogSewUSAshFi5MSMc6BOj9C98s8NAFZiqlHb2wQPQ== + version "7.7.0" + resolved "https://registry.yarnpkg.com/np/-/np-7.7.0.tgz#7fbf2495f6395bcc702b84ca38c4a125363fd5a5" + integrity sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q== dependencies: "@samverschueren/stream-to-observable" "^0.3.1" any-observable "^0.5.1" @@ -19130,7 +16021,7 @@ npm-name@^6.0.1: registry-url "^5.1.0" validate-npm-package-name "^3.0.0" -npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: +npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== @@ -19173,13 +16064,6 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -19190,16 +16074,6 @@ npmlog@^4.0.2: gauge "~2.7.3" set-blocking "~2.0.0" -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -19214,19 +16088,6 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nugget@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.2.0.tgz#ad6feeeda912dfe839e35efe713bc1ce67f1f5b6" - integrity sha512-I4Yt4dRPes82Tx/s7qDn8z1cA2pmZy2bOJiTdcb/BZJ1LJkEYd9GqunQD37unPUPjdmW6dkkVZmxN+8Gxt6Xlg== - dependencies: - debug "^2.1.3" - minimist "^1.1.0" - pretty-bytes "^4.0.2" - progress-stream "^1.1.0" - request "^2.45.0" - single-line-log "^1.1.2" - throttleit "0.0.2" - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -19238,25 +16099,25 @@ nunjucks-do@^1.0.0: integrity sha512-GQwENqZdcSbni0iYfEiNi3hs634JBSQdxnbnd9CetGkMYPnpjG1Jn5DT/qgAaC/STwMc7C4MSIJvLSNertclSg== nunjucks@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.3.tgz#1b33615247290e94e28263b5d855ece765648a31" - integrity sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ== + version "3.2.4" + resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.4.tgz#f0878eef528ce7b0aa35d67cc6898635fd74649e" + integrity sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ== dependencies: a-sync-waterfall "^1.0.0" asap "^2.0.3" commander "^5.1.0" nwsapi@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== + version "2.2.5" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.5.tgz#a52744c61b3889dd44b0a158687add39b8d935e2" + integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ== oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -19280,24 +16141,11 @@ object-inspect@^1.12.3, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== - object-path@^0.11.5: version "0.11.8" resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" @@ -19339,14 +16187,15 @@ object.fromentries@^2.0.5, object.fromentries@^2.0.6: es-abstract "^1.20.4" object.getownpropertydescriptors@^2.1.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" - integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== + version "2.1.6" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== dependencies: array.prototype.reduce "^1.0.5" call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" object.hasown@^1.1.0, object.hasown@^1.1.2: version "1.1.2" @@ -19372,11 +16221,6 @@ object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: define-properties "^1.1.4" es-abstract "^1.20.4" -observable-webworkers@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/observable-webworkers/-/observable-webworkers-2.0.1.tgz#7d9086ebc567bd318b46ba0506b10cedf3813878" - integrity sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw== - obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -19430,14 +16274,7 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^7.0.0, open@^7.3.0, open@^7.4.2: +open@^7.0.0, open@^7.3.0: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== @@ -19548,26 +16385,11 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== -p-defer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" - integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== - -p-defer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-4.0.0.tgz#8082770aeeb10eb6b408abe91866738741ddd5d2" - integrity sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ== - p-each-series@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" @@ -19580,21 +16402,6 @@ p-event@^4.0.0: dependencies: p-timeout "^3.1.0" -p-event@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-5.0.1.tgz#614624ec02ae7f4f13d09a721c90586184af5b0c" - integrity sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ== - dependencies: - p-timeout "^5.0.2" - -p-fifo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" - integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== - dependencies: - fast-fifo "^1.0.0" - p-defer "^3.0.0" - p-filter@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -19607,11 +16414,6 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== -p-is-promise@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" - integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ== - p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -19626,13 +16428,6 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -19690,24 +16485,11 @@ p-queue@^6.3.0, p-queue@^6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" -p-queue@^7.2.0, p-queue@^7.3.0: - version "7.3.4" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-7.3.4.tgz#7ef7d89b6c1a0563596d98adbc9dc404e9ed4a84" - integrity sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg== - dependencies: - eventemitter3 "^4.0.7" - p-timeout "^5.0.2" - p-reflect@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-reflect/-/p-reflect-2.1.0.tgz#5d67c7b3c577c4e780b9451fc9129675bd99fe67" integrity sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg== -p-reflect@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-reflect/-/p-reflect-3.1.0.tgz#bba22747439b5fc50a7f626e8e909dc9b888218d" - integrity sha512-3sG3UlpisPSaX+o7u2q01hIQmrpkvdl5GSO1ZwL7pfc5kHB2bPF0eFNCfYTrW1/LTUdgmPwBAvmT0Zr8eSmaAQ== - p-retry@^4.5.0: version "4.6.2" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" @@ -19716,14 +16498,6 @@ p-retry@^4.5.0: "@types/retry" "0.12.0" retry "^0.13.1" -p-retry@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-5.1.2.tgz#c16eaee4f2016f9161d12da40d3b8b0f2e3c1b76" - integrity sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g== - dependencies: - "@types/retry" "0.12.1" - retry "^0.13.1" - p-settle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/p-settle/-/p-settle-4.1.1.tgz#37fbceb2b02c9efc28658fc8d36949922266035f" @@ -19732,14 +16506,6 @@ p-settle@^4.1.1: p-limit "^2.2.2" p-reflect "^2.1.0" -p-settle@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/p-settle/-/p-settle-5.1.0.tgz#6abf85e073d6b137b48ed70f8a8d94660454bd17" - integrity sha512-ujR6UFfh09ziOKyC5aaJak5ZclsjlLw57SYtFZg6yllMofyygnaibQRZ4jf6QPWqoOCGUXyb1cxUKELeAyKO7g== - dependencies: - p-limit "^4.0.0" - p-reflect "^3.1.0" - p-timeout@^3.1.0, p-timeout@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -19752,21 +16518,6 @@ p-timeout@^4.1.0: resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-4.1.0.tgz#788253c0452ab0ffecf18a62dff94ff1bd09ca0a" integrity sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw== -p-timeout@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b" - integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew== - -p-timeout@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.1.tgz#bcee5e37d730f5474d973b6ff226751a1a5e6ff1" - integrity sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w== - -p-try-each@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/p-try-each/-/p-try-each-1.0.1.tgz#24b4b830a134cb71a934d03b76e702bed439c3c1" - integrity sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A== - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -19782,17 +16533,7 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" -package-json@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.0.tgz#2a22806f1ed7c786c8e6ff26cfe20003bf4c6850" - integrity sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg== - dependencies: - got "^12.1.0" - registry-auth-token "^5.0.1" - registry-url "^6.0.0" - semver "^7.3.7" - -pako@2.1.0, pako@^2.0.4: +pako@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== @@ -19835,11 +16576,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-duration@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.0.3.tgz#b6681f5edcc2689643b34c09ea63f86f58a35814" - integrity sha512-o6NAh12na5VvR6nFejkU0gpQ8jmOY9Y9sTU2ke3L3G/d/3z8jqmbBbeyBGHU73P4JLXfc7tJARygIK3WGIkloA== - parse-entities@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" @@ -19939,55 +16675,20 @@ pascal-case@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -patch-package@^6.5.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.5.1.tgz#3e5d00c16997e6160291fee06a521c42ac99b621" - integrity sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^4.1.2" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^2.0.0" - fs-extra "^9.0.0" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.6" - open "^7.4.2" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - yaml "^1.10.2" + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-browserify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== -path-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" - integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -path-exists@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== - dependencies: - pinkie-promise "^2.0.0" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -20013,11 +16714,6 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -20068,11 +16764,6 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -peek-readable@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0.tgz#7ead2aff25dc40458c60347ea76cfdfd63efdfec" - integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A== - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -20083,7 +16774,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -periscopic@^3.0.0: +periscopic@^3.0.0, periscopic@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== @@ -20132,54 +16823,6 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - -pino-pretty@^4.0.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-4.8.0.tgz#f2f3055bf222456217b14ffb04d8be0a0cc17fce" - integrity sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw== - dependencies: - "@hapi/bourne" "^2.0.0" - args "^5.0.1" - chalk "^4.0.0" - dateformat "^4.5.1" - fast-safe-stringify "^2.0.7" - jmespath "^0.15.0" - joycon "^2.2.5" - pump "^3.0.0" - readable-stream "^3.6.0" - rfdc "^1.3.0" - split2 "^3.1.1" - strip-json-comments "^3.1.1" - -pino-std-serializers@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" - integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== - -pino@^6.0.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-6.14.0.tgz#b745ea87a99a6c4c9b374e4f29ca7910d4c69f78" - integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== - dependencies: - fast-redact "^3.0.0" - fast-safe-stringify "^2.0.8" - flatstr "^1.0.12" - pino-std-serializers "^3.1.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - sonic-boom "^1.0.2" - pirates@^4.0.1, pirates@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" @@ -20199,20 +16842,6 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" -pkg-fetch@3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.4.2.tgz#6f68ebc54842b73f8c0808959a9df3739dcb28b7" - integrity sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA== - dependencies: - chalk "^4.1.2" - fs-extra "^9.1.0" - https-proxy-agent "^5.0.0" - node-fetch "^2.6.6" - progress "^2.0.3" - semver "^7.3.5" - tar-fs "^2.1.1" - yargs "^16.2.0" - pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -20220,31 +16849,6 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -pkg@^5.8.0: - version "5.8.1" - resolved "https://registry.yarnpkg.com/pkg/-/pkg-5.8.1.tgz#862020f3c0575638ef7d1146f951a54d65ddc984" - integrity sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA== - dependencies: - "@babel/generator" "7.18.2" - "@babel/parser" "7.18.4" - "@babel/types" "7.19.0" - chalk "^4.1.2" - fs-extra "^9.1.0" - globby "^11.1.0" - into-stream "^6.0.0" - is-core-module "2.9.0" - minimist "^1.2.6" - multistream "^4.1.0" - pkg-fetch "3.4.2" - prebuild-install "7.1.1" - resolve "^1.22.0" - stream-meter "^1.0.4" - -platform@^1.3.3: - version "1.3.6" - resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" - integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -20471,10 +17075,10 @@ postcss-image-set-function@^4.0.7: dependencies: postcss-value-parser "^4.2.0" -postcss-import@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" - integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== dependencies: postcss-value-parser "^4.0.0" read-cache "^1.0.0" @@ -20485,7 +17089,7 @@ postcss-initial@^4.0.1: resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== -postcss-js@^4.0.0: +postcss-js@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== @@ -20508,7 +17112,7 @@ postcss-load-config@^2.1.0: cosmiconfig "^5.0.0" import-cwd "^2.0.0" -postcss-load-config@^3.0.0, postcss-load-config@^3.1.4: +postcss-load-config@^3.0.0: version "3.1.4" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== @@ -20516,6 +17120,14 @@ postcss-load-config@^3.0.0, postcss-load-config@^3.1.4: lilconfig "^2.0.5" yaml "^1.10.2" +postcss-load-config@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" + integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + dependencies: + lilconfig "^2.0.5" + yaml "^2.1.1" + postcss-loader@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" @@ -20667,10 +17279,10 @@ postcss-modules-local-by-default@1.2.0: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== +postcss-modules-local-by-default@^4.0.0, postcss-modules-local-by-default@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== dependencies: icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" @@ -20731,12 +17343,12 @@ postcss-modules@^4.0.0: postcss-modules-values "^4.0.0" string-hash "^1.1.1" -postcss-nested@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" - integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== dependencies: - postcss-selector-parser "^6.0.10" + postcss-selector-parser "^6.0.11" postcss-nesting@^10.2.0: version "10.2.0" @@ -21059,9 +17671,9 @@ postcss-selector-parser@^3.0.0: uniq "^1.0.1" postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: - version "6.0.11" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -21144,12 +17756,12 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.0.9, postcss@^8.2.1, postcss@^8.3.5, postcss@^8.4.19, postcss@^8.4.21, postcss@^8.4.4: - version "8.4.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" - integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== +postcss@^8.2.1, postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4: + version "8.4.24" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" + integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== dependencies: - nanoid "^3.3.4" + nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -21183,27 +17795,9 @@ preact-transition-group@^1.1.1: integrity sha512-v89XLodCvylf5lMrhI+LqIhDsAjWfiDKV4keAU+L5yDtxmqn8uvjZXn+haKMEG0x0PZz81own19SuNJD5NlOFQ== preact@^10.11.3: - version "10.13.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.13.1.tgz#d220bd8771b8fa197680d4917f3cefc5eed88720" - integrity sha512-KyoXVDU5OqTpG9LXlB3+y639JAGzl8JSBXLn1J9HTSB3gbKcuInga7bZnXLlxmK94ntTs1EFeZp0lrja2AuBYQ== - -prebuild-install@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" - integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== - dependencies: - detect-libc "^2.0.0" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^3.3.0" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^4.0.0" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" + version "10.15.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.15.1.tgz#a1de60c9fc0c79a522d969c65dcaddc5d994eede" + integrity sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g== preferred-pm@^3.0.0: version "3.0.3" @@ -21231,25 +17825,15 @@ prepend-http@^2.0.0: integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== prettier@^2.7.1, prettier@latest: - version "2.8.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" - integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== - -pretty-bytes@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" - integrity sha512-yJAF+AjbHKlxQ8eezMd/34Mnj/YTQ3i6kLzvVsH4l/BfIFtp444n0wVbnsn66JimZ9uBofv815aRp1zCppxlWw== + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-bytes@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.0.tgz#1d1cc9aae1939012c74180b679da6684616bf804" - integrity sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ== - pretty-error@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" @@ -21301,61 +17885,21 @@ pretty-format@^3.5.1: resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385" integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew== -private-ip@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-2.3.4.tgz#e2944f2a7a0142ec6640efda323af4b96307524e" - integrity sha512-ts/YFVwfBeLq61f9+KsOhXW6RH0wvY0gU50R6QZYzgFhggyyLK6WDFeYdjfi/HMnBm2hecLvsR3PB3JcRxDk+A== - dependencies: - ip-regex "^4.3.0" - ipaddr.js "^2.0.1" - is-ip "^3.1.0" - netmask "^2.0.2" - -private-ip@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-3.0.0.tgz#a65d10e2db06f6bb2f97f716f1a8976a3460a4a6" - integrity sha512-HkMBs4nMtrP+cvcw0bDi2BAZIGgiKI4Zq8Oc+dMqNBpHS8iGL4+WO/pRtc8Bwnv9rjnV0QwMDwEBymFtqv7Kww== - dependencies: - "@chainsafe/is-ip" "^2.0.1" - ip-regex "^5.0.0" - ipaddr.js "^2.0.1" - netmask "^2.0.2" - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - -process@^0.11.10, process@~0.11.0: +process@~0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -progress-stream@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" - integrity sha512-MIBPjZz6oGNSw5rn2mSp+nP9FGoaVo6QsPyPVEaD4puilz5hZNa3kfnrlqRNYFsugslbU3An4mnkLLtZOaWvrA== - dependencies: - speedometer "~0.1.2" - through2 "~0.2.3" - progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -prom-client@^14.0.1: - version "14.2.0" - resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.2.0.tgz#ca94504e64156f6506574c25fb1c34df7812cf11" - integrity sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA== - dependencies: - tdigest "^0.1.1" - promise.series@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" @@ -21385,15 +17929,6 @@ prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" -proper-lockfile@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" - integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== - dependencies: - graceful-fs "^4.2.4" - retry "^0.12.0" - signal-exit "^3.0.2" - property-information@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d" @@ -21404,64 +17939,11 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== -protobufjs@^6.11.2: - version "6.11.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" - integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -protobufjs@^7.0.0: - version "7.2.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.2.tgz#2af401d8c547b9476fb37ffc65782cf302342ca3" - integrity sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/node" ">=13.7.0" - long "^5.0.0" - protocols@^2.0.0, protocols@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== -protons-runtime@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-4.0.2.tgz#a5670e703a5389dccb3700b583532e3316efcb94" - integrity sha512-R4N6qKHgz8T2Gl45CTcZfITzXPQY9ym8lbLb4VyFMS4ag1KusCRZwkQXTBRhxQ+93ck3K3aDhK1wIk98AMtNyw== - dependencies: - protobufjs "^7.0.0" - uint8arraylist "^2.4.3" - -protons-runtime@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-5.0.0.tgz#1eb3c78637ff02cc90bb030e3bff6f0402109c25" - integrity sha512-QqjGnPGkpvbzq0dITzhG9DVK10rRIHf7nePcU2QQVVpFGuYbwrOWnvGSvei1GcceAzB9syTz6vHzvTPmGRR0PA== - dependencies: - protobufjs "^7.0.0" - uint8arraylist "^2.4.3" - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -21500,12 +17982,7 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - -punycode@^1.3.2: +punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== @@ -21522,13 +17999,6 @@ pupa@^2.1.1: dependencies: escape-goat "^2.0.0" -pupa@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" - integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== - dependencies: - escape-goat "^4.0.0" - pvtsutils@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" @@ -21559,9 +18029,9 @@ qs@6.11.0: side-channel "^1.0.4" qs@^6.11.0, qs@^6.4.0: - version "6.11.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" - integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== dependencies: side-channel "^1.0.4" @@ -21575,41 +18045,21 @@ querystring-es3@~0.2.0: resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -queue-microtask@^1.2.2, queue-microtask@^1.2.3: +queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-format-unescaped@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" - integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -quick-lru@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-6.1.1.tgz#f8e5bf9010376c126c80c1a62827a526c0e60adf" - integrity sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q== - quickly-copy-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz#9f8ff066230510ee7422b0121472b093a8690859" @@ -21617,18 +18067,6 @@ quickly-copy-file@^1.0.0: dependencies: mkdirp "~0.5.0" -rabin-wasm@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.1.5.tgz#5b625ca007d6a2cbc1456c78ae71d550addbc9c9" - integrity sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA== - dependencies: - "@assemblyscript/loader" "^0.9.4" - bl "^5.0.0" - debug "^4.3.1" - minimist "^1.2.5" - node-fetch "^2.6.1" - readable-stream "^3.6.0" - raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" @@ -21656,11 +18094,6 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rate-limiter-flexible@^2.3.11, rate-limiter-flexible@^2.3.9: - version "2.4.1" - resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-2.4.1.tgz#c74cfe36ac2cbfe56f68ded9a3b4b2fde1963c41" - integrity sha512-dgH4T44TzKVO9CLArNto62hJOwlWJMLUjVVr/ii0uUzZXEXthDNr7/yefW5z/1vvHAfycc1tnuiYyNJ8CTRB3g== - raw-body@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" @@ -21689,7 +18122,7 @@ raw-body@~1.1.0: bytes "1" string_decoder "0.10" -rc@1.2.8, rc@^1.1.2, rc@^1.2.7, rc@^1.2.8: +rc@1.2.8, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -21781,13 +18214,6 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-native-fetch-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz#81e1bb6562c292521bc4eca52fe1097f4c1ebab5" - integrity sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA== - dependencies: - p-defer "^3.0.0" - react-qr-code@^2.0.7: version "2.0.11" resolved "https://registry.yarnpkg.com/react-qr-code/-/react-qr-code-2.0.11.tgz#444c759a2100424972e17135fbe0e32eaffa19e8" @@ -21807,19 +18233,19 @@ react-refresh@^0.11.0: integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== react-router-dom@^6.3.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.9.0.tgz#dd8b4e461453bd4cad2e6404493d1a5b4bfea758" - integrity sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q== + version "6.12.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.12.0.tgz#372279caaaa1ffb0204926c83e93a139b112d861" + integrity sha512-UzLwZ3ZVaDr6YV0HdjwxuwtDKgwpJx9o1ea9fU0HV4tTvzdB8WPHzlLFMo5orchpIS84e8G4Erlhu7Rl84XDFQ== dependencies: - "@remix-run/router" "1.4.0" - react-router "6.9.0" + "@remix-run/router" "1.6.3" + react-router "6.12.0" -react-router@6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.9.0.tgz#0f503d9becbc62d9e4ddc0f9bd4026e0fd29fbf5" - integrity sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw== +react-router@6.12.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.12.0.tgz#1afae9219c24c8611809469d7a386c8023ade39a" + integrity sha512-/tCGtLq9umxRvbYeIx3j94CmpQfue0E3qnetVm9luKhu58cR4t+3O4ZrQXBdXfJrBATOAj+wF/1ihJJQI8AoTw== dependencies: - "@remix-run/router" "1.4.0" + "@remix-run/router" "1.6.3" react-scripts@^5.0.1: version "5.0.1" @@ -21898,20 +18324,6 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -read-installed@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" - integrity sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ== - dependencies: - debuglog "^1.0.1" - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - semver "2 || 3 || 4 || 5" - slide "~1.1.3" - util-extend "^1.0.1" - optionalDependencies: - graceful-fs "^4.1.2" - read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" @@ -21919,16 +18331,6 @@ read-only-stream@^2.0.0: dependencies: readable-stream "^2.0.2" -read-package-json@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" - integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== - dependencies: - glob "^7.1.1" - json-parse-even-better-errors "^2.3.0" - normalize-package-data "^2.0.0" - npm-normalize-package-bin "^1.0.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -21967,7 +18369,7 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@~2.3.6: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -21980,7 +18382,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -21989,43 +18391,6 @@ readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.3.0.tgz#0914d0c72db03b316c9733bb3461d64a3cc50cba" - integrity sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-web-to-node-stream@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" - integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== - dependencies: - readable-stream "^3.6.0" - -readdir-scoped-modules@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -22038,18 +18403,11 @@ reading-time@^1.3.0: resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== -readline-sync@^1.4.10: +readline-sync@1.4.10: version "1.4.10" resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== -receptacle@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" - integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== - dependencies: - ms "^2.1.1" - recursive-readdir@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" @@ -22118,13 +18476,13 @@ regex-parser@^2.2.11: integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" regexpu-core@^5.3.1: version "5.3.2" @@ -22145,13 +18503,6 @@ registry-auth-token@^4.0.0: dependencies: rc "1.2.8" -registry-auth-token@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" - integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== - dependencies: - "@pnpm/npm-conf" "^2.1.0" - registry-url@^5.0.0, registry-url@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" @@ -22159,13 +18510,6 @@ registry-url@^5.0.0, registry-url@^5.1.0: dependencies: rc "^1.2.8" -registry-url@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" - integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== - dependencies: - rc "1.2.8" - regjsparser@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" @@ -22317,7 +18661,7 @@ repeat-string@^1.0.0, repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== -request@^2.45.0, request@^2.88.0: +request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -22368,11 +18712,6 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -22416,12 +18755,17 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.1, resolve@^1.14.2, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.4.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.1, resolve@^1.14.2, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.4.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.11.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -22453,13 +18797,6 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" -responselike@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" - integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== - dependencies: - lowercase-keys "^3.0.0" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -22481,21 +18818,11 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retimer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/retimer/-/retimer-3.0.0.tgz#98b751b1feaf1af13eb0228f8ea68b8f9da530df" - integrity sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA== - retry@0.13.1, retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -22506,11 +18833,6 @@ rfc4648@1.4.0: resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.4.0.tgz#c75b2856ad2e2d588b6ddb985d556f1f7f2a2abd" integrity sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg== -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -22521,7 +18843,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@2, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -22622,6 +18944,14 @@ rollup-plugin-svelte@^6.0.0: rollup-pluginutils "^2.8.2" sourcemap-codec "^1.4.8" +rollup-plugin-svelte@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.6.tgz#44a4ea6c6e8ed976824d9fd40c78d048515e5838" + integrity sha512-nVFRBpGWI2qUY1OcSiEEA/kjCY2+vAjO9BI8SzA7NRrh2GTunLd6w2EYmnMt/atgdg8GvcNjLsmZmbQs/u4SQA== + dependencies: + "@rollup/pluginutils" "^4.1.0" + resolve.exports "^2.0.0" + rollup-plugin-terser@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" @@ -22646,10 +18976,17 @@ rollup@^2.3.4, rollup@^2.43.1, rollup@^2.56.3: optionalDependencies: fsevents "~2.3.2" -rollup@^3.10.0: - version "3.19.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.19.1.tgz#2b3a31ac1ff9f3afab2e523fa687fef5b0ee20fc" - integrity sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg== +rollup@^3.21.0: + version "3.24.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.24.0.tgz#865dee1fe0bb528747b59914dfab25e6f480e370" + integrity sha512-OgraHOIg2YpHQTjl0/ymWfFNBEyPucB7lmhXrQUh38qNOegxLapSPFs9sNr0qKR75awW41D93XafoR2QfhBdUQ== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^3.28.1: + version "3.28.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" + integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== optionalDependencies: fsevents "~2.3.2" @@ -22668,13 +19005,6 @@ run-async@^2.2.0, run-async@^2.4.0: resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== -run-parallel-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" - integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== - dependencies: - queue-microtask "^1.2.2" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -22718,6 +19048,16 @@ sade@^1.7.3, sade@^1.7.4: dependencies: mri "^1.1.0" +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -22784,13 +19124,6 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sanitize-filename@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - sanitize.css@*: version "13.0.0" resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173" @@ -22805,15 +19138,15 @@ sass-loader@^12.3.0: neo-async "^2.6.2" sass@*: - version "1.59.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.59.3.tgz#a1ddf855d75c70c26b4555df4403e1bbf8e4403f" - integrity sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ== + version "1.63.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.2.tgz#75f7d9a8e67d1d5b98a989507f4d98b6067b1f75" + integrity sha512-u56TU0AIFqMtauKl/OJ1AeFsXqRHkgO7nCWmHaDwfxDo9GUMSqBA4NEh6GMuh1CYVM7zuROYtZrHzPc2ixK+ww== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -22850,24 +19183,24 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.2.0.tgz#7dff4881064a4f22c09f0c6a1457feb820fd0636" + integrity sha512-0zTyLGyDJYd/MBxG1AhJkKa6fpEBds4OQO2ut0w7OYG+ZGhGea09lijvzsqegYSik88zc7cUtIlnnO+/BvD6gQ== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" schema-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" - integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + version "4.1.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.1.0.tgz#4cff1e434c12ed39502378b9a3e24787b37df41d" + integrity sha512-Jw+GZVbP5IggB2WAn6UHI02LBwGmsIeYN/lNbSMZyDziQ7jmtAUrqKqDja+W89YHVs+KL/3IkIMltAklqB1vAw== dependencies: "@types/json-schema" "^7.0.9" - ajv "^8.8.0" + ajv "^8.9.0" ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" + ajv-keywords "^5.1.0" scoped-regex@^2.0.0: version "2.1.0" @@ -22922,22 +19255,15 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -semver-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" - integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== - dependencies: - semver "^7.3.5" - "semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== dependencies: lru-cache "^6.0.0" @@ -22946,6 +19272,11 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -22984,15 +19315,6 @@ send@^0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -sentence-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" - integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - serialize-error@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" @@ -23049,11 +19371,6 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-delayed-interval@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz#1f7c065780a365f10250f8a80e2be10175ea0388" - integrity sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw== - set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" @@ -23095,13 +19412,6 @@ sha256@^0.2.0: convert-hex "~0.1.0" convert-string "~0.1.0" -sha3@^2.1.3: - version "2.1.4" - resolved "https://registry.yarnpkg.com/sha3/-/sha3-2.1.4.tgz#000fac0fe7c2feac1f48a25e7a31b52a6492cc8f" - integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg== - dependencies: - buffer "6.0.3" - shasum-object@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" @@ -23134,26 +19444,16 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.6.1, shell-quote@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" - integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -shiki@^0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.1.tgz#9fbe082d0a8aa2ad63df4fbf2ee11ec924aa7ee1" - integrity sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw== - dependencies: - ansi-sequence-parser "^1.1.0" - jsonc-parser "^3.2.0" - vscode-oniguruma "^1.7.0" - vscode-textmate "^8.0.0" + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== -shiki@^0.14.2: +shiki@^0.14.1, shiki@^0.14.2: version "0.14.2" resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.2.tgz#d51440800b701392b31ce2336036058e338247a1" integrity sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A== @@ -23172,7 +19472,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -23182,15 +19482,6 @@ simple-concat@^1.0.0: resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -simple-get@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" - integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== - dependencies: - decompress-response "^6.0.0" - once "^1.3.1" - simple-concat "^1.0.0" - simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -23198,21 +19489,14 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -single-line-log@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" - integrity sha512-awzaaIPtYFdexLr6TBpcZSGPB6D1RInNO/qNetgaJloPDF/D0GkVtLvGEp8InfmLV7CyLyQ5fIRP+tVN/JmWQA== - dependencies: - string-width "^1.0.1" - sinon@*: - version "15.0.2" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.0.2.tgz#f3e3aacb990bbaa8a7bb976e86118c5dc0154e66" - integrity sha512-PCVP63XZkg0/LOqQH5rEU4LILuvTFMb5tNxTHfs6VUMNnZz2XrnGSTZbAGITjzwQWbl/Bl/8hi4G3zZWjyBwHg== + version "15.1.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.1.0.tgz#87656841545f7c63bd1e291df409fafd0e9aec09" + integrity sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ== dependencies: "@sinonjs/commons" "^3.0.0" - "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/samsam" "^7.0.1" + "@sinonjs/fake-timers" "^10.2.0" + "@sinonjs/samsam" "^8.0.0" diff "^5.1.0" nise "^5.1.4" supports-color "^7.2.0" @@ -23222,11 +19506,6 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -23247,11 +19526,6 @@ slick@^1.12.2: resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" integrity sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A== -slide@~1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== - smartwrap@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-2.0.2.tgz#7e25d3dd58b51c6ca4aba3a9e391650ea62698a4" @@ -23264,14 +19538,6 @@ smartwrap@^2.0.2: wcwidth "^1.0.1" yargs "^15.1.0" -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -23302,24 +19568,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socket.io-client@^4.1.2: - version "4.6.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.6.1.tgz#80d97d5eb0feca448a0fb6d69a7b222d3d547eab" - integrity sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.2" - engine.io-client "~6.4.0" - socket.io-parser "~4.2.1" - -socket.io-parser@~4.2.1: - version "4.2.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" - integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" @@ -23329,14 +19577,6 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -sonic-boom@^1.0.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" - integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== - dependencies: - atomic-sleep "^1.0.0" - flatstr "^1.0.12" - sorcery@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" @@ -23429,11 +19669,6 @@ space-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== -sparse-array@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/sparse-array/-/sparse-array-1.3.2.tgz#0e1a8b71706d356bc916fe754ff496d450ec20b0" - integrity sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg== - spawndamnit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-2.0.0.tgz#9f762ac5c3476abb994b42ad592b5ad22bb4b0ad" @@ -23491,11 +19726,6 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -speedometer@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" - integrity sha512-phdEoDlA6EUIVtzwq1UiNMXDUogczp204aYF/yfOhjNePWFfIpBJ1k5wLMuXQhEOOMjuTJEcc4vdZa+vuP+n/Q== - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -23503,28 +19733,14 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split2@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" - integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== - dependencies: - through2 "^2.0.2" - -split2@^3.1.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - -split@^1.0.0, split@^1.0.1: +split@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== dependencies: through "2" -sprintf-js@1.1.2, sprintf-js@^1.1.2: +sprintf-js@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== @@ -23589,20 +19805,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -steno@^0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" - integrity sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w== - dependencies: - graceful-fs "^4.1.3" - -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - stream-browserify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -23629,13 +19831,6 @@ stream-http@^3.0.0: readable-stream "^3.6.0" xtend "^4.0.2" -stream-meter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz#52af95aa5ea760a2491716704dbff90f73afdd1d" - integrity sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ== - dependencies: - readable-stream "^2.1.4" - stream-splicer@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" @@ -23644,13 +19839,6 @@ stream-splicer@^2.0.0: inherits "^2.0.1" readable-stream "^2.0.2" -stream-to-it@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" - integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== - dependencies: - get-iterator "^1.0.2" - stream-transform@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.1.3.tgz#a1c3ecd72ddbf500aa8d342b0b9df38f5aa598e3" @@ -23720,15 +19908,6 @@ string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -23779,7 +19958,7 @@ string.prototype.trimstart@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -string_decoder@0.10, string_decoder@~0.10.x: +string_decoder@0.10: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== @@ -23844,9 +20023,9 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" @@ -23880,11 +20059,6 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -23902,23 +20076,15 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -strtok3@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0.tgz#868c428b4ade64a8fd8fee7364256001c1a4cbe5" - integrity sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ== - dependencies: - "@tokenizer/token" "^0.3.0" - peek-readable "^5.0.0" - style-inject@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== style-loader@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.2.tgz#eaebca714d9e462c19aa1e3599057bc363924899" - integrity sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw== + version "3.3.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" + integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== style-to-object@^0.4.1: version "0.4.1" @@ -23974,13 +20140,18 @@ subscriptions-transport-ws@^0.11.0: symbol-observable "^1.0.4" ws "^5.2.0 || ^6.0.0 || ^7.0.0" -sumchecker@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d" - integrity sha512-ZfWTnMBdeHaXR7ncH96vRUI07B+wLuXxGPGUMR+EM4QJRJoD535ALIdpc+vHB8eA+1DXJztu3CgHZ1zEhbDF4A== +sucrase@^3.32.0: + version "3.32.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.32.0.tgz#c4a95e0f1e18b6847127258a75cf360bc568d4a7" + integrity sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ== dependencies: - debug "^2.2.0" - es6-promise "^4.0.5" + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" sumchecker@^3.0.1: version "3.0.1" @@ -23989,15 +20160,6 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" -super-regex@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/super-regex/-/super-regex-0.2.0.tgz#dc1e071e55cdcf56930eb6271f73653a655b2642" - integrity sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw== - dependencies: - clone-regexp "^3.0.0" - function-timeout "^0.1.0" - time-span "^5.1.0" - supports-color@8.1.1, supports-color@^8.0.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" @@ -24079,9 +20241,28 @@ svelte-preprocess@^4.0.0: strip-indent "^3.0.0" svelte@^3.0.0: - version "3.57.0" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.57.0.tgz#a3969cfe51f25f2a55e75f7b98dbd02c3af0980b" - integrity sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ== + version "3.59.1" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.59.1.tgz#3de3d56b9165748f32f3131589b8d183cabe7449" + integrity sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ== + +svelte@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.0.tgz#0e4304c15524450b22fba02516eb72efbd8847b6" + integrity sha512-kVsdPjDbLrv74SmLSUzAsBGquMs4MPgWGkGLpH+PjOYnFOziAvENVzgJmyOCV2gntxE32aNm8/sqNKD6LbIpeQ== + dependencies: + "@ampproject/remapping" "^2.2.1" + "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/trace-mapping" "^0.3.18" + acorn "^8.9.0" + aria-query "^5.3.0" + axobject-query "^3.2.1" + code-red "^1.0.3" + css-tree "^2.3.1" + estree-walker "^3.0.3" + is-reference "^3.0.1" + locate-character "^3.0.0" + magic-string "^0.30.0" + periscopic "^3.1.0" svg-parser@^2.0.2: version "2.0.4" @@ -24120,13 +20301,6 @@ svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -"swipl-stdio@https://github.com/perspect3vism/node-swipl-stdio.git": - version "1.0.4" - resolved "https://github.com/perspect3vism/node-swipl-stdio.git#d0d844a7f87ab5ef62b4041ea969d078b95b2d96" - dependencies: - debug "^2.6.4" - split "^1.0.0" - symbol-observable@^1.0.2, symbol-observable@^1.0.4, symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -24166,33 +20340,33 @@ table-layout@^0.4.2: wordwrapjs "^3.0.0" tailwindcss@^3.0.2: - version "3.2.7" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.7.tgz#5936dd08c250b05180f0944500c01dce19188c07" - integrity sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ== + version "3.3.2" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.2.tgz#2f9e35d715fdf0bbf674d90147a0684d7054a2d3" + integrity sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w== dependencies: + "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" chokidar "^3.5.3" - color-name "^1.1.4" - detective "^5.2.1" didyoumean "^1.2.2" dlv "^1.1.3" fast-glob "^3.2.12" glob-parent "^6.0.2" is-glob "^4.0.3" - lilconfig "^2.0.6" + jiti "^1.18.2" + lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" object-hash "^3.0.0" picocolors "^1.0.0" - postcss "^8.0.9" - postcss-import "^14.1.0" - postcss-js "^4.0.0" - postcss-load-config "^3.1.4" - postcss-nested "6.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" postcss-selector-parser "^6.0.11" postcss-value-parser "^4.2.0" - quick-lru "^5.1.1" - resolve "^1.22.1" + resolve "^1.22.2" + sucrase "^3.32.0" tapable@^1.0.0: version "1.1.3" @@ -24204,28 +20378,7 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@^2.0.0, tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar@^4, tar@^4.4.2: +tar@^4.4.2: version "4.4.19" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== @@ -24238,25 +20391,6 @@ tar@^4, tar@^4.4.2: safe-buffer "^5.2.1" yallist "^3.1.1" -tar@^6.1.11: - version "6.1.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" - integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^4.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tdigest@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" - integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA== - dependencies: - bintrees "1.0.2" - temp-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" @@ -24285,24 +20419,24 @@ terminal-link@^2.0.0, terminal-link@^2.1.1: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5: - version "5.3.7" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz#ef760632d24991760f339fe9290deb936ad1ffc7" - integrity sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw== +terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== dependencies: "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.5" + terser "^5.16.8" -terser@^5.0.0, terser@^5.10.0, terser@^5.16.5: - version "5.16.6" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.6.tgz#f6c7a14a378ee0630fbe3ac8d1f41b4681109533" - integrity sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg== +terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: + version "5.17.7" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.7.tgz#2a8b134826fe179b711969fd9d9a0c2479b2a8c3" + integrity sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -24328,6 +20462,20 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + throat@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" @@ -24338,12 +20486,7 @@ throat@^6.0.1: resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== -throttleit@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" - integrity sha512-HtlTFeyYs1elDM2txiIGsdXHaq8kffVaZH/QEBRbo95zQqzlsBx5ELKhkPOZVad9OK9oxzwx6UrQN8Vfh/+yag== - -through2@^2.0.0, through2@^2.0.2, through2@^2.0.3, through2@^2.0.5: +through2@^2.0.0, through2@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -24351,14 +20494,6 @@ through2@^2.0.0, through2@^2.0.2, through2@^2.0.3, through2@^2.0.5: readable-stream "~2.3.6" xtend "~4.0.1" -through2@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" - integrity sha512-mLa8Bn2mZurjyomGKWRu3Bo2mvoQojFks9NvOK8H+k4kDJNkdEqG522KFZsEFBEl6rKkxTgFbE5+OPcgfvPEHA== - dependencies: - readable-stream "~1.1.9" - xtend "~2.1.1" - through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -24369,20 +20504,6 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -time-span@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/time-span/-/time-span-5.1.0.tgz#80c76cf5a0ca28e0842d3f10a4e99034ce94b90d" - integrity sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA== - dependencies: - convert-hrtime "^5.0.0" - -timeout-abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz#dd57ffca041652c03769904f8d95afd93fb95595" - integrity sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA== - dependencies: - retimer "^3.0.0" - timers-browserify@^1.0.1: version "1.4.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" @@ -24390,11 +20511,6 @@ timers-browserify@^1.0.1: dependencies: process "~0.11.0" -timestamp-nano@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/timestamp-nano/-/timestamp-nano-1.0.1.tgz#be6eb118719504fcc3c7c732d2c461d3dd87da63" - integrity sha512-4oGOVZWTu5sl89PtCDnhQBSt7/vL1zVEwAfxH1p49JhTosxzVQWYBYFRFZ8nJmo0G6f824iyP/44BFAwIoKvIA== - timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" @@ -24510,23 +20626,15 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -token-types@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/token-types/-/token-types-5.0.1.tgz#aa9d9e6b23c420a675e55413b180635b86a093b4" - integrity sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg== - dependencies: - "@tokenizer/token" "^0.3.0" - ieee754 "^1.2.1" - toml@^2.3.0: version "2.3.6" resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== tough-cookie@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: psl "^1.1.33" punycode "^2.1.1" @@ -24600,13 +20708,6 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== - dependencies: - utf8-byte-length "^1.0.1" - try-resolve@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/try-resolve/-/try-resolve-1.0.1.tgz#cfde6fabd72d63e5797cfaab873abbe8e700e912" @@ -24622,6 +20723,11 @@ ts-dedent@^2.2.0: resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + ts-invariant@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" @@ -24716,10 +20822,10 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== tsutils@^3.21.0: version "3.21.0" @@ -24734,17 +20840,17 @@ tty-browserify@0.0.1: integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== tty-table@^4.1.5: - version "4.1.6" - resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.1.6.tgz#6bd58338f36c94cce478c3337934d8a65ab40a73" - integrity sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw== + version "4.2.1" + resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.2.1.tgz#c06cd76c54542acf4e2b4a0e9a5802984b65cba6" + integrity sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g== dependencies: chalk "^4.1.2" - csv "^5.5.0" - kleur "^4.1.4" + csv "^5.5.3" + kleur "^4.1.5" smartwrap "^2.0.2" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wcwidth "^1.0.1" - yargs "^17.1.1" + yargs "^17.7.1" tunnel-agent@^0.6.0: version "0.6.0" @@ -24758,47 +20864,47 @@ tunnel@0.0.6, tunnel@^0.0.6: resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== -turbo-darwin-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.8.3.tgz#f220459e7636056d9a67bc9ead8dc01c495f9d55" - integrity sha512-bLM084Wr17VAAY/EvCWj7+OwYHvI9s/NdsvlqGp8iT5HEYVimcornCHespgJS/yvZDfC+mX9EQkn3V2JmYgGGw== +turbo-darwin-64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.10.2.tgz#10a92e78b98e83a37de804f9ed598c3c9b73b884" + integrity sha512-sVLpVVANByfMgqf7OYPcZM4KiDnjGu7ITvAzBSa9Iwe14yoWLn8utrNsWCRaQEB6kEqBGLPmvL7AKwkl8M2Gqg== -turbo-darwin-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.8.3.tgz#1529f0755cd683e372140d6b9532efe4ca523b38" - integrity sha512-4oZjXtzakopMK110kue3z/hqu3WLv+eDLZOX1NGdo49gqca9BeD8GbH+sXpAp6tqyeuzpss+PIliVYuyt7LgbA== +turbo-darwin-arm64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.10.2.tgz#e052da2257906724feadb5a0e26a847aed1289bb" + integrity sha512-TKG91DSoYQjsCft4XBx4lYycVT5n3UQB/nOKgv/WJCSfwshLWulya3yhP8JT5erv9rPF8gwgnx87lrCmT4EAVA== -turbo-linux-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.8.3.tgz#1aed7f4bb4492cb4c9d8278044a66d3c6107ee5b" - integrity sha512-uvX2VKotf5PU14FCxJA5iHItPQno2JWzerMd+g3/h/Asay6dvxvtVjc39MQeGT0H5njSvzVKFkT+3/5q8lgOEg== +turbo-linux-64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.10.2.tgz#0a038f26da2693cfd2af1b842e29a13128224055" + integrity sha512-ZIzAkfrzjJFkSM/uEfxU6JjseCsT5PHRu0s0lmYce37ApQbv/HC7tI0cFhuosI30+O8109/mkyZykKE7AQfgqA== -turbo-linux-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.8.3.tgz#0269b31b2947c40833052325361a94193ca46150" - integrity sha512-E1p+oH3XKMaPS4rqWhYsL4j2Pzc0d/9P5KU7Kn1kqVLo2T3iRA7n2KVULEieUNE0nTH+aIJPXYXOpqCI5wFJaA== +turbo-linux-arm64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.10.2.tgz#2ff7272ec6426f91f56e71998e80eb805c20d963" + integrity sha512-G4uZA+RBQ5S1X/oUxO5KoLL2NDMkrrBZF52+00jQv6UEb9lWDgwzqSwoAGjdXxeDCrqMW5rBVwb/IBIF2/yhwA== -turbo-windows-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.8.3.tgz#cf94f427414eb8416c1fe22229f9a578dd1ec78b" - integrity sha512-cnzAytHtoLXd0J7aNzRpZFpL/GTjcBmkvAPlbOdf/Pl1iwS4qzGrudZQ+OM1lmLgLIfBPIavsGHBknTwTNib4A== +turbo-windows-64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.10.2.tgz#2b05074f932bc6b032038624ebb7fd1b1e2f43ce" + integrity sha512-ObfQO37kGu1jBzFs/L+hybrCXBwdnimotJwzg7pCoSyGijKITlugrpJoPDKlg0eMr3/1Y6KUeHy26vZaDXrbuQ== -turbo-windows-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.8.3.tgz#db5739fe1d6907d07874779f6d5fac87b3f3ca6a" - integrity sha512-ulIiItNm2w/zYJdD5/oAzjzNns1IjbpweRzpsE8tLXaWwo6+fnXXkyloUug0IUhcd2k6fJXfoiDZfygqpOVuXg== +turbo-windows-arm64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.10.2.tgz#75e904e2f9e06960e5639f6e3f71c6a8ac01f558" + integrity sha512-7S6dx4738R/FIT2cxbsunqgHN5LelXzuzkcaZgdkU33oswRf/6KOfOABzQLdTX7Uos59cBSdwayf6KQJxuOXUg== turbo@latest: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.8.3.tgz#6fe1ce749a38b54f15f0fcb24ee45baefa98e948" - integrity sha512-zGrkU1EuNFmkq6iky6LcMqD4h0OLE8XysVFxQWRIZbcTNnf0XAycbsbeEyiJpiWeqb7qtg2bVuY9EYcNoNhVuQ== + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.10.2.tgz#b96be5aa32f6a0c7d4e50782aa720c550c3c6270" + integrity sha512-m9sR5XHhuzxUQACf0vI2qCG5OqDYAZiPTaAsTwECnwUF4/cXwEmcYddbLJnO+K9orNvcnjjent5oBNBVQ/o0ow== optionalDependencies: - turbo-darwin-64 "1.8.3" - turbo-darwin-arm64 "1.8.3" - turbo-linux-64 "1.8.3" - turbo-linux-arm64 "1.8.3" - turbo-windows-64 "1.8.3" - turbo-windows-arm64 "1.8.3" + turbo-darwin-64 "1.10.2" + turbo-darwin-arm64 "1.10.2" + turbo-linux-64 "1.10.2" + turbo-linux-arm64 "1.10.2" + turbo-windows-64 "1.10.2" + turbo-windows-arm64 "1.10.2" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" @@ -24874,16 +20980,11 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.0.1, type-fest@^1.0.2: +type-fest@^1.0.2: version "1.4.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== -type-fest@^2.13.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - type-graphql@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" @@ -24945,9 +21046,9 @@ typedoc@^0.24.4: shiki "^0.14.1" typescript@*: - version "5.0.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.2.tgz#891e1a90c5189d8506af64b9ef929fca99ba1ee5" - integrity sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw== + version "5.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" + integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== typescript@^4.2.4, typescript@^4.5.5, typescript@^4.6.2, typescript@^4.9.3: version "4.9.5" @@ -24964,22 +21065,10 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== -uint8-varint@^1.0.1, uint8-varint@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.4.tgz#5ca6c71ccd432b5f5439310206f9ac6943a6887f" - integrity sha512-FHnaReHRIM7kHe/Ms0I2KGkuSY4o7ouhUJGJeiFEuYWGvBt4Y64+BJ3mV6DqmyYtYTZj4Pz8K/BmViSNFLRrVw== - dependencies: - byte-access "^1.0.0" - longbits "^1.1.0" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -uint8arraylist@^2.0.0, uint8arraylist@^2.1.0, uint8arraylist@^2.1.1, uint8arraylist@^2.1.2, uint8arraylist@^2.3.1, uint8arraylist@^2.3.2, uint8arraylist@^2.3.3, uint8arraylist@^2.4.1, uint8arraylist@^2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.4.3.tgz#1148aa979b407d382e4eb8d9c8f2b4bf3f5910d5" - integrity sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow== - dependencies: - uint8arrays "^4.0.2" +uhyphen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/uhyphen/-/uhyphen-0.2.0.tgz#8fdf0623314486e020a3c00ee5cc7a12fe722b81" + integrity sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA== uint8arrays@^3.0.0: version "3.1.1" @@ -24988,13 +21077,6 @@ uint8arrays@^3.0.0: dependencies: multiformats "^9.4.2" -uint8arrays@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.3.tgz#43109c03c4c10d312e7f2e9f4d53e5cd2398c7fd" - integrity sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg== - dependencies: - multiformats "^11.0.0" - umd@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" @@ -25026,13 +21108,6 @@ underscore@^1.13.2: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== -undici@^5.12.0: - version "5.21.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.21.0.tgz#b00dfc381f202565ab7f52023222ab862bb2494f" - integrity sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA== - dependencies: - busboy "^1.6.0" - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -25108,13 +21183,6 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" -unique-string@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" - integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== - dependencies: - crypto-random-string "^4.0.0" - unist-util-find-after@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz#80c69c92b0504033638ce11973f4135f2c822e2d" @@ -25266,9 +21334,9 @@ unxhr@1.0.1: integrity sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg== unzipper@^0.10.11: - version "0.10.11" - resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" - integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== + version "0.10.14" + resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.14.tgz#d2b33c977714da0fbc0f82774ad35470a7c962b1" + integrity sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g== dependencies: big-integer "^1.6.17" binary "~0.3.0" @@ -25286,10 +21354,10 @@ upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -25314,45 +21382,11 @@ update-notifier@^5.0.1: semver-diff "^3.1.1" xdg-basedir "^4.0.0" -update-notifier@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" - integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== - dependencies: - boxen "^7.0.0" - chalk "^5.0.1" - configstore "^6.0.0" - has-yarn "^3.0.0" - import-lazy "^4.0.0" - is-ci "^3.0.1" - is-installed-globally "^0.4.0" - is-npm "^6.0.0" - is-yarn-global "^0.4.0" - latest-version "^7.0.0" - pupa "^3.1.0" - semver "^7.3.7" - semver-diff "^4.0.0" - xdg-basedir "^5.1.0" - update-section@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158" integrity sha512-BpRZMZpgXLuTiKeiu7kK0nIPwGdyrqrs6EDSaXtjD/aQ2T+qVo9a5hRC3HN3iJjCMxNT/VxoLGQ7E/OzE5ucnw== -upper-case-first@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" - integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== - dependencies: - tslib "^2.0.3" - -upper-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" - integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== - dependencies: - tslib "^2.0.3" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -25386,33 +21420,23 @@ url-parse@^1.5.3: requires-port "^1.0.0" url@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== + version "0.11.1" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.1.tgz#26f90f615427eca1b9f4d6a28288c147e2302a32" + integrity sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA== dependencies: - punycode "1.3.2" - querystring "0.2.0" + punycode "^1.4.1" + qs "^6.11.0" use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util-extend@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" - integrity sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA== - util.promisify@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" @@ -25451,6 +21475,11 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +uuid@*, uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -25461,11 +21490,6 @@ uuid@^8.3.0, uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - uvu@^0.5.0: version "0.5.6" resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" @@ -25534,28 +21558,11 @@ value-or-promise@1.0.11: resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== -value-or-promise@1.0.12: +value-or-promise@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== -varint-decoder@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/varint-decoder/-/varint-decoder-1.0.0.tgz#289dab7887ee58d0c7be3a3353abeab4ca60aa77" - integrity sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ== - dependencies: - varint "^5.0.0" - -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -varint@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" - integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== - vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -25629,14 +21636,13 @@ vfile@^5.0.0, vfile@^5.3.0: vfile-message "^3.0.0" vite@^4.0.1, vite@^4.1.1: - version "4.1.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.4.tgz#170d93bcff97e0ebc09764c053eebe130bfe6ca0" - integrity sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg== + version "4.3.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.9.tgz#db896200c0b1aa13b37cdc35c9e99ee2fdd5f96d" + integrity sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg== dependencies: - esbuild "^0.16.14" - postcss "^8.4.21" - resolve "^1.22.1" - rollup "^3.10.0" + esbuild "^0.17.5" + postcss "^8.4.23" + rollup "^3.21.0" optionalDependencies: fsevents "~2.3.2" @@ -25715,7 +21721,7 @@ web-resource-inliner@^6.0.1: node-fetch "^2.6.0" valid-data-url "^3.0.0" -web-streams-polyfill@^3.0.0: +web-streams-polyfill@^3.0.0, web-streams-polyfill@^3.0.3: version "3.2.1" resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== @@ -25730,12 +21736,12 @@ web-worker@^1.2.0: resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== -webcrypto-core@^1.7.4: - version "1.7.6" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.6.tgz#e32c4a12a13de4251f8f9ef336a6cba7cdec9b55" - integrity sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA== +webcrypto-core@^1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" + integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== dependencies: - "@peculiar/asn1-schema" "^2.1.6" + "@peculiar/asn1-schema" "^2.3.6" "@peculiar/json-schema" "^1.1.12" asn1js "^3.0.1" pvtsutils "^1.3.2" @@ -25773,9 +21779,9 @@ webpack-dev-middleware@^5.3.1: schema-utils "^4.0.0" webpack-dev-server@^4.6.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.12.0.tgz#e2dcad4d43e486c3bac48ddbf346e77ef03c7428" - integrity sha512-XRN9YRnvOj3TQQ5w/0pR1y1xDcVnbWtNkTri46kuEbaWUPTHsWUvOyAAI7PZHLY+hsFki2kRltJjKMw7e+IiqA== + version "4.15.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz#87ba9006eca53c551607ea0d663f4ae88be7af21" + integrity sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" @@ -25838,21 +21844,21 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.64.4: - version "5.76.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.1.tgz#7773de017e988bccb0f13c7d75ec245f377d295c" - integrity sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ== + version "5.86.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.86.0.tgz#b0eb81794b62aee0b7e7eb8c5073495217d9fc6d" + integrity sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" + enhanced-resolve "^5.14.1" + es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -25861,9 +21867,9 @@ webpack@^5.64.4: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.0" + schema-utils "^3.1.2" tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" + terser-webpack-plugin "^5.3.7" watchpack "^2.4.0" webpack-sources "^3.2.3" @@ -25881,7 +21887,7 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -wget-improved@^3.3.0, wget-improved@^3.3.1: +wget-improved@^3.3.0: version "3.3.1" resolved "https://registry.yarnpkg.com/wget-improved/-/wget-improved-3.3.1.tgz#4ca99dc80db0ae388e99f4137f8deadd358630bc" integrity sha512-OF22MM9ImbOcuB5ZV3ye0q1udaYeTP/V6LOfjNyGCNNC7bGB219ljZv6Wk5mPogeigJJ6CqheLScv17AFbsdGA== @@ -25937,13 +21943,6 @@ whatwg-url@^8.0.0, whatwg-url@^8.5.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" -wherearewe@^2.0.0, wherearewe@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wherearewe/-/wherearewe-2.0.1.tgz#37c97a7bf112dca8db34bfefb2f6c997af312bb8" - integrity sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw== - dependencies: - is-electron "^2.2.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -25955,20 +21954,10 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which-pm@2.0.0: version "2.0.0" @@ -26004,7 +21993,7 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -wide-align@^1.1.0, wide-align@^1.1.2: +wide-align@^1.1.0: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -26018,13 +22007,6 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -widest-line@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" - integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== - dependencies: - string-width "^5.0.1" - word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -26043,25 +22025,25 @@ wordwrapjs@^3.0.0: reduce-flatten "^1.0.1" typical "^2.6.1" -workbox-background-sync@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9" - integrity sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g== +workbox-background-sync@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f" + integrity sha512-trJd3ovpWCvzu4sW0E8rV3FUyIcC0W8G+AZ+VcqzzA890AsWZlUGOTSxIMmIHVusUw/FDq1HFWfy/kC/WTRqSg== dependencies: idb "^7.0.1" - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-broadcast-update@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz#8441cff5417cd41f384ba7633ca960a7ffe40f66" - integrity sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw== +workbox-broadcast-update@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.1.tgz#0fad9454cf8e4ace0c293e5617c64c75d8a8c61e" + integrity sha512-fBhffRdaANdeQ1V8s692R9l/gzvjjRtydBOvR6WCSB0BNE2BacA29Z4r9/RHd9KaXCPl6JTdI9q0bR25YKP8TQ== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-build@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.4.tgz#7d06d31eb28a878817e1c991c05c5b93409f0389" - integrity sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA== +workbox-build@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.6.1.tgz#6010e9ce550910156761448f2dbea8cfcf759cb0" + integrity sha512-INPgDx6aRycAugUixbKgiEQBWD0MPZqU5r0jyr24CehvNuLPSXp/wGOpdRJmts656lNiXwqV7dC2nzyrzWEDnw== dependencies: "@apideck/better-ajv-errors" "^0.3.1" "@babel/core" "^7.11.1" @@ -26085,132 +22067,132 @@ workbox-build@6.5.4: strip-comments "^2.0.1" tempy "^0.6.0" upath "^1.2.0" - workbox-background-sync "6.5.4" - workbox-broadcast-update "6.5.4" - workbox-cacheable-response "6.5.4" - workbox-core "6.5.4" - workbox-expiration "6.5.4" - workbox-google-analytics "6.5.4" - workbox-navigation-preload "6.5.4" - workbox-precaching "6.5.4" - workbox-range-requests "6.5.4" - workbox-recipes "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - workbox-streams "6.5.4" - workbox-sw "6.5.4" - workbox-window "6.5.4" - -workbox-cacheable-response@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz#a5c6ec0c6e2b6f037379198d4ef07d098f7cf137" - integrity sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug== - dependencies: - workbox-core "6.5.4" - -workbox-core@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.4.tgz#df48bf44cd58bb1d1726c49b883fb1dffa24c9ba" - integrity sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q== - -workbox-expiration@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.4.tgz#501056f81e87e1d296c76570bb483ce5e29b4539" - integrity sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ== + workbox-background-sync "6.6.1" + workbox-broadcast-update "6.6.1" + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-google-analytics "6.6.1" + workbox-navigation-preload "6.6.1" + workbox-precaching "6.6.1" + workbox-range-requests "6.6.1" + workbox-recipes "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + workbox-streams "6.6.1" + workbox-sw "6.6.1" + workbox-window "6.6.1" + +workbox-cacheable-response@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.6.1.tgz#284c2b86be3f4fd191970ace8c8e99797bcf58e9" + integrity sha512-85LY4veT2CnTCDxaVG7ft3NKaFbH6i4urZXgLiU4AiwvKqS2ChL6/eILiGRYXfZ6gAwDnh5RkuDbr/GMS4KSag== + dependencies: + workbox-core "6.6.1" + +workbox-core@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.6.1.tgz#7184776d4134c5ed2f086878c882728fc9084265" + integrity sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw== + +workbox-expiration@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.6.1.tgz#a841fa36676104426dbfb9da1ef6a630b4f93739" + integrity sha512-qFiNeeINndiOxaCrd2DeL1Xh1RFug3JonzjxUHc5WkvkD2u5abY3gZL1xSUNt3vZKsFFGGORItSjVTVnWAZO4A== dependencies: idb "^7.0.1" - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-google-analytics@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz#c74327f80dfa4c1954cbba93cd7ea640fe7ece7d" - integrity sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg== +workbox-google-analytics@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.6.1.tgz#a07a6655ab33d89d1b0b0a935ffa5dea88618c5d" + integrity sha512-1TjSvbFSLmkpqLcBsF7FuGqqeDsf+uAXO/pjiINQKg3b1GN0nBngnxLcXDYo1n/XxK4N7RaRrpRlkwjY/3ocuA== dependencies: - workbox-background-sync "6.5.4" - workbox-core "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" + workbox-background-sync "6.6.1" + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" -workbox-navigation-preload@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz#ede56dd5f6fc9e860a7e45b2c1a8f87c1c793212" - integrity sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng== +workbox-navigation-preload@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.1.tgz#61a34fe125558dd88cf09237f11bd966504ea059" + integrity sha512-DQCZowCecO+wRoIxJI2V6bXWK6/53ff+hEXLGlQL4Rp9ZaPDLrgV/32nxwWIP7QpWDkVEtllTAK5h6cnhxNxDA== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-precaching@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.4.tgz#740e3561df92c6726ab5f7471e6aac89582cab72" - integrity sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg== +workbox-precaching@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.6.1.tgz#dedeeba10a2d163d990bf99f1c2066ac0d1a19e2" + integrity sha512-K4znSJ7IKxCnCYEdhNkMr7X1kNh8cz+mFgx9v5jFdz1MfI84pq8C2zG+oAoeE5kFrUf7YkT5x4uLWBNg0DVZ5A== dependencies: - workbox-core "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" -workbox-range-requests@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz#86b3d482e090433dab38d36ae031b2bb0bd74399" - integrity sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg== +workbox-range-requests@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.6.1.tgz#ddaf7e73af11d362fbb2f136a9063a4c7f507a39" + integrity sha512-4BDzk28govqzg2ZpX0IFkthdRmCKgAKreontYRC5YsAPB2jDtPNxqx3WtTXgHw1NZalXpcH/E4LqUa9+2xbv1g== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-recipes@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.4.tgz#cca809ee63b98b158b2702dcfb741b5cc3e24acb" - integrity sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA== +workbox-recipes@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.6.1.tgz#ea70d2b2b0b0bce8de0a9d94f274d4a688e69fae" + integrity sha512-/oy8vCSzromXokDA+X+VgpeZJvtuf8SkQ8KL0xmRivMgJZrjwM3c2tpKTJn6PZA6TsbxGs3Sc7KwMoZVamcV2g== dependencies: - workbox-cacheable-response "6.5.4" - workbox-core "6.5.4" - workbox-expiration "6.5.4" - workbox-precaching "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-precaching "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" -workbox-routing@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.4.tgz#6a7fbbd23f4ac801038d9a0298bc907ee26fe3da" - integrity sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg== +workbox-routing@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.6.1.tgz#cba9a1c7e0d1ea11e24b6f8c518840efdc94f581" + integrity sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-strategies@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.4.tgz#4edda035b3c010fc7f6152918370699334cd204d" - integrity sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw== +workbox-strategies@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.6.1.tgz#38d0f0fbdddba97bd92e0c6418d0b1a2ccd5b8bf" + integrity sha512-WQLXkRnsk4L81fVPkkgon1rZNxnpdO5LsO+ws7tYBC6QQQFJVI6v98klrJEjFtZwzw/mB/HT5yVp7CcX0O+mrw== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-streams@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.4.tgz#1cb3c168a6101df7b5269d0353c19e36668d7d69" - integrity sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg== +workbox-streams@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.6.1.tgz#b2f7ba7b315c27a6e3a96a476593f99c5d227d26" + integrity sha512-maKG65FUq9e4BLotSKWSTzeF0sgctQdYyTMq529piEN24Dlu9b6WhrAfRpHdCncRS89Zi2QVpW5V33NX8PgH3Q== dependencies: - workbox-core "6.5.4" - workbox-routing "6.5.4" + workbox-core "6.6.1" + workbox-routing "6.6.1" -workbox-sw@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.4.tgz#d93e9c67924dd153a61367a4656ff4d2ae2ed736" - integrity sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA== +workbox-sw@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.6.1.tgz#d4c4ca3125088e8b9fd7a748ed537fa0247bd72c" + integrity sha512-R7whwjvU2abHH/lR6kQTTXLHDFU2izht9kJOvBRYK65FbwutT4VvnUAJIgHvfWZ/fokrOPhfoWYoPCMpSgUKHQ== workbox-webpack-plugin@^6.4.1: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz#baf2d3f4b8f435f3469887cf4fba2b7fac3d0fd7" - integrity sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg== + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.1.tgz#4f81cc1ad4e5d2cd7477a86ba83c84ee2d187531" + integrity sha512-zpZ+ExFj9NmiI66cFEApyjk7hGsfJ1YMOaLXGXBoZf0v7Iu6hL0ZBe+83mnDq3YYWAfA3fnyFejritjOHkFcrA== dependencies: fast-json-stable-stringify "^2.1.0" pretty-bytes "^5.4.1" upath "^1.2.0" webpack-sources "^1.4.3" - workbox-build "6.5.4" + workbox-build "6.6.1" -workbox-window@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.4.tgz#d991bc0a94dff3c2dbb6b84558cff155ca878e91" - integrity sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug== +workbox-window@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.6.1.tgz#f22a394cbac36240d0dadcbdebc35f711bb7b89e" + integrity sha512-wil4nwOY58nTdCvif/KEZjQ2NP8uk3gGeRNy2jPBbzypU4BT4D9L8xiwbmDBpZlSgJd2xsT9FvSNU0gsxV51JQ== dependencies: "@types/trusted-types" "^2.0.2" - workbox-core "6.5.4" + workbox-core "6.6.1" workerpool@6.2.1: version "6.2.1" @@ -26243,21 +22225,12 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: +write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -26274,16 +22247,7 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -wrtc@^0.4.6: - version "0.4.7" - resolved "https://registry.yarnpkg.com/wrtc/-/wrtc-0.4.7.tgz#c61530cd662713e50bffe64b7a78673ce070426c" - integrity sha512-P6Hn7VT4lfSH49HxLHcHhDq+aFf/jd9dPY7lDHeFhZ22N3858EKuwm2jmnlPzpsRGEPaoF6XwkcxY5SYnt4f/g== - dependencies: - node-pre-gyp "^0.13.0" - optionalDependencies: - domexception "^1.0.1" - -ws@8.13.0, ws@^8.12.1, ws@^8.13.0, ws@^8.4.0, ws@^8.5.0: +ws@8.13.0, ws@^8.13.0: version "8.13.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== @@ -26293,64 +22257,26 @@ ws@8.13.0, ws@^8.12.1, ws@^8.13.0, ws@^8.4.0, ws@^8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@~8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== -xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" - integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== - -xhr2@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.2.1.tgz#4e73adc4f9cfec9cbd2157f73efdce3a5f108a93" - integrity sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw== - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xml2js@^0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xmlhttprequest-ssl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" - integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== - xmlhttprequest@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== -xsalsa20@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/xsalsa20/-/xsalsa20-1.2.0.tgz#e5a05cb26f8cef723f94a559102ed50c1b44c25c" - integrity sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w== - xss@^1.0.8: version "1.0.14" resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" @@ -26364,13 +22290,6 @@ xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ== - dependencies: - object-keys "~0.4.0" - y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" @@ -26401,6 +22320,11 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" @@ -26464,10 +22388,10 @@ yargs@^15.1.0, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.1.1, yargs@^17.3.1, yargs@^17.4.0: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== +yargs@^17.3.1, yargs@^17.7.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" escalade "^3.1.1" @@ -26500,11 +22424,6 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== - zen-observable-ts@^0.8.21: version "0.8.21" resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d"